summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xymtex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/xymtex
Initial commit
Diffstat (limited to 'macros/latex/contrib/xymtex')
l---------macros/latex/contrib/xymtex/README1
-rw-r--r--macros/latex/contrib/xymtex/base/aliphat.dtx4767
-rw-r--r--macros/latex/contrib/xymtex/base/aliphat.ins61
-rw-r--r--macros/latex/contrib/xymtex/base/aliphat.sty2477
-rw-r--r--macros/latex/contrib/xymtex/base/assurelatexmode.dtx340
-rw-r--r--macros/latex/contrib/xymtex/base/assurelatexmode.ins45
-rw-r--r--macros/latex/contrib/xymtex/base/assurelatexmode.sty138
-rw-r--r--macros/latex/contrib/xymtex/base/bondcolor.dtx738
-rw-r--r--macros/latex/contrib/xymtex/base/bondcolor.ins43
-rw-r--r--macros/latex/contrib/xymtex/base/bondcolor.sty323
-rw-r--r--macros/latex/contrib/xymtex/base/carom.BAK4172
-rw-r--r--macros/latex/contrib/xymtex/base/carom.dtx4172
-rw-r--r--macros/latex/contrib/xymtex/base/carom.ins55
-rw-r--r--macros/latex/contrib/xymtex/base/carom.sty1378
-rw-r--r--macros/latex/contrib/xymtex/base/ccycle.dtx3481
-rw-r--r--macros/latex/contrib/xymtex/base/ccycle.ins59
-rw-r--r--macros/latex/contrib/xymtex/base/ccycle.sty2007
-rw-r--r--macros/latex/contrib/xymtex/base/chemstr.dtx9531
-rw-r--r--macros/latex/contrib/xymtex/base/chemstr.ins62
-rw-r--r--macros/latex/contrib/xymtex/base/chemstr.sty6716
-rw-r--r--macros/latex/contrib/xymtex/base/doins.bat14
-rw-r--r--macros/latex/contrib/xymtex/base/fusering.dtx4597
-rw-r--r--macros/latex/contrib/xymtex/base/fusering.ins53
-rw-r--r--macros/latex/contrib/xymtex/base/fusering.sty1910
-rw-r--r--macros/latex/contrib/xymtex/base/hcycle.dtx3897
-rw-r--r--macros/latex/contrib/xymtex/base/hcycle.ins55
-rw-r--r--macros/latex/contrib/xymtex/base/hcycle.sty1798
-rw-r--r--macros/latex/contrib/xymtex/base/hetarom.dtx8620
-rw-r--r--macros/latex/contrib/xymtex/base/hetarom.ins58
-rw-r--r--macros/latex/contrib/xymtex/base/hetarom.sty3638
-rw-r--r--macros/latex/contrib/xymtex/base/hetaromh.dtx6287
-rw-r--r--macros/latex/contrib/xymtex/base/hetaromh.ins58
-rw-r--r--macros/latex/contrib/xymtex/base/hetaromh.sty2323
-rw-r--r--macros/latex/contrib/xymtex/base/lewisstruc.dtx1242
-rw-r--r--macros/latex/contrib/xymtex/base/lewisstruc.ins48
-rw-r--r--macros/latex/contrib/xymtex/base/lewisstruc.sty629
-rw-r--r--macros/latex/contrib/xymtex/base/locant.dtx343
-rw-r--r--macros/latex/contrib/xymtex/base/locant.ins52
-rw-r--r--macros/latex/contrib/xymtex/base/locant.sty123
-rw-r--r--macros/latex/contrib/xymtex/base/lowcycle.dtx892
-rw-r--r--macros/latex/contrib/xymtex/base/lowcycle.ins53
-rw-r--r--macros/latex/contrib/xymtex/base/lowcycle.sty145
-rw-r--r--macros/latex/contrib/xymtex/base/methylen.dtx6419
-rw-r--r--macros/latex/contrib/xymtex/base/methylen.ins57
-rw-r--r--macros/latex/contrib/xymtex/base/methylen.sty3484
-rw-r--r--macros/latex/contrib/xymtex/base/polymers.dtx750
-rw-r--r--macros/latex/contrib/xymtex/base/polymers.ins53
-rw-r--r--macros/latex/contrib/xymtex/base/polymers.sty229
-rw-r--r--macros/latex/contrib/xymtex/base/putline.sed10
-rw-r--r--macros/latex/contrib/xymtex/base/putput.bat1
-rw-r--r--macros/latex/contrib/xymtex/base/sizeredc.dtx351
-rw-r--r--macros/latex/contrib/xymtex/base/sizeredc.ins49
-rw-r--r--macros/latex/contrib/xymtex/base/sizeredc.sty171
-rw-r--r--macros/latex/contrib/xymtex/base/steroid.BAK775
-rw-r--r--macros/latex/contrib/xymtex/base/steroid.dtx1317
-rw-r--r--macros/latex/contrib/xymtex/base/steroid.ins47
-rw-r--r--macros/latex/contrib/xymtex/base/steroid.sty775
-rw-r--r--macros/latex/contrib/xymtex/base/xymtex.dtx308
-rw-r--r--macros/latex/contrib/xymtex/base/xymtex.ins72
-rw-r--r--macros/latex/contrib/xymtex/base/xymtex.sty108
-rw-r--r--macros/latex/contrib/xymtex/base/xymtexpdf.sty116
-rw-r--r--macros/latex/contrib/xymtex/base/xymtexps.sty108
-rw-r--r--macros/latex/contrib/xymtex/chemist/assurechemist.dtx279
-rw-r--r--macros/latex/contrib/xymtex/chemist/assurechemist.ins43
-rw-r--r--macros/latex/contrib/xymtex/chemist/assurechemist.sty92
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemist.dtx3349
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemist.ins63
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemist.sty1492
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemtimes.dtx839
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemtimes.ins42
-rw-r--r--macros/latex/contrib/xymtex/chemist/chemtimes.sty515
-rw-r--r--macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdfbin0 -> 6813073 bytes
-rw-r--r--macros/latex/contrib/xymtex/doc/chemtimes-doc.pdfbin0 -> 494597 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdfbin0 -> 662816 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdfbin0 -> 392923 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdfbin0 -> 397021 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdfbin0 -> 115667 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdfbin0 -> 99861 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdfbin0 -> 193265 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdfbin0 -> 248847 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdfbin0 -> 384723 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdfbin0 -> 462953 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdfbin0 -> 494597 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdfbin0 -> 201129 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdfbin0 -> 3786889 bytes
-rw-r--r--macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdfbin0 -> 1072669 bytes
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme402.doc41
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme402.jpn110
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme403.doc46
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme403.jpn115
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme404.doc52
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme404.jpn132
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme405.doc59
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme405.jpn164
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme406.doc64
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme406.jpn173
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme500.doc68
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme500.jpn184
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.doc73
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.jpn195
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.doc171
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.jpn141
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.doc176
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.jpn146
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.doc199
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.jpn166
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.doc229
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.jpn196
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.doc255
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.jpn207
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.doc196
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.jpn214
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.doc208
-rw-r--r--macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.jpn219
-rw-r--r--macros/latex/contrib/xymtex/readmes/readme501.doc74
-rw-r--r--macros/latex/contrib/xymtex/readmes/readme501.jpn153
-rw-r--r--macros/latex/contrib/xymtex/readmes/xymtx501.doc197
-rw-r--r--macros/latex/contrib/xymtex/readmes/xymtx501.jpn181
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx1493
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins44
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty691
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx1362
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins58
-rw-r--r--macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty687
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx1681
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins50
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty743
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv87
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx899
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins57
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty452
131 files changed, 112423 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/README b/macros/latex/contrib/xymtex/README
new file mode 120000
index 0000000000..77c5dbfe89
--- /dev/null
+++ b/macros/latex/contrib/xymtex/README
@@ -0,0 +1 @@
+readmes/readme501.doc \ No newline at end of file
diff --git a/macros/latex/contrib/xymtex/base/aliphat.dtx b/macros/latex/contrib/xymtex/base/aliphat.dtx
new file mode 100644
index 0000000000..e8c0f377d1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/aliphat.dtx
@@ -0,0 +1,4767 @@
+% \iffalse meta-comment
+%% File: aliphat.dtx
+%
+% Copyright 1993,1996,1998,2001,2002,2004,2005,2009,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% aliphat.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files aliphat.dtx and aliphat.ins
+% and the derived file aliphat.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% (Old Address) Shinsaku Fujita,
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (Present Address) Shinsaku Fujita
+% Shonan Institute of Chemoinformatics and
+% Mathematical Chemistry
+% fujita-sicimc@nifmail.jp
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{July 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{November 07, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{aliphat}
+% \def\versi@ndate{April 02, 2013}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{6477}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and clipping information}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v3.00}{2002/04/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Variable size of a central atom}
+% \changes{v4.02}{2004/12/20}{Tetrhedral units with wedges bonds}
+% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{square} to \cs{squarecomplex}}
+% \changes{v4.03}{2004/07/20}{Wave bonds}
+% \changes{v4.05}{2009/11/07}{Bug fix: \cs{@tetrahedral} to \cs{@@tetrahedral}}
+% \changes{v5.00}{2010/10/01}{Bond Coloring and the LaTeX Project Public License;
+% \cs{square} renamed into \cs{squareplanar}}
+% \changes{v5.01b}{2013/04/02}{Bug fix: \cs{Nothbond}, \cs{Southbond}, etc}
+% \changes{v5.01}{2013/07/30}{Bug fix: \cs{yltetrahedralposition}, etc}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{aliphat.dtx}[2013/07/30 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{aliphat.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Aliphatic compounds by {\sffamily aliphat.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kanagawa, 258-0019, Japan
+% Department of Chemistry and Materials Technology, \\
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% % (old address)
+% % Ashigara Research Laboratories,
+% % Fuji Photo Film Co., Ltd., \\
+% % Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{aliphat.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{aliphat:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% aliphat & aliphat.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*aliphat>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 20, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{aliphat}
+\def\versi@ndate{July 20, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for aliphat.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * aliphat.sty: list of commands *
+% *********************************
+%
+% <Conventions for bond-setting>
+%
+% \Northbond
+% \Eastbond
+% \Southbond
+% \Westbond
+% \NEBond
+% \NEbond
+% \SEBond
+% \SEbond
+% \NWBond
+% \NWbond
+% \SWBond
+% \SWbond
+%
+% \NEBOND
+% \NWBOND
+% \SEBOND
+% \SWBOND
+%
+% <Macros for position adjustment>
+% \ylrtrigonalposition
+% \ylRtrigonalposition
+% \ylltrigonalposition
+% \ylLtrigonalposition
+% \ylutrigonalposition
+% \ylUtrigonalposition
+% \yldtrigonalposition
+% \ylDtrigonalposition
+%
+% \yltethedralposition
+% \ylsquareposition
+%
+% \ylethylenepositiona
+% \ylethylenepositionb
+% \ylethylenevpositiona
+% \ylethylenevpositionb
+%
+% <Macros for tetravalent atoms>
+%
+% \tetrahedral \@tetrahedral
+% \square ---> \squarplanar \@square ---> \@squareplanar
+%
+% <Macros for trivalent atoms>
+%
+% \rtrigonal \@rtrigonal
+% \Rtrigonal \@Rtrigonal
+% \ltrigonal \@ltrigonal
+% \Ltrigonal \@Ltrigonal
+% \utrigonal \@utrigonal
+% \Utrigonal \@Utrigonal
+% \dtrigonal \@dtrigonal
+% \Dtrigonal \@Dtrigonal
+%
+% <Macros for two-carbon compounds>
+%
+% \ethylene \@ethylene
+% \ethyleneh
+% \Ethylene \@Ethylene
+% \Ethyleneh
+% \ethylenev \@ethylenev
+% \Ethylenev \@Ethylenev
+%
+% <Macros for stereo-projection>
+%
+% \tetrastereo \@tetrastereo
+% \dtetrastereo \@dtetrastereo
+% \ethanestereo \@ethanestereo
+%
+% <Macros for tetrahedral units with wedged bonds>
+%
+% \rtetrahedralS \RtetrahedralS
+% \ltetrahedralS \LtetrahedralS
+% \utetrahedralS \UtetrahedralS
+% \dtetrahedralS \DtetrahedralS
+% \htetrahedralS
+%
+% <Macros for trigonal bipyramidal intermediates>
+%
+% \utrigpyramid \dtrigpyramid
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf aliphat.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \changes{v4.01}{2004/8/30}{Adding \cs{ifno@centeratom}}
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+\newif\ifno@centeratom \no@centeratomfalse
+% \end{macrocode}
+%
+% \section{Macros for bond-setting}
+%
+% Single, double and triple bonds of aliphatic compounds are represented
+% by horizontal, vertical or sloped lines,
+% which can be drawn by such commands as |\Eastbond|,
+% |\Northbond| and |\SEbond|.
+% \changes{v1.02}{1998/10/20}{Adding \cs{NEBOND}, \cs{SEBOND}, \cs{NWBOND},
+% and \cs{SWBOND}}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v4.00}{2002/06/13}{Bug fix: Northbond etc. A and B inversed}
+% \changes{v4.01}{2004/8/30}{Variable bond length.}
+% \changes{v5.01}{2013/04/02}{Bug fix}
+%
+% \begin{macro}{\Northbond}
+% \begin{macrocode}
+% ********************************
+% * Conventions for bond-setting *
+% ********************************
+\def\Northbond{%
+\@ifnextchar[{\N@rthbond}{\N@rthbond[]}}
+\def\N@rthbond[#1]{%
+\yl@xdiff=40
+\yl@ydiff=-15
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=100\relax
+\@tempcntb=100\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by52\relax
+\advance\@tempcntb by52\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom\else%%added2013/4/2
+\advance\@tempcnta by52\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by15\relax%%67-52=15added2013/4/2
+\else
+\advance\@tempcnta by67\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+%\begin{sfpicture}(100,200)(0,0)
+\begin{sfpicture}(0,0)(0,0)
+\ifno@centeratom%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(-13,0)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up
+ \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(-20,0)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up
+ \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,0)(0,1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(0,1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(-13,52)(26,0){2}{\line(0,1){\@tempcntavaluea}}% double bond up
+ \Multiput@Direct(-13,52)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(-20,52)(20,0){3}{\line(0,1){\@tempcntavaluea}}% triple bond up
+ \Multiput@Direct(-20,52)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,52)(0,1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,52)(0,1){\@tempcntavaluea}/(0,52)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==1 upper substituent
+\end{sfpicture}}%End of Northbond
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.01}{2004/8/30}{Variable bond length.}
+% \changes{v5.01}{2013/04/02}{Bug fix}
+%
+% \begin{macro}{\Eastbond}
+% \begin{macrocode}
+\def\Eastbond{%
+\@ifnextchar[{\E@stbond}{\E@stbond[]}}
+\def\E@stbond[#1]{%
+\yl@xdiff=-10
+\yl@ydiff=33
+\edef\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=140\relax
+\@tempcntb=140\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom%
+\advance\@tempcnta by50\relax
+\advance\@tempcntb by50\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom\else%%added 2013/4/2
+\advance\@tempcnta by63\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by13\relax%%63-50=13added 2013/4/2
+\else
+\advance\@tempcnta by50\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+%\begin{sfpicture}(200,200)(0,0)
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(0,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right
+ \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(0,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right
+ \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(0,0)(1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(1,0){\@tempcntavaluea}/(0,0)(\@tempcntavaluec,0)%
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(50,-13)(0,26){2}{\line(1,0){\@tempcntavaluea}}% double bond right
+ \Multiput@Direct(50,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(50,-20)(0,20){3}{\line(1,0){\@tempcntavaluea}}% double bond right
+ \Multiput@Direct(50,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(50,0)(1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(50,0)(1,0){\@tempcntavaluea}/(50,0)(\@tempcntavaluec,0)%
+ \else\if\@tmpb S%
+ \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putratom{\@tempcntavalueb}{-33}{\@memberb}%==2 right substituent
+\end{sfpicture}}%End of Eastbond
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.01}{2004/8/30}{Variable bond length.}
+% \changes{v5.01}{2013/04/02}{Bug fix}
+%
+% \begin{macro}{\Southbond}
+% \begin{macrocode}
+\def\Southbond{%
+\@ifnextchar[{\S@uthbond}{\S@uthbond[]}}
+\def\S@uthbond[#1]{%
+\yl@xdiff=40
+\yl@ydiff=95
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=100\relax
+\@tempcntb=100\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by48\relax
+\advance\@tempcntb by48\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom\else%%added2013/4/2
+\advance\@tempcnta by-48\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by-90\relax%%143-48=98 (-8) added2013/4/2
+\else
+\advance\@tempcnta by-143\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+%\begin{sfpicture}(100,300)(0,0)
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(-13,0)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down
+ \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(-20,0)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down
+ \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,0)(0,-1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(0,-1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(0,-1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(-13,-48)(26,0){2}{\line(0,-1){\@tempcntavaluea}}% double bond down
+ \Multiput@Direct(-13,-48)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(-20,-48)(20,0){3}{\line(0,-1){\@tempcntavaluea}}% double bond down
+ \Multiput@Direct(-20,-48)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,-48)(0,-1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,-48)(0,-1){\@tempcntavaluea}/(0,-48)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==3 down substituent
+\end{sfpicture}}%End of Southbond
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.01}{2004/8/30}{Variable bond length.}
+% \changes{v5.01}{2013/04/02}{Bug fix}
+%
+
+% \begin{macro}{\Westbond}
+% \begin{macrocode}
+\def\Westbond{%
+\@ifnextchar[{\W@stbond}{\W@stbond[]}}
+\def\W@stbond[#1]{%
+\yl@xdiff=10
+\yl@ydiff=33
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=140\relax
+\@tempcntb=140\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by50\relax
+\advance\@tempcntb by50\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom\else%%added 2013/4/2
+\advance\@tempcnta by-63\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by-13\relax%%63-50=13 added 2013/4/2
+\else%
+\advance\@tempcnta by50\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+%\begin{sfpicture}(100,300)(0,0)
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(0,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left
+ \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(0,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left
+ \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(0,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+%% \dotorline(0,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
+ \dotorline(0,0)(-1,0){\@tempcntavaluea}/(0,0)(\@tempcntavalueb,0)%2013/04/02
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefine
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+% \Multiput@Direct(-50,-13)(0,26){2}{\line(-1,0){\@tempcntavaluea}}% double bond left
+ \Multiput@Direct(-50,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+% \Multiput@Direct(-50,-20)(0,20){3}{\line(-1,0){\@tempcntavaluea}}% double bond left
+ \Multiput@Direct(-50,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-50,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+%% \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
+% \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(0,0)(\@tempcntavalueb,0)%%2013/04/02
+ \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(-40,0)(\@tempcntavalueb,0)%%2013/06/16
+ \else\if\@tmpb S%
+ \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlatom{\@tempcntavalueb}{-33}{\@memberb}%==4 left substituent
+\end{sfpicture}}%End of Westbond
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NEBond}
+% \begin{macrocode}
+\def\NEBond{%degree 120
+\yl@xdiff=-9
+\yl@ydiff=13
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(33,48)(5,3){121}%
+ \Put@Line(47,26)(5,3){121}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(31,52)(5,3){121}%
+ \Put@Line(40,37)(5,3){121}%
+ \Put@Line(49,22)(5,3){121}%northeast triple bond
+% \else\if\@tmpb A%(A) alpha
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(5,3){121}}% single bond (alpha)
+% \else\if\@tmpb B%(B) beta
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,47)(5,3){121}/(40,47)(161,120)%
+ \else\if\@tmpb S%
+ \Put@Line(40,47)(5,3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,47)(5,3){121}%
+ }%
+ \else \Put@Line(40,47)(5,3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{170}{107}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NEbond}
+% \begin{macrocode}
+\def\NEbond{%degree 90
+\yl@xdiff=-5
+\yl@ydiff=10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(31,46)(1,1){100}%
+ \Put@Line(49,28)(1,1){100}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(27,50)(1,1){100}%
+ \Put@Line(40,37)(1,1){100}%
+ \Put@Line(53,24)(1,1){100}%northeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(1,1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,47)(1,1){100}/(40,47)(140,147)%
+ \else\if\@tmpb S%
+ \Put@Line(40,47)(1,1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,47)(1,1){100}%
+ }%
+ \else \Put@Line(40,47)(1,1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{145}{137}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SEBond}
+% \begin{macrocode}
+\def\SEBond{%degree 120
+\yl@xdiff=-9
+\yl@ydiff=67
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(33,-48)(5,-3){121}%
+ \Put@Line(47,-26)(5,-3){121}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(31,-52)(5,-3){121}%
+ \Put@Line(40,-37)(5,-3){121}%
+ \Put@Line(49,-22)(5,-3){121}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,-47)(5,-3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,-47)(5,-3){121}/(40,-47)(161,-120)%
+ \else\if\@tmpb S%
+ \Put@Line(40,-47)(5,-3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,-47)(5,-3){121}%
+ }%
+ \else \Put@Line(40,-47)(5,-3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{170}{-187}{\@memberb}%==2 (southeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SEbond}
+% \begin{macrocode}
+\def\SEbond{%degree 90
+\yl@xdiff=-5
+\yl@ydiff=56
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(31,-46)(1,-1){100}%
+ \Put@Line(49,-28)(1,-1){100}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(27,-50)(1,-1){100}%
+ \Put@Line(40,-37)(1,-1){100}%
+ \Put@Line(53,-24)(1,-1){100}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(53,-47)(1,-1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,-47)(1,-1){100}/(40,-47)(140,-147)%
+ \else\if\@tmpb S%
+ \Put@Line(40,-47)(1,-1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,-47)(1,-1){100}%
+ }%
+ \else \Put@Line(40,-47)(1,-1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{145}{-203}{\@memberb}%==3 (southeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NWBbond}
+% \begin{macrocode}
+\def\NWBond{%
+\begin{sfpicture}(100,300)(0,0)
+\yl@xdiff=9
+\yl@ydiff=13
+ \if\@tmpb D\relax%
+ \Put@Line(-59,48)(-5,3){121}%
+ \Put@Line(-73,26)(-5,3){121}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-57,52)(-5,3){121}%
+ \Put@Line(-66,37)(-5,3){121}%
+ \Put@Line(-75,22)(-5,3){121}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-66,47)(-5,3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-66,47)(-5,3){121}/(-66,47)(-187,120)%
+ \else\if\@tmpb S%
+ \Put@Line(-66,47)(-5,3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-66,47)(-5,3){121}%
+ }%
+ \else \Put@Line(-66,47)(-5,3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NWbond}
+% \begin{macrocode}
+\def\NWbond{%
+\begin{sfpicture}(100,300)(0,0)
+\yl@xdiff=13
+\yl@ydiff=10
+ \if\@tmpb D\relax%
+ \Put@Line(-41,46)(-1,1){100}%
+ \Put@Line(-59,28)(-1,1){100}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-37,50)(-1,1){100}%
+ \Put@Line(-50,37)(-1,1){100}%
+ \Put@Line(-63,24)(-1,1){100}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-50,47)(-1,1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-50,47)(-1,1){100}/(-50,47)(-137,147)%
+ \else\if\@tmpb S%
+ \Put@Line(-50,47)(-1,1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,47)(-1,1){100}%
+ }%
+ \else \Put@Line(-50,47)(-1,1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SWBond}
+% \begin{macrocode}
+\def\SWBond{%
+\yl@xdiff=9
+\yl@ydiff=67
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-59,-48)(-5,-3){121}%
+ \Put@Line(-73,-26)(-5,-3){121}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-57,-52)(-5,-3){121}%
+ \Put@Line(-66,-37)(-5,-3){121}%
+ \else\if\@tmpb B%(B) beta
+ \Put@Line(-75,-22)(-5,-3){121}%southwest triple bond
+ {\thicklines\Put@Line(-66,-47)(-5,-3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-66,-47)(-5,-3){121}/(-66,-47)(-187,-120)%
+ \else\if\@tmpb S%
+ \Put@Line(-66,-47)(-5,-3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-66,-47)(-5,-3){121}%
+ }%
+ \else \Put@Line(-66,-47)(-5,-3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SWbond}
+% \begin{macrocode}
+\def\SWbond{%
+\yl@xdiff=13
+\yl@ydiff=56
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-41,-46)(-1,-1){100}%
+ \Put@Line(-59,-28)(-1,-1){100}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-37,-50)(-1,-1){100}%
+ \Put@Line(-50,-37)(-1,-1){100}%
+ \Put@Line(-63,-24)(-1,-1){100}%southwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-50,-47)(-1,-1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-50,-47)(-1,-1){100}/(-50,-47)(-137,-147)%
+ \else\if\@tmpb S%
+ \Put@Line(-50,-47)(-1,-1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,-47)(-1,-1){100}%
+ }%
+ \else \Put@Line(-50,-47)(-1,-1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{New command: \cs{NEBOND}}
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NEBOND}
+% \begin{macrocode}
+\def\NEBOND{%degree 120
+\yl@xdiff=-1
+\yl@ydiff=-10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(48,33)(3,5){72}%
+ \Put@Line(26,47)(3,5){72}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(52,31)(3,5){72}%
+ \Put@Line(37,40)(3,5){72}%
+ \Put@Line(22,49)(3,5){72}%northeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(3,5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(47,40)(3,5){72}/(47,40)(120,161)%
+ \else\if\@tmpb S%
+ \Put@Line(47,40)(3,5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(47,40)(3,5){72}%
+ }%
+ \else \Put@Line(47,40)(3,5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{120}{170}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{New command: \cs{SEBOND}}
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SEBOND}
+% \begin{macrocode}
+\def\SEBOND{%degree 120
+\yl@xdiff=-1
+\yl@ydiff=70
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(48,-33)(3,-5){72}%
+ \Put@Line(26,-47)(3,-5){72}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(52,-31)(3,-5){72}%
+ \Put@Line(37,-40)(3,-5){72}%
+ \Put@Line(22,-49)(3,-5){72}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(47,-40)(3,-5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(47,-40)(3,-5){72}/(47,-40)(120,-161)%
+ \else\if\@tmpb S%
+ \Put@Line(47,-40)(3,-5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(47,-40)(3,-5){72}%
+ }%
+ \else \Put@Line(47,-40)(3,-5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{120}{-230}{\@memberb}%==2 (southeast substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{New command: \cs{NWBOND}}
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\NWBOND}
+% \begin{macrocode}
+\def\NWBOND{%
+\yl@xdiff=1
+\yl@ydiff=-10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-48,33)(-3,5){72}%
+ \Put@Line(-26,47)(-3,5){72}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-52,31)(-3,5){72}%
+ \Put@Line(-37,40)(-3,5){72}%
+ \Put@Line(-22,49)(-3,5){72}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-40,47)(-3,5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-47,40)(-3,5){72}/(-47,40)(-120,161)%
+ \else\if\@tmpb S%
+ \Put@Line(-47,40)(-3,5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-47,40)(-3,5){72}%
+ }%
+ \else \Put@Line(-47,40)(-3,5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{New command: \cs{SWBOND}}
+% \changes{v1.02}{1998/10/20}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\SWBOND}
+% \begin{macrocode}
+\def\SWBOND{%
+\yl@xdiff=1
+\yl@ydiff=70
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-48,-33)(-3,-5){72}%
+ \Put@Line(-26,-47)(-3,-5){72}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-52,-31)(-3,-5){72}%
+ \Put@Line(-37,-40)(-3,-5){72}%
+ \Put@Line(-22,-49)(-3,-5){72}%southwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-47,-40)(-3,-5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-47,-40)(-3,-5){72}/(-47,-40)(-120,-161)%
+ \else\if\@tmpb S%
+ \Put@Line(-47,-40)(-3,-5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-47,-40)(-3,-5){72}%
+ }%
+ \else \Put@Line(-47,-40)(-3,-5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{-230}{\@memberb}%==2 (southwest substituent)
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Tetrahedral unit}
+%
+% The macro |\tetrahedral| typesets a compound of tetravalency.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ********************
+% * tetrahedral unit *
+% ********************
+%
+% 1
+%
+% |
+% 2 -- 0 -- 4 0 <== the original point
+% |
+%
+% 3
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \tetrahedral[AUXLIST]{SUBSLIST}<L1,L2,L3,L4>
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+%
+% The arguments |Ln| (n = 1, 2, 3, 4) represents the bond length
+% of the bond 0--n (n = 1, 2, 3, 4). This is used to realize variable
+% bond lengths. The vacant for the |Ln| depicts a bond of the standard
+% bond length.
+% \changes{v4.01}{2004/8/30}{Variable bond length.}
+%
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetrahedral{1==Cl;2==F}
+% \tetrahedral{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yltetrahedralposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \changes{v4.01}{2004/8/30}{Variable sized central atoms}
+% \changes{v4.05}{2009/11/07}{bug fix: @tetrahedral to @@tetrahedral}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\tetrahedral}
+% \begin{macro}{\@tetrahedral}
+% \begin{macrocode}
+\def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}}
+\def\@tetrahedral#1]#2{%
+\@ifnextchar<{\@@tetrahedral#1]{#2}}{\@@tetrahedral#1]{#2}<,,,>}}%bug @ added 2009/11/07
+\def\@@tetrahedral#1]#2<#3,#4,#5,#6>{%
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\centralatomcheck{#2}%
+\yltetrahedralposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){tetrahedral}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{47}{50}{\scriptsize\@@tmpb}}\fi}%
+%%%%%%%%%%%%%%%%%%%%%%
+%setting central atom%
+%%%%%%%%%%%%%%%%%%%%%%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%central atom
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+%%%\global\West@bondfalse
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase%
+\fi\fi}%
+%%%%%%%%%%%%%%%%%%%%%%
+%%setting four bonds%%
+%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}%
+\else
+\setBScolor{\Put@Direct(0,0){\Northbond[#3]}}%
+%\Put@Direct(0,0){\Northbond[#3]}%
+\fi
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}%
+\else
+\setBScolor{\Put@Direct(0,0){\Westbond[#4]}}%
+%\Put@Direct(0,0){\Westbond[#4]}%
+\fi
+}%
+\or
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}%
+\else
+\setBScolor{\Put@Direct(0,0){\Southbond[#5]}}%
+%\Put@Direct(0,0){\Southbond[#5]}%
+\fi
+\or{%
+\ifno@centeratom%
+\setBScolor{\Put@Direct(0,0){\Eastbond[#6]}}%
+%\Put@Direct(0,0){\Eastbond[#6]}%
+\else%
+%\advance\@tempdima by-0.72em
+%\Put@Direct(0,0){\kern\@tempdima\Eastbond[#6]}%
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}}%
+%\Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}%
+\fi}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+}%end of macro tetrahedral
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v4.01}{2004/8/30}{Newly added macro:
+% \cs{centralatomcheck}}
+%
+% \begin{macro}{\centralatomcheck}
+% \begin{macrocode}
+\def\centralatomcheck#1{%
+\no@centeratomtrue%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifcase\@tmpa\relax%
+\no@centeratomfalse%
+\else%no action
+\fi\fi%
+}}
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\yltetrahedralposition| is used in
+% |\tetrahedral| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{yltetrahedralposition}}
+% \changes{v4.01}{2004/8/30}{Newly added switches:
+% \cs{ifEast@bond} and \cs{ifWest@bond}}
+% \changes{v5.01}{2013/7/30}{Bug fix}
+%
+% \begin{macro}{\yltetrahedralposition}
+% \begin{macrocode}
+\newif\ifEast@bond
+\newif\ifWest@bond
+\def\yltetrahedralposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/07/30bug fix
+\West@bondfalse
+\East@bondfalse
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw%
+\ifcase\@tmpa%
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else%
+ \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \fi%
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \else%
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%
+ \fi%
+ \East@bondtrue%W subst. on 1
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
+ \else%
+ \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \fi%
+ \or%
+ \ifno@centeratom%
+% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%??????
+ \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
+ \else%
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%
+ \fi%
+ \West@bondtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Divalenth unit}
+%
+% The command |\divalenth| produces a length-variable divalent unit.
+% \changes{v2.00}{1998/12/14}{New command: \cs{divalenth}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{verbatim}
+% ******************
+% * Divalenth unit *
+% ******************
+%
+%
+%
+% 1 -- (group) -- 2 0 <== the original point
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |GROUP|.
+%
+% \begin{verbatim}
+% \divalenth{GROUP}{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |GROUP| designates a character strings representing
+% a divalent group. The locant number is fixed to be zero.
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+%
+% \begin{macro}{\divalenth}
+% \begin{macrocode}
+\def\divalenth#1#2{%
+\@reset@ylsw%
+\yldivalenthposition{#1}{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,400)(-300,-200){\divalenth}%2002/4/30 by S. Fujita
+(300,200)%
+{\expandafter\@m@mb@r#1;\relax
+ \putratom{-30}{-33}{\@memberb}}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+%\Put@Direct(0,0){\Westbond}%
+\or\setBScolor{\Put@Direct(\the\@tempcnta,0){\Eastbond}}%
+%\Put@Direct(\the\@tempcnta,0){\Eastbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro tetrahedral
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\yldivalenthposition| is used in
+% |\tetrahedral| to adjust a substitution position.
+% \changes{v2.00}{1998/12/14}{Newly added command:
+% \cs{yldivalenthposition}}
+%
+% \begin{macro}{\yldivalenthposition}
+% \begin{macrocode}
+\def\yldivalenthposition#1#2{%
+{\expandafter\@m@mb@r#1;\relax
+ \setbox0=\hbox{\@memberb}%
+ \@tempcnta=\wd0
+ \@tempcntb=\unitlength
+ \divide\@tempcnta by\@tempcntb
+ \global\advance\@tempcnta by-62%
+ \@tempcntb=\@tempcnta \global\advance\@tempcntb by50\relax
+ }%
+\@@ylswfalse%
+\@forsemicol\member:=#2\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \or \edef\@ylii{-\the\@tempcntb}\gdef\@yli{0}\global\@ylswtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Trigonal unit}
+% \subsection{Right-hand trigonal unit (narrow type)}
+%
+% The macro |\rtrigonal| typesets a compound of trivalency.
+% The following numbering is adopted in this macro.
+% The two right-hand bonds form an angle of 90$^{\circ}$ (narrow type),
+% while the left-hand bond is typeset horizontally.
+%
+% \begin{verbatim}
+% *************************
+% * trigonal unit (right) *
+% *************************
+%
+% 3
+% /
+% /
+% 1 --- 0 90 0 <== the original point
+% `
+% `
+% 2
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \rtrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \rtrigonal{1==Cl;2==F}
+% \rtrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylrtrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\rtrigonal}
+% \begin{macro}{\@rtrigonal}
+% \begin{macrocode}
+\def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}}
+\def\@rtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylrtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){rtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+%\Put@Direct(0,0){\Westbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+%\Put@Direct(0,0){\SEbond}%
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+%\Put@Direct(0,0){\NEbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro rtrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylrtrigonalposition| is used in
+% |\rtrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylrtrigonalposition}}
+%
+% \begin{macro}{\ylrtrigonalposition}
+% \begin{macrocode}
+\def\ylrtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Right-hand trigonal unit (broad type)}
+%
+% The macro |\Rtrigonal| typesets a compound of trivalency.
+% The following numbering is adopted in this macro.
+% The two right-hand bonds form an angle of 120$^{\circ}$ (broad type),
+% while the left-hand bond is typeset horizontally.
+% \changes{v1.02}{1998/10/20}{New command: \cs{Rtrigonal}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{verbatim}
+% *************************
+% * trigonal unit (right) *
+% *************************
+%
+% 3
+% /
+% /
+% 1 --- 0 120 0 <== the original point
+% `
+% `
+% 2
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \rtrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \rtrigonal{1==Cl;2==F}
+% \rtrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylRtrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\Rtrigonal}
+% \begin{macro}{\@Rtrigonal}
+% \begin{macrocode}
+\def\Rtrigonal{\@ifnextchar[{\@Rtrigonal[r}{\@Rtrigonal[r]}}
+\def\@Rtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylRtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Rtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+%\Put@Direct(0,0){\Westbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEBOND}}%
+%\Put@Direct(0,0){\SEBOND}%
+\or\setBScolor{\Put@Direct(0,0){\NEBOND}}%
+%\Put@Direct(0,0){\NEBOND}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Rtrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylRtrigonalposition| is used in
+% |\Rtrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylRtrigonalposition}}
+%
+% \begin{macro}{\ylRtrigonalposition}
+% \begin{macrocode}
+\def\ylRtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
+ \or \gdef\@ylii{-47}\gdef\@yli{40}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-47}\gdef\@yli{-40}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Left-hand trigonal unit (narrow type)}
+%
+% The macro |\ltrigonal| typesets a compound of trivalency.
+% The following numbering is adopted in this macro.
+% The two left-hand bonds form an angle of 90$^{\circ}$ (narrow type),
+% while the right-hand bond is typeset horizontally.
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{verbatim}
+% ************************
+% * trigonal unit (left) *
+% ************************
+%
+% 2
+% `
+% `
+% 90 0 --- 1 0 <== the original point
+% /
+% /
+% 3
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \ltrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \ltrigonal{1==Cl;2==F}
+% \ltrigonal{0==C;1==Cl;2==F;3==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylltrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.01}{2004/8/30}{Variable sized central atoms}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\ltrigonal}
+% \begin{macro}{\@ltrigonal}
+% \begin{macrocode}
+\def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}}
+\def\@ltrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylltrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){ltrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase
+\fi\fi}%
+%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or{%
+\advance\@tempdima by-0.72em
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}%
+%\Put@Direct(0,0){\kern\@tempdima\Eastbond}}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}%
+\else
+\setBScolor{\Put@Direct(0,0){\NWbond}}%
+%\Put@Direct(0,0){\NWbond}%
+\fi
+}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}%
+\else
+\setBScolor{\Put@Direct(0,0){\SWbond}}%
+%\Put@Direct(0,0){\SWbond}%
+\fi
+}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+\endgroup}%end of macro ltrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylltrigonalposition| is used in
+% |\ltrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylltrigonalposition}}
+% \changes{v4.01}{2004/8/30}{Newly added switch:
+% \cs{ifWest@bond}}
+%
+% \begin{macro}{\ylltrigonalposition}
+% \begin{macrocode}
+\def\ylltrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
+ \West@bondtrue%
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Left-hand trigonal unit (broad type)}
+%
+% The macro |\Ltrigonal| typesets a compound of trivalency.
+% The following numbering is adopted in this macro.
+% The two left-hand bonds form an angle of 120$^{\circ}$ (broad type),
+% while the right-hand bond is typeset horizontally.
+% \changes{v1.02}{1998/10/20}{New command: \cs{Ltrigonal}}
+%
+% \begin{verbatim}
+% ************************
+% * trigonal unit (left) *
+% ************************
+%
+% 2
+% `
+% `
+% 120 0 --- 1 0 <== the original point
+% /
+% /
+% 3
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \Ltrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \Ltrigonal{1==Cl;2==F}
+% \Ltrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylLtrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.01}{2004/8/30}{Variable sized central atoms}
+% \changes{v4.01}{2004/8/30}{Newly added switch:
+% \cs{ifWest@bond}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\Ltrigonal}
+% \begin{macro}{\@Ltrigonal}
+% \begin{macrocode}
+\def\Ltrigonal{\@ifnextchar[{\@Ltrigonal[r}{\@Ltrigonal[r]}}
+\def\@Ltrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylLtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Ltrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+%%%%\global\West@bondfalse
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase
+\fi\fi}%
+%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or{%
+\advance\@tempdima by-0.72em
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}%
+%\Put@Direct(0,0){\kern\@tempdima\Eastbond}}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}%
+\else
+\setBScolor{\Put@Direct(0,0){\NWBOND}}%
+%\Put@Direct(0,0){\NWBOND}%
+\fi
+}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}}%
+%\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}%
+\else
+\setBScolor{\Put@Direct(0,0){\SWBOND}}%
+%\Put@Direct(0,0){\SWBOND}%
+\fi
+}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+\endgroup}%end of macro Ltrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylLtrigonalposition| is used in
+% |\Ltrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylLtrigonalposition}}
+%
+% \begin{macro}{\ylLtrigonalposition}
+% \begin{macrocode}
+\def\ylLtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
+ \West@bondtrue%
+ \or \gdef\@ylii{47}\gdef\@yli{-40}\global\@ylswtrue% NWB subst. on 1
+ \or \gdef\@ylii{47}\gdef\@yli{40}\global\@ylswtrue% SWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Upward trigonal unit (narrow type)}
+%
+% The macro |\utrigonal| typesets a compound of trivalency.
+% The two upward bonds form an angle of 90$^{\circ}$ (narrow type),
+% while the downward bond is typeset vertically.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * trigonal unit (up) *
+% **********************
+%
+% The following numbering is adopted in this macro.
+%
+% 3 . 2
+% ` 90 /
+% ` /
+% 0 0 <== the original point
+% |
+% |
+% 1
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \utrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \utrigonal{1==Cl;2==F}
+% \utrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylutrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\utrigonal}
+% \begin{macro}{\@utrigonal}
+% \begin{macrocode}
+\def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}}
+\def\@utrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%2013/04/01 added
+\ylutrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+%\Put@Direct(0,0){\Southbond}%
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+%\Put@Direct(0,0){\NEbond}%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+%\Put@Direct(0,0){\NWbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylutrigonalposition| is used in
+% |\utrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylutrigonalposition}}
+%
+% \begin{macro}{\ylutrigonalposition}
+% \begin{macrocode}
+\def\ylutrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Upward trigonal unit (broad type)}
+%
+% The macro |\Utrigonal| typesets a compound of trivalency.
+% The two upward bonds form an angle of 120$^{\circ}$ (broad type),
+% while the downward bond is typeset vertically.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * trigonal unit (up) *
+% **********************
+%
+% 3 2
+% ` 120 /
+% ` /
+% 0 0 <== the original point
+% |
+% |
+% 1
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \Utrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \Utrigonal{1==Cl;2==F}
+% \Utrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylutrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\Utrigonal}
+% \begin{macro}{\@Utrigonal}
+% \begin{macrocode}
+\def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}}
+\def\@Utrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\ylUtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Utrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+%\Put@Direct(0,0){\Southbond}%
+\or\setBScolor{\Put@Direct(0,0){\NEBond}}%
+%\Put@Direct(0,0){\NEBond}%
+\or\setBScolor{\Put@Direct(0,0){\NWBond}}%
+%\Put@Direct(0,0){\NWBond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Utrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylUtrigonalposition| is used in
+% |\Utrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylUtrigonalposition}}
+%
+% \begin{macro}{\ylUtrigonalposition}
+% \begin{macrocode}
+\def\ylUtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NEB subst. on 1
+ \or \gdef\@ylii{66}\gdef\@yli{-47}\global\@ylswtrue% NWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Downward trigonal unit (narrow type)}
+%
+% The macro |\dtrigonal| typesets a compound of trivalency.
+% The upward bond is typeset vertically.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************
+% * trigonal unit (down) *
+% ************************
+%
+% The following numbering is adopted in this macro.
+%
+% 1
+% |
+% |
+% 0 0 <== the original point
+% / `
+% / 90 `
+% 2 3
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \dtrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \dtrigonal{1==Cl;2==F}
+% \dtrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yldtrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\dtrigonal}
+% \begin{macro}{\@dtrigonal}
+% \begin{macrocode}
+\def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}}
+\def\@dtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\yldtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+%\Put@Direct(0,0){\Northbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+%\Put@Direct(0,0){\SEbond}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+%\Put@Direct(0,0){\SWbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\yldtrigonalposition| is used in
+% |\dtrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{yldtrigonalposition}}
+%
+% \begin{macro}{\yldtrigonalposition}
+% \begin{macrocode}
+\def\yldtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Downward trigonal unit (broad type)}
+%
+% The macro |\Dtrigonal| typesets a compound of trivalency.
+% The upward bond is typeset vertically.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************
+% * trigonal unit (down) *
+% ************************
+%
+% The following numbering is adopted in this macro.
+%
+% 1
+% |
+% |
+% 0 0 <== the original point
+% / `
+% / 120 `
+% 2 3
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \Dtrigonal[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \Dtrigonal{1==Cl;2==F}
+% \Dtrigonal{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylDtrigonalposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\Dtrigonal}
+% \begin{macro}{\@Dtrigonal}
+% \begin{macrocode}
+\def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}}
+\def\@Dtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\ylDtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Dtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+%\Put@Direct(0,0){\Northbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEBond}}%
+%\Put@Direct(0,0){\SEBond}%
+\or\setBScolor{\Put@Direct(0,0){\SWBond}}%
+%\Put@Direct(0,0){\SWBond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Dtrigonal
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylDtrigonalposition| is used in
+% |\Dtrigonal| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylDtrigonalposition}}
+%
+% \begin{macro}{\ylDtrigonalposition}
+% \begin{macrocode}
+\def\ylDtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SEB subst. on 1
+ \or \gdef\@ylii{66}\gdef\@yli{47}\global\@ylswtrue% SWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ethylene derivative}
+% \subsection{Horizontal ethylene unit (narrow type)}
+%
+% The macro |\ethylene| typesets ethylene derivatives.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *****************
+% * ethylene unit *
+% *****************
+%
+% 1 4
+% ` /
+% ` /
+% 90 (1)===(2) 90 (1) <== the original point
+% / `
+% / `
+% 2 3
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \ethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |BONDLIST| designates the bond between atom (1) and
+% atom (2) as well as charges on these centeral atoms.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner bonds and charges
+%
+% {n+} : + charge (or another one chararacter) on n-atom
+% d : inner double bond (between (1) and (2))
+% t : inner triple bond (between (1) and (2))
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The arugument |ATOMLIST| designates the list of central atoms.
+%
+% \begin{verbatim}
+% ATOMLIST: list of central atoms
+% n : atom for n-position (e.g. 1==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \ethylene{}{1==Cl;2==F}
+% \ethylene{}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenepositiona},
+% \cs{ylethylenepositionb},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\ethylene}
+% \begin{macro}{\@ethylene}
+% \begin{macrocode}
+\def\ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}}
+\def\@ethylene[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenepositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenepositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-230}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,600)(-300,-300){ethylene}%2002/4/30 by S. Fujita
+(300,300)%
+{\def\aaa{#1}\ifx\aaa\empty%
+% \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond
+ \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01
+}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa d\relax%
+% {\Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond
+ {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \else\if\@@tmpa t\relax%
+% {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right
+ {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \fi\fi\fi\fi}%
+{\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{190}{-33}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{190}{-33}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+%\Put@Direct(0,0){\NWbond}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+%\Put@Direct(0,0){\SWbond}%
+\or\setBScolor{\Put@Direct(230,0){\SEbond}}%
+%\Put@Direct(230,0){\SEbond}%
+\or\setBScolor{\Put@Direct(230,0){\NEbond}}%
+%\Put@Direct(230,0){\NEbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro ethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ethyleneh}
+% \begin{macrocode}
+\let\ethyleneh=\ethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The commands |\ylethylenepositiona| and |\ylethylenepositiona|
+% are used in |\ethylene| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylethylenepositiona} and \cs{ylethylenepositionb}}
+%
+% \begin{macro}{\ylethylenepositiona}
+% \begin{macro}{\ylethylenepositionb}
+% \begin{macrocode}
+\def\ylethylenepositiona#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ylethylenepositionb#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%omit
+ \or%omit
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal ethylene unit (broad type)}
+%
+% The macro |\Ethylene| typesets ethylene derivatives.
+% The following numbering is adopted in this macro.
+% \changes{v1.02}{1998/10/20}{New command: \cs{Ethylene}}
+%
+% \begin{verbatim}
+% *****************
+% * ethylene unit *
+% *****************
+%
+% 1 4
+% ` /
+% ` /
+% 120 (1)===(2) 120 (1) <== the original point
+% / `
+% / `
+% 2 3
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \Ethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |BONDLIST| designates the bond between atom (1) and
+% atom (2) as well as charges on these centeral atoms.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner bonds and charges
+%
+% {n+} : + charge (or another one chararacter) on n-atom
+% d : inner double bond (between (1) and (2))
+% t : inner triple bond (between (1) and (2))
+% \end{verbatim}
+%
+% The arugument |SUBLIST| designates a set of substitutients.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The arugument |ATOMLIST| designates the list of central atoms.
+%
+% \begin{verbatim}
+% ATOMLIST: list of central atoms
+% n : atom for n-position (e.g. 1==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \Ethylene{}{1==Cl;2==F}
+% \Ethylene{}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenepositiona},
+% \cs{ylethylenepositionb},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\Ethylene}
+% \begin{macro}{\@Ethylene}
+% \begin{macrocode}
+\def\Ethylene{\@ifnextchar[{\@Ethylene}{\@Ethylene[]}}%bug \@ethylene --> \@Ethylene
+\def\@Ethylene[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenepositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenepositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-230}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,600)(-300,-300){Ethylene}%2002/4/30 by S. Fujita
+(300,300)%
+{\def\aaa{#1}\ifx\aaa\empty%
+% \Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}\fi% double bond
+ \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01
+}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa d\relax%
+% {\Multiput@Direct(42,-13)(0,25){2}{\line(1,0){140}}}% double bond
+ {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \else\if\@@tmpa t\relax%
+% {\Multiput@Direct(42,-20)(0,20){3}{\line(1,0){140}}}% triple bond right
+ {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \fi\fi\fi\fi}%
+{\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{190}{-33}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{190}{-33}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\NWBOND}}%
+%\Put@Direct(0,0){\NWBOND}%
+\or\setBScolor{\Put@Direct(0,0){\SWBOND}}%
+%\Put@Direct(0,0){\SWBOND}%
+\or\setBScolor{\Put@Direct(230,0){\SEBOND}}%
+%\Put@Direct(230,0){\SEBOND}%
+\or\Put@Direct(230,0){\NEBOND}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro Ethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Ethyleneh}
+% \begin{macrocode}
+\let\Ethyleneh=\Ethylene
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical ethylene unit (narrow type)}
+%
+% The macro |\ethylenev| typesets ethylene derivatives in a
+% vatical manner.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ****************************
+% * ethylene unit (vertical) *
+% ****************************
+%
+% The following numbering is adopted in this macro.
+%
+% 4 3
+% ` 90 /
+% ` /
+% (2)
+% ||
+% ||
+% (1) <== the original point
+% / `
+% / 90 `
+% 1 2
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% BONDLIST: list of inner bonds and charges
+%
+% {n+} : + charge (or another one chararacter) on n-atom
+% d : inner double bond (between (1) and (2))
+% t : inner triple bond (between (1) and (2))
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% ATOMLIST: list of central atoms
+% n : atom for n-position (e.g. 1==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \ethylenev{1==Cl;2==F}
+% \ethylenev{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenevpositiona},
+% \cs{ylethylenevpositionb},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\ethylenev}
+% \begin{macro}{\@ethylenev}
+% \begin{macrocode}
+\def\ethylenev{\@ifnextchar[{\@ethylenev}{\@ethylenev[]}}
+\def\@ethylenev[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenevpositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenevpositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-230}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,800)(-300,-300){ethylenev}%2002/4/30 by S. Fujita
+(300,300)%
+\def\aaa{#1}\ifx\aaa\empty%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(6,47)(0,1){140}\fi% double bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa d\relax%
+ \Put@Line(-13,47)(0,1){140}% vertical
+ \Put@Line(13,47)(0,1){140}% double bond
+ \else\if\@@tmpa t\relax%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(-0,47)(0,1){140}% triple bond
+ \Put@Line(20,47)(0,1){140}%
+ \fi\fi\fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{-40}{197}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{197}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+%\Put@Direct(0,0){\SWbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+%\Put@Direct(0,0){\SEbond}%
+\or\setBScolor{\Put@Direct(0,230){\NEbond}}%
+%\Put@Direct(0,230){\NEbond}%
+\or\setBScolor{\Put@Direct(0,230){\NWbond}}%
+%\Put@Direct(0,230){\NWbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro ethylenev
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The commands |\ylethylenevpositiona| and |\ylethylenevpositiona|
+% are used in |\ethylenev| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command:
+% \cs{ylethylenevpositiona} and \cs{ylethylenevpositionb}}
+%
+% \begin{macro}{\ylethylenepositiona}
+% \begin{macro}{\ylethylenepositionb}
+% \begin{macrocode}
+\def\ylethylenevpositiona#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ylethylenevpositionb#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%omit
+ \or%omit
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vertical ethylene unit (broad type)}
+%
+% The macro |\Ethylenev| typesets ethylene derivatives in a
+% vatical manner.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ****************************
+% * ethylene unit (vertical) *
+% ****************************
+%
+% 4 3
+% ` 120 /
+% ` /
+% (2)
+% ||
+% ||
+% (1) <== the original point
+% / `
+% / 120 `
+% 1 2
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \Ethylenev[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% BONDLIST: list of inner bonds and charges
+%
+% {n+} : + charge (or another one chararacter) on n-atom
+% d : inner double bond (between (1) and (2))
+% t : inner triple bond (between (1) and (2))
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% ATOMLIST: list of central atoms
+% n : atom for n-position (e.g. 1==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \Ethylenev{1==Cl;2==F}
+% \Ethylenev{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylethylenevpositiona},
+% \cs{ylethylenevpositionb},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\Ethylenev}
+% \begin{macro}{\@Ethylenev}
+% \begin{macrocode}
+\def\Ethylenev{\@ifnextchar[{\@Ethylenev}{\@Ethylenev[]}}
+\def\@Ethylenev[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenevpositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenevpositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-230}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,800)(-300,-300){Ethylenev}%2002/4/30 by S. Fujita
+(300,300)%
+\def\aaa{#1}\ifx\aaa\empty%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(6,47)(0,1){140}\fi% double bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa d\relax%
+ \Put@Line(-13,47)(0,1){140}% vertical
+ \Put@Line(13,47)(0,1){140}% double bond
+ \else\if\@@tmpa t\relax%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(-0,47)(0,1){140}% triple bond
+ \Put@Line(20,47)(0,1){140}%
+ \fi\fi\fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{-40}{197}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{197}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\SWBond}}%
+%\Put@Direct(0,0){\SWBond}%
+\or\setBScolor{\Put@Direct(0,0){\SEBond}}%
+%\Put@Direct(0,0){\SEBond}%
+\or\setBScolor{\Put@Direct(0,230){\NEBond}}%
+%\Put@Direct(0,230){\NEBond}%
+\or\setBScolor{\Put@Direct(0,230){\NWBond}}%
+%\Put@Direct(0,230){\NWBond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro Ethylenev
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Square unit}
+%
+% The macro |\square| typesets a compound of tetravalency.
+% The following numbering is adopted in this macro.
+%
+% Because |\square| is defined in the present LaTeX2e,
+% the command |\squarecomplex| is newly defined.
+%
+% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{square} to \cs{squarecomplex}}
+%
+% The command |\square| is renamed to be |\squareplanar|. The code is entirely replaced.
+%
+% \changes{v4.05}{2009/11/08}{Bug fix: \cs{square} to \cs{squareplanar}}
+%
+% \begin{verbatim}
+% ***************
+% * square unit *
+% ***************
+%
+% The following numbering is adopted in this macro.
+%
+% 4 1
+% ` /
+% ` /
+% (0) <== the original point
+% / `
+% / `
+% 3 2
+%
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \squareplanar[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+}: + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \squareplanar{0==C;1==Cl;2==F}
+% \squareplanar{0==C;1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylsquareposition},
+% \cs{if@ylsw}, \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\squareplanar}
+% \begin{macro}{\@squareplanar}
+% \begin{macrocode}
+\def\squareplanar{\@ifnextchar[{\@squareplanar[r}{\@squareplanar[r]}}
+\def\@squareplanar#1]#2{%
+\@reset@ylsw%
+\ylsquareposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){square}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{0}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+%\Put@Direct(0,0){\NEbond}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+%\Put@Direct(0,0){\SEbond}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+%\Put@Direct(0,0){\SWbond}%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+%\Put@Direct(0,0){\NWbond}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro squareplanar
+\let\squarecomplex=\squareplanar
+\let\square=\squarplanar%combatible to the old version (<4.04)
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The commands |\ylsquarepositiona| and |\ylsquarepositiona|
+% are used in |\square| to adjust a substitution position.
+% \changes{v1.02}{1998/10/20}{Newly added command: \cs{ylsquareposition}}
+% \changes{v5.01}{2013/07/30}{Bug fix}
+%
+% \begin{macro}{\ylsquareposition}
+% \begin{macrocode}
+\def\ylsquareposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/07/30bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ball-stick models}
+% \subsection{Tetrahedral unit of stereo type}
+%
+% The macro |\tetrastereo| typesets a tetrahedral unit in a
+% ball-stick fashion.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *****************************
+% * tetrahedral unit (stereo) *
+% *****************************
+%
+% The following numbering is adopted in this macro.
+%
+% 1
+%
+% |
+% 2 -- 0 -- 4 0 <== the original point
+% |
+%
+% 3
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \tetrastereo[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% n : single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetrastereo{1==Cl;2==F}
+% \tetrastereo{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\tetrastereo}
+% \begin{macro}{\@tetrastero}
+% \begin{macrocode}
+\def\tetrastereo{\@ifnextchar[{\@tetrastereo[r}{\@tetrastereo[r]}}
+\def\@tetrastereo#1]#2{%
+\begin{sfpicture}(600,600)(-300,-300)
+ \OrigptOutput(300,300){tetrastereo}
+\Put@oCircle(0,0){200}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(0,100)(0,1){70}}% behind
+% \Put@Line(0,100)(0,1){70}% behind
+ \putlratom{-30}{180}{\@memberb}% and up
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(-60,10)(-5,2){140}}% in front
+% \Put@Line(-60,10)(-5,2){140}% in front
+ \putlatom{-205}{30}{\@memberb}}% and left
+\or%
+ \setBScolor{\Put@Line(0,-100)(0,-1){90}}% behind and
+% \Put@Line(0,-100)(0,-1){90}% behind and
+ \putlratom{-30}{-260}{\@memberb}% down
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(60,10)(5,2){140}}% in front
+% \Put@Line(60,10)(5,2){140}% in front
+ \putratom{210}{30}{\@memberb}}% and right
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro tetrastereo
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Tetrahedral unit of inverse stereo type}
+%
+% The macro |\dtetrastereo| typesets another tetrahedral unit in a
+% ball-stick fashion.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *****************************
+% * tetrahedral unit (stereo) *
+% *****************************
+%
+% The following numbering is adopted in this macro.
+%
+% 1
+%
+% |
+% 2 -- 0 -- 4 0 <== the original point
+% |
+%
+% 3
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \dtetrastereo[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% n : single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \dtetrastereo{1==Cl;2==F}
+% \dtetrastereo{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\dtetrastereo}
+% \begin{macro}{\@dtetrastereo}
+% \begin{macrocode}
+\def\dtetrastereo{\@ifnextchar[{\@dtetrastereo[r}{\@dtetrastereo[r]}}
+\def\@dtetrastereo#1]#2{%
+\begin{sfpicture}(600,600)(-300,-300)
+ \OrigptOutput(300,300){dtetrastereo}
+\Put@oCircle(0,0){200}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(0,100)(0,1){70}}% behind
+% \Put@Line(0,100)(0,1){70}% behind
+ \putlratom{-30}{180}{\@memberb}% and up
+\or%
+ \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back
+% \Put@Line(-94,-10)(-5,-2){108}% in back
+ \putlatom{-205}{-110}{\@memberb}% and left
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and
+% \Put@Line(0,-50)(0,-1){150}% behind and
+ \putlratom{-30}{-260}{\@memberb}}% down
+\or%
+ \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back
+% \Put@Line(94,-10)(5,-2){108}% in back
+ \putratom{210}{-110}{\@memberb}% and right
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro dtetrastereo
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Ethane unit of stereo type}
+%
+% The macro |\ethanestereo| typesets an ethane molecule in a
+% ball-stick fashion.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **************************
+% * ethane unit (vertical) *
+% **************************
+%
+% 5
+% |
+% 6 -- (2) -- 4
+% |
+% |
+% 1 -- (1) -- 3 <== the original point
+% |
+% 2
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \ethanestereo[AUXLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% AUXLIST: list of charges
+%
+% {n+} : + charge (or another one chararacter) on n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% n : single bond at n-atom
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% ATOMLIST: list of central atoms
+%
+% n : atom for n-position (e.g. 1==C)
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \ethanestereo{1==Cl;2==F}
+% \ethanestereo{1==C;2==C}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\ethanestereo}
+% \begin{macro}{\@ethanestereo}
+% \begin{macrocode}
+\def\ethanestereo{\@ifnextchar[{\@ethanestereo}{\@ethanestereo[]}}
+\def\@ethanestereo[#1]#2#3{%
+\begin{sfpicture}(600,800)(-300,-300)
+ \OrigptOutput(300,300){ethanestereo}
+\Put@oCircle(0,0){200}%
+\Put@oCircle(0,270){200}%
+\Put@Line(0,100)(0,1){70}% central bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{87}{90}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{87}{360}{\scriptsize\@@tmpb}
+ \fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{237}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back
+% \Put@Line(-94,-10)(-5,-2){108}% in back
+ \putlatom{-205}{-110}{\@memberb}% and left
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and
+% \Put@Line(0,-50)(0,-1){150}% behind and
+ \putlratom{-30}{-260}{\@memberb}}% down
+\or%
+ \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back
+% \Put@Line(94,-10)(5,-2){108}% in back
+ \putratom{210}{-110}{\@memberb}% and right
+% %%%%%%%%
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(60,280)(5,2){140}}% in front
+% \Put@Line(60,280)(5,2){140}% in front
+ \putratom{210}{300}{\@memberb}}% and right
+\or%
+ \setBScolor{\Put@Line(0,370)(0,1){70}}% behind
+% \Put@Line(0,370)(0,1){70}% behind
+ \putlratom{-30}{450}{\@memberb}% and up
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(-60,280)(-5,2){140}}% in front
+% \Put@Line(-60,280)(-5,2){140}% in front
+ \putlatom{-205}{300}{\@memberb}}% and left
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro ethanestereo
+%</aliphat>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%<*aliphat>
+% \section{Wedged bonds for stereochemistry}
+% \subsection{Various tetrahedral units with wedged bonds}
+%
+% The macros |\rtetrahedralS| etc. typesets tetrahedral units weith bold wedged
+% bonds. The following modes of numbering are adopted in these macro.
+%
+% \begin{verbatim}
+% **************************************
+% * tetrahedral units with wedged bonds *
+% **************************************
+%
+%
+% 2
+%
+% /
+% 1 -- 0 0 <== the original point
+% | |
+% 3 4
+% 1,2,3,4 <== substituents
+% \end{verbatim}
+%
+% This macro has an argument |SUBSLIST| as well as an optional
+% argument |AUXLIST|.
+%
+% \begin{verbatim}
+% \rtetrahedralS[AUXLIST]{SUBSLIST}
+% \RtetrahedralS[AUXLIST]{SUBSLIST}
+% \ltetrahedralS[AUXLIST]{SUBSLIST}
+% \LtetrahedralS[AUXLIST]{SUBSLIST}
+% \utetrahedralS[AUXLIST]{SUBSLIST}
+% \UtetrahedralS[AUXLIST]{SUBSLIST}
+% \dtetrahedralS[AUXLIST]{SUBSLIST}
+% \DtetrahedralS[AUXLIST]{SUBSLIST}
+% \htetrahedralS[AUXLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The arugument |AUXLIST| designates an character on the central
+% atom of the formula drawn by this macro. It can be used a plus
+% or minus charge on the center.
+%
+% \begin{verbatim}
+% AUXLIST =
+%
+% {0+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% n : single bond at n-atom
+%
+% for 0 : cetral atom (e.g. 0==C)
+% \end{verbatim}
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+%
+% \begin{macro}{\rtetrahedralS}
+% \begin{macro}{\@rtetrahedralS}
+% \begin{macrocode}
+\def\rtetrahedralS{\@ifnextchar[{\@rtetrahedralS[r}{\@rtetrahedralS[r]}}
+\def\@rtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylrtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){rtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondh}%1 (-1,0)
+%\setatombondh%1 (-1,0)
+\or\setBScolor{\setatombondF}%2 (3,5)
+%\setatombondF%2 (3,5)
+\or\setBScolor{\setatombonde}%3 (5,-3)
+%\setatombonde%3 (5,-3)
+\or\setBScolor{\setatombondE}%4 (3,-5)
+%\setatombondE%4 (3,-5)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro rtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylrtetrahedralSposition| is used in
+% |\rtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylrtetrahedralSposition}}
+%
+% \begin{macro}{\ylrtetrahedralSposition}
+% \begin{macrocode}
+\def\ylrtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\ltetrahedralS}
+% \begin{macro}{\@ltetrahedralS}
+% \begin{macrocode}
+\def\ltetrahedralS{\@ifnextchar[{\@ltetrahedralS[r}{\@ltetrahedralS[r]}}
+\def\@ltetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylltetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){ltetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondb}%1 (1,0)
+%\setatombondb%1 (1,0)
+\or\setBScolor{\setatombondD}%2 (-3,5)
+%\setatombondD%2 (-3,5)
+\or\setBScolor{\setatombondg}%3 (-5,-3)
+%\setatombondg%3 (-5,-3)
+\or\setBScolor{\setatombondG}%4 (-3,-5)
+%\setatombondG%4 (-3,-5)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro ltetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylltetrahedralSposition| is used in
+% |\ltetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylltetrahedralSposition}}
+%
+% \begin{macro}{\ylltetrahedralSposition}
+% \begin{macrocode}
+\def\ylltetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\dtetrahedralS}
+% \begin{macro}{\@dtetrahedralS}
+% \begin{macrocode}
+\def\dtetrahedralS{\@ifnextchar[{\@dtetrahedralS[r}{\@dtetrahedralS[r]}}
+\def\@dtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\yldtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+%\setatombonda%1 (0,1)
+\or\setBScolor{\setatombonde}%5 (5,-3)
+%\setatombonde%5 (5,-3)
+\or\setBScolor{\setatombondg}%3 (-5,-3)
+%\setatombondg%3 (-5,-3)
+\or\setBScolor{\setatombondG}%4 (-3,-5)
+%\setatombondG%4 (-3,-5)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\yldtetrahedralSposition| is used in
+% |\dtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{yldtetrahedralSposition}}
+%
+% \begin{macro}{\yldtetrahedralSposition}
+% \begin{macrocode}
+\def\yldtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
+ \else
+% \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
+ \gdef\@ylii{-42}\gdef\@yli{20}\global\@ylswtrue%W subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\DtetrahedralS}
+% \begin{macro}{\@DtetrahedralS}
+% \begin{macrocode}
+\def\DtetrahedralS{\@ifnextchar[{\@DtetrahedralS[r}{\@DtetrahedralS[r]}}
+\def\@DtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylDtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){DtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+%\setatombonda%1 (0,1)
+\or\setBScolor{\setatombondg}%5 (-5,-3)
+%\setatombondg%5 (-5,-3)
+\or\setBScolor{\setatombonde}%3 (5,-3)
+%\setatombonde%3 (5,-3)
+\or\setBScolor{\setatombondE}%4 (3,-5)
+%\setatombondE%4 (3,-5)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro DtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylDtetrahedralSposition| is used in
+% |\DtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylDtetrahedralSposition}}
+%
+% \begin{macro}{\ylDtetrahedralSposition}
+% \begin{macrocode}
+\def\ylDtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\utetrahedralS}
+% \begin{macro}{\@utetrahedralS}
+% \begin{macrocode}
+\def\utetrahedralS{\@ifnextchar[{\@utetrahedralS[r}{\@utetrahedralS[r]}}
+\def\@utetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylutetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%8 (0,-1)
+%\setatombondc%8 (0,-1)
+\or\setBScolor{\setatombondf}%3 (5,3)
+%\setatombondf%3 (5,3)
+\or\setBScolor{\setatombondD}%1 (-3,5)
+%\setatombondD%1 (-3,5)
+\or\setBScolor{\setatombondd}%3 (-5,3)
+%\setatombondd%3 (-5,3)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylutetrahedralSposition| is used in
+% |\utetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylutetrahedralSposition}}
+%
+% \begin{macro}{\ylutetrahedralSposition}
+% \begin{macrocode}
+\def\ylutetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%N subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
+ \else
+ \gdef\@ylii{-42}\gdef\@yli{-20}\global\@ylswtrue%W subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\UtetrahedralS}
+% \begin{macro}{\@UtetrahedralS}
+% \begin{macrocode}
+\def\UtetrahedralS{\@ifnextchar[{\@UtetrahedralS[r}{\@UtetrahedralS[r]}}
+\def\@UtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylUtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){UtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%1 (0,-1)
+%\setatombondc%1 (0,-1)
+\or\setBScolor{\setatombondd}%2 (-5,3)
+%\setatombondd%2 (-5,3)
+\or\setBScolor{\setatombondF}%3 (3,5)
+%\setatombondF%3 (3,5)
+\or\setBScolor{\setatombondf}%4 (5,3)
+%\setatombondf%4 (5,3)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro UtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylUtetrahedralSposition| is used in
+% |\UtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylUtetrahedralSposition}}
+%
+% \begin{macro}{\ylUtetrahedralSposition}
+% \begin{macrocode}
+\def\ylUtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\htetrahedralS}
+% \begin{macro}{\@htetrahedralS}
+% \begin{macrocode}
+\def\htetrahedralS{\@ifnextchar[{\@htetrahedralS[r}{\@htetrahedralS[r]}}
+\def\@htetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylhtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){htetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondg}%5 (-5,-3)
+%\setatombondg%5 (-5,-3)
+\or\setBScolor{\setatombonde}%5 (5,-3)
+%\setatombonde%5 (5,-3)
+\or\setBScolor{\setatombondF}%1 (3,5)
+%\setatombondF%1 (3,5)
+\or\setBScolor{\setatombondD}%1 (-3,5)
+%\setatombondD%1 (-3,5)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro htetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylhtetrahedralSposition| is used in
+% |\htetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylhtetrahedralSposition}}
+%
+% \begin{macro}{\ylhtetrahedralSposition}
+% \begin{macrocode}
+\def\ylhtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{30}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\RtetrahedralS}
+% \begin{macro}{\@RtetrahedralS}
+% \begin{macrocode}
+\def\RtetrahedralS{\@ifnextchar[{\@RtetrahedralS[r}{\@RtetrahedralS[r]}}
+\def\@RtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylRtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){RtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or
+\setBScolor{\setatombondh}%1 (-1,0)
+%\setatombondh%1 (-1,0)
+\or\setBScolor{\setatombondE}%7 (3,-5)
+%\setatombondE%7 (3,-5)
+\or\setBScolor{\setatombondF}%2 (3,5)
+%\setatombondF%2 (3,5)
+\or\setBScolor{\setatombondf}%3 (5,3)
+%\setatombondf%3 (5,3)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro RtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylRtetrahedralSposition| is used in
+% |\RtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylRtetrahedralSposition}}
+%
+% \begin{macro}{\ylRtetrahedralSposition}
+% \begin{macrocode}
+\def\ylRtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\LtetrahedralS}
+% \begin{macro}{\@LtetrahedralS}
+% \begin{macrocode}
+\def\LtetrahedralS{\@ifnextchar[{\@LtetrahedralS[r}{\@LtetrahedralS[r]}}
+\def\@LtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylLtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){LtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or
+\setBScolor{\setatombondb}%1 (1,0)
+%\setatombondb%1 (1,0)
+\or\setBScolor{\setatombondG}%2 (-3,-5)
+%\setatombondG%2 (-3,-5)
+\or\setBScolor{\setatombondD}%3 (-3,5)
+%\setatombondD%3 (-3,5)
+\or\setBScolor{\setatombondd}%4 (-5,3)
+%\setatombondd%4 (-5,3)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro LtetrahedralS
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\ylLtetrahedralSposition| is used in
+% |\LtetrahedralS| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylLtetrahedralSposition}}
+%
+% \begin{macro}{\ylLtetrahedralSposition}
+% \begin{macrocode}
+\def\ylLtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Trigonal bipyramidal uits for transition states}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\utrigpyramid}
+% \begin{macro}{\@utrigpyramid}
+% \begin{macrocode}
+\def\utrigpyramid{\@ifnextchar[{\@utrigpyramid[r}{\@utrigpyramid[r]}}
+\def\@utrigpyramid#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylutrigpyramidposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utrigpyramid}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%1 (0,-1)
+%\setatombondc%1 (0,-1)
+\or\setBScolor{\setatombondF}%2 (3,5)
+%\setatombondF%2 (3,5)
+\or\setBScolor{\setatombondD}%3 (-3,5)
+%\setatombondD%3 (-3,5)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0)
+%{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0)
+%{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utrigpyramid
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylutrigpyramidposition| is used in
+% |\utrigpyramid| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{ylutrigpyramidposition}}
+%
+% \begin{macro}{\ylutrigpyramidposition}
+% \begin{macrocode}
+\def\ylutrigpyramidposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\dtrigpyramid}
+% \begin{macro}{\@dtrigpyramid}
+% \begin{macrocode}
+\def\dtrigpyramid{\@ifnextchar[{\@dtrigpyramid[r}{\@dtrigpyramid[r]}}
+\def\@dtrigpyramid#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\yldtrigpyramidposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtrigpyramid}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+%set of bond and atoms
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+%\setatombonda%1 (0,1)
+\or\setBScolor{\setatombondE}%2 (3,-5)
+%\setatombondE%2 (3,-5)
+\or\setBScolor{\setatombondG}%3 (-3,-5)
+%\setatombondG%3 (-3,-5)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0)
+%{\let\dotorline=\d@t@rline \setatombondh}%4 (-1,0)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0)
+%{\let\dotorline=\d@t@rline \setatombondb}%5 (1,0)
+\fi%end of ifcase
+\fi\fi}%
+%\@clipfusefalse%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtrigpyramid
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The command |\yldtrigpyramidposition| is used in
+% |\dtrigpyramid| to adjust a substitution position.
+% \changes{v4.02}{2004/12/20}{Newly added command:
+% \cs{yldtrigpyramidposition}}
+%
+% \begin{macro}{\yldtrigpyramidposition}
+% \begin{macrocode}
+\def\yldtrigpyramidposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+%</aliphat>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/aliphat.ins b/macros/latex/contrib/xymtex/base/aliphat.ins
new file mode 100644
index 0000000000..51a8d8c17b
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/aliphat.ins
@@ -0,0 +1,61 @@
+\def\batchfile{aliphat.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002
+Version 4.01 Released on August 30, 2004
+Version 4.02 Released on December 20, 2004
+Version 4.03 Released on July 20, 2005
+Version 4.05 Released on September 07, 2009
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on April 02, 2013
+
+The Present Version:
+Version 5.01 Released on July 20, 2013
+
+Copyright (C) 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita,
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files aliphat.dtx and aliphat.ins
+and the derived file aliphat.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{aliphat.drv}{t}{%
+ \from{aliphat.dtx}{driver}}
+
+\generateFile{aliphat.sty}{t}{%
+ \from{aliphat.dtx}{aliphat}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/aliphat.sty b/macros/latex/contrib/xymtex/base/aliphat.sty
new file mode 100644
index 0000000000..73337f41be
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/aliphat.sty
@@ -0,0 +1,2477 @@
+%%
+%% This is file `aliphat.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aliphat.dtx (with options: `aliphat')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002
+%% Version 4.01 Released on August 30, 2004
+%% Version 4.02 Released on December 20, 2004
+%% Version 4.03 Released on July 20, 2005
+%% Version 4.05 Released on September 07, 2009
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on April 02, 2013
+%%
+%% The Present Version:
+%% Version 5.01 Released on July 20, 2013
+%%
+%% Copyright (C) 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita,
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files aliphat.dtx and aliphat.ins
+%% and the derived file aliphat.sty.
+%%
+%% =======================================
+%%
+%% File: aliphat.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 20, 2013 by Shinsaku Fujita}
+\def\j@urnalname{aliphat}
+\def\versi@ndate{July 20, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+\newif\ifno@centeratom \no@centeratomfalse
+\def\Northbond{%
+\@ifnextchar[{\N@rthbond}{\N@rthbond[]}}
+\def\N@rthbond[#1]{%
+\yl@xdiff=40
+\yl@ydiff=-15
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=100\relax
+\@tempcntb=100\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by52\relax
+\advance\@tempcntb by52\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom\else%%added2013/4/2
+\advance\@tempcnta by52\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by15\relax%%67-52=15added2013/4/2
+\else
+\advance\@tempcnta by67\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+\begin{sfpicture}(0,0)(0,0)
+\ifno@centeratom%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,0)(0,1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(0,1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(0,1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(-13,52)(26,0){2}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(-20,52)(20,0){3}{\Put@Line(0,0)(0,1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,52)(0,1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,52)(0,1){\@tempcntavaluea}/(0,52)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,52)(0,1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==1 upper substituent
+\end{sfpicture}}%End of Northbond
+\def\Eastbond{%
+\@ifnextchar[{\E@stbond}{\E@stbond[]}}
+\def\E@stbond[#1]{%
+\yl@xdiff=-10
+\yl@ydiff=33
+\edef\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=140\relax
+\@tempcntb=140\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom%
+\advance\@tempcnta by50\relax
+\advance\@tempcntb by50\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom\else%%added 2013/4/2
+\advance\@tempcnta by63\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by13\relax%%63-50=13added 2013/4/2
+\else
+\advance\@tempcnta by50\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(0,0)(1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(1,0){\@tempcntavaluea}/(0,0)(\@tempcntavaluec,0)%
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(50,-13)(0,26){2}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(50,-20)(0,20){3}{\Put@Line(0,0)(1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(50,0)(1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(50,0)(1,0){\@tempcntavaluea}/(50,0)(\@tempcntavaluec,0)%
+ \else\if\@tmpb S%
+ \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(50,0)(1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putratom{\@tempcntavalueb}{-33}{\@memberb}%==2 right substituent
+\end{sfpicture}}%End of Eastbond
+\def\Southbond{%
+\@ifnextchar[{\S@uthbond}{\S@uthbond[]}}
+\def\S@uthbond[#1]{%
+\yl@xdiff=40
+\yl@ydiff=95
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=100\relax
+\@tempcntb=100\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by48\relax
+\advance\@tempcntb by48\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom\else%%added2013/4/2
+\advance\@tempcnta by-48\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by-90\relax%%143-48=98 (-8) added2013/4/2
+\else
+\advance\@tempcnta by-143\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(-13,0)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(-20,0)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,0)(0,-1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,0)(0,-1){\@tempcntavaluea}/(0,0)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,-0)(0,-1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(0,-1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(-13,-48)(26,0){2}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(-20,-48)(20,0){3}{\Put@Line(0,0)(0,-1){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-8,-48)(0,-1){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+ \dotorline(0,-48)(0,-1){\@tempcntavaluea}/(0,-48)(0,\@tempcntavalueb)%
+ \else\if\@tmpb S%
+ \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,-48)(0,-1){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlratom{-40}{\@tempcntavaluec}{\@memberb}%==3 down substituent
+\end{sfpicture}}%End of Southbond
+
+\def\Westbond{%
+\@ifnextchar[{\W@stbond}{\W@stbond[]}}
+\def\W@stbond[#1]{%
+\yl@xdiff=10
+\yl@ydiff=33
+\def\@tempXX{#1}%
+\ifx\@tempXX\empty
+\@tempcnta=140\relax
+\@tempcntb=140\relax
+\else
+\@tempcnta=#1\relax
+\@tempcntb=#1\relax
+\fi
+\ifno@centeratom
+\advance\@tempcnta by50\relax
+\advance\@tempcntb by50\relax
+\fi
+\edef\@tempcntavaluea{\the\@tempcnta}%
+\@tempcnta=-\@tempcntb
+\ifno@centeratom\else%%added 2013/4/2
+\advance\@tempcnta by-63\relax
+\fi
+\edef\@tempcntavalueb{\the\@tempcnta}%
+\@tempcnta=\@tempcntb
+\ifno@centeratom
+\advance\@tempcnta by-13\relax%%63-50=13 added 2013/4/2
+\else%
+\advance\@tempcnta by50\relax
+\fi
+\edef\@tempcntavaluec{\the\@tempcnta}%
+\begin{sfpicture}(0,0)(0,0)
+ \ifno@centeratom%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(0,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(0,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(0,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+%% \dotorline(0,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
+ \dotorline(0,0)(-1,0){\@tempcntavaluea}/(0,0)(\@tempcntavalueb,0)%2013/04/02
+ \else\if\@tmpb S%
+ \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefine
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(0,0)(-1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \else%
+ \if\@tmpb D\relax%
+ \Multiput@Direct(-50,-13)(0,26){2}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb T\relax%
+ \Multiput@Direct(-50,-20)(0,20){3}{\Put@Line(0,0)(-1,0){\@tempcntavaluea}}%2010/10/01
+ \else\if\@tmpb B%(B) beta <-- alpha 2002/6/13
+ {\thicklines\Put@Line(-50,0)(-1,0){\@tempcntavaluea}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha <-- beta 2002/6/13
+%% \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(\@tempcntavalueb,0)(-40,0)%
+ \dotorline(-50,0)(-1,0){\@tempcntavaluea}/(-40,0)(\@tempcntavalueb,0)%%2013/06/16
+ \else\if\@tmpb S%
+ \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ }%
+ \else \Put@Line(-50,0)(-1,0){\@tempcntavaluea}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+ \putlatom{\@tempcntavalueb}{-33}{\@memberb}%==4 left substituent
+\end{sfpicture}}%End of Westbond
+\def\NEBond{%degree 120
+\yl@xdiff=-9
+\yl@ydiff=13
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(33,48)(5,3){121}%
+ \Put@Line(47,26)(5,3){121}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(31,52)(5,3){121}%
+ \Put@Line(40,37)(5,3){121}%
+ \Put@Line(49,22)(5,3){121}%northeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(5,3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,47)(5,3){121}/(40,47)(161,120)%
+ \else\if\@tmpb S%
+ \Put@Line(40,47)(5,3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,47)(5,3){121}%
+ }%
+ \else \Put@Line(40,47)(5,3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{170}{107}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+\def\NEbond{%degree 90
+\yl@xdiff=-5
+\yl@ydiff=10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(31,46)(1,1){100}%
+ \Put@Line(49,28)(1,1){100}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(27,50)(1,1){100}%
+ \Put@Line(40,37)(1,1){100}%
+ \Put@Line(53,24)(1,1){100}%northeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(1,1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,47)(1,1){100}/(40,47)(140,147)%
+ \else\if\@tmpb S%
+ \Put@Line(40,47)(1,1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,47)(1,1){100}%
+ }%
+ \else \Put@Line(40,47)(1,1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{145}{137}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+\def\SEBond{%degree 120
+\yl@xdiff=-9
+\yl@ydiff=67
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(33,-48)(5,-3){121}%
+ \Put@Line(47,-26)(5,-3){121}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(31,-52)(5,-3){121}%
+ \Put@Line(40,-37)(5,-3){121}%
+ \Put@Line(49,-22)(5,-3){121}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,-47)(5,-3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,-47)(5,-3){121}/(40,-47)(161,-120)%
+ \else\if\@tmpb S%
+ \Put@Line(40,-47)(5,-3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,-47)(5,-3){121}%
+ }%
+ \else \Put@Line(40,-47)(5,-3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{170}{-187}{\@memberb}%==2 (southeast substituent)
+\end{sfpicture}}%
+\def\SEbond{%degree 90
+\yl@xdiff=-5
+\yl@ydiff=56
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(31,-46)(1,-1){100}%
+ \Put@Line(49,-28)(1,-1){100}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(27,-50)(1,-1){100}%
+ \Put@Line(40,-37)(1,-1){100}%
+ \Put@Line(53,-24)(1,-1){100}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(53,-47)(1,-1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(40,-47)(1,-1){100}/(40,-47)(140,-147)%
+ \else\if\@tmpb S%
+ \Put@Line(40,-47)(1,-1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(40,-47)(1,-1){100}%
+ }%
+ \else \Put@Line(40,-47)(1,-1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{145}{-203}{\@memberb}%==3 (southeast substituent)
+\end{sfpicture}}%
+\def\NWBond{%
+\begin{sfpicture}(100,300)(0,0)
+\yl@xdiff=9
+\yl@ydiff=13
+ \if\@tmpb D\relax%
+ \Put@Line(-59,48)(-5,3){121}%
+ \Put@Line(-73,26)(-5,3){121}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-57,52)(-5,3){121}%
+ \Put@Line(-66,37)(-5,3){121}%
+ \Put@Line(-75,22)(-5,3){121}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-66,47)(-5,3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-66,47)(-5,3){121}/(-66,47)(-187,120)%
+ \else\if\@tmpb S%
+ \Put@Line(-66,47)(-5,3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-66,47)(-5,3){121}%
+ }%
+ \else \Put@Line(-66,47)(-5,3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-196}{107}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+\def\NWbond{%
+\begin{sfpicture}(100,300)(0,0)
+\yl@xdiff=13
+\yl@ydiff=10
+ \if\@tmpb D\relax%
+ \Put@Line(-41,46)(-1,1){100}%
+ \Put@Line(-59,28)(-1,1){100}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-37,50)(-1,1){100}%
+ \Put@Line(-50,37)(-1,1){100}%
+ \Put@Line(-63,24)(-1,1){100}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-50,47)(-1,1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-50,47)(-1,1){100}/(-50,47)(-137,147)%
+ \else\if\@tmpb S%
+ \Put@Line(-50,47)(-1,1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,47)(-1,1){100}%
+ }%
+ \else \Put@Line(-50,47)(-1,1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-163}{137}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+\def\SWBond{%
+\yl@xdiff=9
+\yl@ydiff=67
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-59,-48)(-5,-3){121}%
+ \Put@Line(-73,-26)(-5,-3){121}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-57,-52)(-5,-3){121}%
+ \Put@Line(-66,-37)(-5,-3){121}%
+ \else\if\@tmpb B%(B) beta
+ \Put@Line(-75,-22)(-5,-3){121}%southwest triple bond
+ {\thicklines\Put@Line(-66,-47)(-5,-3){121}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-66,-47)(-5,-3){121}/(-66,-47)(-187,-120)%
+ \else\if\@tmpb S%
+ \Put@Line(-66,-47)(-5,-3){121}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-66,-47)(-5,-3){121}%
+ }%
+ \else \Put@Line(-66,-47)(-5,-3){121}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-196}{-187}{\@memberb}%==2 (southwest substituent)
+\end{sfpicture}}%
+\def\SWbond{%
+\yl@xdiff=13
+\yl@ydiff=56
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-41,-46)(-1,-1){100}%
+ \Put@Line(-59,-28)(-1,-1){100}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-37,-50)(-1,-1){100}%
+ \Put@Line(-50,-37)(-1,-1){100}%
+ \Put@Line(-63,-24)(-1,-1){100}%southwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-50,-47)(-1,-1){100}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-50,-47)(-1,-1){100}/(-50,-47)(-137,-147)%
+ \else\if\@tmpb S%
+ \Put@Line(-50,-47)(-1,-1){100}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-50,-47)(-1,-1){100}%
+ }%
+ \else \Put@Line(-50,-47)(-1,-1){100}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
+\end{sfpicture}}%
+\def\NEBOND{%degree 120
+\yl@xdiff=-1
+\yl@ydiff=-10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(48,33)(3,5){72}%
+ \Put@Line(26,47)(3,5){72}%northeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(52,31)(3,5){72}%
+ \Put@Line(37,40)(3,5){72}%
+ \Put@Line(22,49)(3,5){72}%northeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(40,47)(3,5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(47,40)(3,5){72}/(47,40)(120,161)%
+ \else\if\@tmpb S%
+ \Put@Line(47,40)(3,5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(47,40)(3,5){72}%
+ }%
+ \else \Put@Line(47,40)(3,5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{120}{170}{\@memberb}%==2 (northeast substituent)
+\end{sfpicture}}%
+\def\SEBOND{%degree 120
+\yl@xdiff=-1
+\yl@ydiff=70
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(48,-33)(3,-5){72}%
+ \Put@Line(26,-47)(3,-5){72}%southeast double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(52,-31)(3,-5){72}%
+ \Put@Line(37,-40)(3,-5){72}%
+ \Put@Line(22,-49)(3,-5){72}%southeast triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(47,-40)(3,-5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(47,-40)(3,-5){72}/(47,-40)(120,-161)%
+ \else\if\@tmpb S%
+ \Put@Line(47,-40)(3,-5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(47,-40)(3,-5){72}%
+ }%
+ \else \Put@Line(47,-40)(3,-5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putratom{120}{-230}{\@memberb}%==2 (southeast substituent)
+\end{sfpicture}}%
+\def\NWBOND{%
+\yl@xdiff=1
+\yl@ydiff=-10
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-48,33)(-3,5){72}%
+ \Put@Line(-26,47)(-3,5){72}%northwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-52,31)(-3,5){72}%
+ \Put@Line(-37,40)(-3,5){72}%
+ \Put@Line(-22,49)(-3,5){72}%northwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-40,47)(-3,5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-47,40)(-3,5){72}/(-47,40)(-120,161)%
+ \else\if\@tmpb S%
+ \Put@Line(-47,40)(-3,5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-47,40)(-3,5){72}%
+ }%
+ \else \Put@Line(-47,40)(-3,5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{170}{\@memberb}%==2 (northwest substituent)
+\end{sfpicture}}%
+\def\SWBOND{%
+\yl@xdiff=1
+\yl@ydiff=70
+\begin{sfpicture}(100,300)(0,0)
+ \if\@tmpb D\relax%
+ \Put@Line(-48,-33)(-3,-5){72}%
+ \Put@Line(-26,-47)(-3,-5){72}%southwest double bond
+ \else\if\@tmpb T\relax%
+ \Put@Line(-52,-31)(-3,-5){72}%
+ \Put@Line(-37,-40)(-3,-5){72}%
+ \Put@Line(-22,-49)(-3,-5){72}%southwest triple bond
+ \else\if\@tmpb B%(B) beta
+ {\thicklines\Put@Line(-47,-40)(-3,-5){72}}% single bond (alpha)
+ \else\if\@tmpb A%(A) alpha
+ \dotorline(-47,-40)(-3,-5){72}/(-47,-40)(-120,-161)%
+ \else\if\@tmpb S%
+ \Put@Line(-47,-40)(-3,-5){72}%
+ \else\if\@tmpb U% undefined
+ {%
+ \WaveBonds%
+ \Put@Line(-47,-40)(-3,-5){72}%
+ }%
+ \else \Put@Line(-47,-40)(-3,-5){72}%
+ \fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{-230}{\@memberb}%==2 (southwest substituent)
+\end{sfpicture}}%
+\def\tetrahedral{\@ifnextchar[{\@tetrahedral[r}{\@tetrahedral[r]}}
+\def\@tetrahedral#1]#2{%
+\@ifnextchar<{\@@tetrahedral#1]{#2}}{\@@tetrahedral#1]{#2}<,,,>}}%bug @ added 2009/11/07
+\def\@@tetrahedral#1]#2<#3,#4,#5,#6>{%
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\centralatomcheck{#2}%
+\yltetrahedralposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){tetrahedral}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{47}{50}{\scriptsize\@@tmpb}}\fi}%
+%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%central atom
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+%%%\global\West@bondfalse
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase%
+\fi\fi}%
+%%%%%%%%%%%%%%%%%%%%%%
+%%setting four bonds%%
+%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Northbond[#3]}}%
+\else
+\setBScolor{\Put@Direct(0,0){\Northbond[#3]}}%
+\fi
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Westbond[#4]}}%
+\else
+\setBScolor{\Put@Direct(0,0){\Westbond[#4]}}%
+\fi
+}%
+\or
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\Southbond[#5]}}%
+\else
+\setBScolor{\Put@Direct(0,0){\Southbond[#5]}}%
+\fi
+\or{%
+\ifno@centeratom%
+\setBScolor{\Put@Direct(0,0){\Eastbond[#6]}}%
+\else%
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\kern-0.72em\Eastbond[#6]}}%
+\fi}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+}%end of macro tetrahedral
+\def\centralatomcheck#1{%
+\no@centeratomtrue%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifcase\@tmpa\relax%
+\no@centeratomfalse%
+\else%no action
+\fi\fi%
+}}
+\newif\ifEast@bond
+\newif\ifWest@bond
+\def\yltetrahedralposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/07/30bug fix
+\West@bondfalse
+\East@bondfalse
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw%
+\ifcase\@tmpa%
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else%
+ \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \fi%
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \else%
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%
+ \fi%
+ \East@bondtrue%W subst. on 1
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
+ \else%
+ \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \fi%
+ \or%
+ \ifno@centeratom%
+ \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
+ \else%
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%
+ \fi%
+ \West@bondtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\divalenth#1#2{%
+\@reset@ylsw%
+\yldivalenthposition{#1}{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,400)(-300,-200){\divalenth}%2002/4/30 by S. Fujita
+(300,200)%
+{\expandafter\@m@mb@r#1;\relax
+ \putratom{-30}{-33}{\@memberb}}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+\or\setBScolor{\Put@Direct(\the\@tempcnta,0){\Eastbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro tetrahedral
+\def\yldivalenthposition#1#2{%
+{\expandafter\@m@mb@r#1;\relax
+ \setbox0=\hbox{\@memberb}%
+ \@tempcnta=\wd0
+ \@tempcntb=\unitlength
+ \divide\@tempcnta by\@tempcntb
+ \global\advance\@tempcnta by-62%
+ \@tempcntb=\@tempcnta \global\advance\@tempcntb by50\relax
+ }%
+\@@ylswfalse%
+\@forsemicol\member:=#2\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \or \edef\@ylii{-\the\@tempcntb}\gdef\@yli{0}\global\@ylswtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\rtrigonal{\@ifnextchar[{\@rtrigonal[r}{\@rtrigonal[r]}}
+\def\@rtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylrtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){rtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro rtrigonal
+\def\ylrtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Rtrigonal{\@ifnextchar[{\@Rtrigonal[r}{\@Rtrigonal[r]}}
+\def\@Rtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylRtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Rtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Westbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEBOND}}%
+\or\setBScolor{\Put@Direct(0,0){\NEBOND}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Rtrigonal
+\def\ylRtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue% W subst. on 1
+ \or \gdef\@ylii{-47}\gdef\@yli{40}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-47}\gdef\@yli{-40}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ltrigonal{\@ifnextchar[{\@ltrigonal[r}{\@ltrigonal[r]}}
+\def\@ltrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylltrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){ltrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase
+\fi\fi}%
+%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or{%
+\advance\@tempdima by-0.72em
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWbond}}%
+\else
+\setBScolor{\Put@Direct(0,0){\NWbond}}%
+\fi
+}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWbond}}%
+\else
+\setBScolor{\Put@Direct(0,0){\SWbond}}%
+\fi
+}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+\endgroup}%end of macro ltrigonal
+\def\ylltrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
+ \West@bondtrue%
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Ltrigonal{\@ifnextchar[{\@Ltrigonal[r}{\@Ltrigonal[r]}}
+\def\@Ltrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\West@bondfalse
+\East@bondfalse
+\ylLtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Ltrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@tempdima=0pt
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\setbox9=\hbox{\@memberb}%
+\ifdim\wd9<0.72em
+\@tempdima=0.72em
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb\hss}}}%central atom
+\else
+\ifWest@bond
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\hss\@memberb}}}%central atom
+%%%%\global\West@bondfalse
+\else
+\@tempdima=\wd9
+{\putlratom{-40}{-33}{\hbox to.72em{\@memberb\hss}}}%central atom
+\fi\fi
+\else%%no action
+\fi%end of ifcase
+\fi\fi}%
+%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+\or{%
+\advance\@tempdima by-0.72em
+\setBScolor{\Put@Direct(0,0){\kern\@tempdima\Eastbond}}}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\NWBOND}}%
+\else
+\setBScolor{\Put@Direct(0,0){\NWBOND}}%
+\fi
+}%
+\or{%
+\ifWest@bond
+\setBScolor{\Put@Direct(0,0){\kern-\@tempdima\kern0.72em\SWBOND}}%
+\else
+\setBScolor{\Put@Direct(0,0){\SWBOND}}%
+\fi
+}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\West@bondfalse
+\East@bondfalse
+\endgroup}%end of macro Ltrigonal
+\def\ylLtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue% E subst. on 1
+ \West@bondtrue%
+ \or \gdef\@ylii{47}\gdef\@yli{-40}\global\@ylswtrue% NWB subst. on 1
+ \or \gdef\@ylii{47}\gdef\@yli{40}\global\@ylswtrue% SWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\utrigonal{\@ifnextchar[{\@utrigonal[r}{\@utrigonal[r]}}
+\def\@utrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%2013/04/01 added
+\ylutrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utrigonal
+\def\ylutrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Utrigonal{\@ifnextchar[{\@Utrigonal[r}{\@Utrigonal[r]}}
+\def\@Utrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\ylUtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Utrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(0,0){\NEBond}}%
+\or\setBScolor{\Put@Direct(0,0){\NWBond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Utrigonal
+\def\ylUtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NEB subst. on 1
+ \or \gdef\@ylii{66}\gdef\@yli{-47}\global\@ylswtrue% NWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\dtrigonal{\@ifnextchar[{\@dtrigonal[r}{\@dtrigonal[r]}}
+\def\@dtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\yldtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtrigonal
+\def\yldtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Dtrigonal{\@ifnextchar[{\@Dtrigonal[r}{\@Dtrigonal[r]}}
+\def\@Dtrigonal#1]#2{%
+\begingroup
+\@reset@ylsw%
+\ylDtrigonalposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){Dtrigonal}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa
+{\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEBond}}%
+\or\setBScolor{\Put@Direct(0,0){\SWBond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro Dtrigonal
+\def\ylDtrigonalposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SEB subst. on 1
+ \or \gdef\@ylii{66}\gdef\@yli{47}\global\@ylswtrue% SWB subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ethylene{\@ifnextchar[{\@ethylene}{\@ethylene[]}}
+\def\@ethylene[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenepositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenepositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-230}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,600)(-300,-300){ethylene}%2002/4/30 by S. Fujita
+(300,300)%
+{\def\aaa{#1}\ifx\aaa\empty%
+ \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01
+}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa d\relax%
+ {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \else\if\@@tmpa t\relax%
+ {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \fi\fi\fi\fi}%
+{\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{190}{-33}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{190}{-33}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+\or\setBScolor{\Put@Direct(230,0){\SEbond}}%
+\or\setBScolor{\Put@Direct(230,0){\NEbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro ethylene
+\let\ethyleneh=\ethylene
+\def\ylethylenepositiona#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ylethylenepositionb#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%omit
+ \or%omit
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Ethylene{\@ifnextchar[{\@Ethylene}{\@Ethylene[]}}%bug \@ethylene --> \@Ethylene
+\def\@Ethylene[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenepositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenepositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-230}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,600)(-300,-300){Ethylene}%2002/4/30 by S. Fujita
+(300,300)%
+{\def\aaa{#1}\ifx\aaa\empty%
+ \Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}\fi%2010/10/01
+}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax {\putratom{-27}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa 2\relax {\putratom{203}{60}{\scriptsize\@@tmpb}}%
+ \else\if\@@tmpa d\relax%
+ {\Multiput@Direct(42,-13)(0,25){2}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \else\if\@@tmpa t\relax%
+ {\Multiput@Direct(42,-20)(0,20){3}{\Put@Line(0,0)(1,0){140}}}%2010/10/01
+ \fi\fi\fi\fi}%
+{\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{190}{-33}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{190}{-33}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\NWBOND}}%
+\or\setBScolor{\Put@Direct(0,0){\SWBOND}}%
+\or\setBScolor{\Put@Direct(230,0){\SEBOND}}%
+\or\Put@Direct(230,0){\NEBOND}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro Ethylene
+\let\Ethyleneh=\Ethylene
+\def\ethylenev{\@ifnextchar[{\@ethylenev}{\@ethylenev[]}}
+\def\@ethylenev[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenevpositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenevpositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-230}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,800)(-300,-300){ethylenev}%2002/4/30 by S. Fujita
+(300,300)%
+\def\aaa{#1}\ifx\aaa\empty%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(6,47)(0,1){140}\fi% double bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa d\relax%
+ \Put@Line(-13,47)(0,1){140}% vertical
+ \Put@Line(13,47)(0,1){140}% double bond
+ \else\if\@@tmpa t\relax%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(-0,47)(0,1){140}% triple bond
+ \Put@Line(20,47)(0,1){140}%
+ \fi\fi\fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{-40}{197}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{197}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+\or\setBScolor{\Put@Direct(0,230){\NEbond}}%
+\or\setBScolor{\Put@Direct(0,230){\NWbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro ethylenev
+\def\ylethylenevpositiona#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ylethylenevpositionb#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%omit
+ \or%omit
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\Ethylenev{\@ifnextchar[{\@Ethylenev}{\@Ethylenev[]}}
+\def\@Ethylenev[#1]#2#3{%
+\@reset@ylsw%
+\ylethylenevpositiona{#3}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylethylenevpositionb{#3}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-230}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,800)(-300,-300){Ethylenev}%2002/4/30 by S. Fujita
+(300,300)%
+\def\aaa{#1}\ifx\aaa\empty%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(6,47)(0,1){140}\fi% double bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{37}{0}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{37}{216}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa d\relax%
+ \Put@Line(-13,47)(0,1){140}% vertical
+ \Put@Line(13,47)(0,1){140}% double bond
+ \else\if\@@tmpa t\relax%
+ \Put@Line(-20,47)(0,1){140}% vertical
+ \Put@Line(-0,47)(0,1){140}% triple bond
+ \Put@Line(20,47)(0,1){140}%
+ \fi\fi\fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty%
+\putratom{-40}{-33}{C}%central atom
+\putratom{-40}{197}{C}%central atom
+\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{197}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%
+\or\setBScolor{\Put@Direct(0,0){\SWBond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEBond}}%
+\or\setBScolor{\Put@Direct(0,230){\NEBond}}%
+\or\setBScolor{\Put@Direct(0,230){\NWBond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro Ethylenev
+\def\squareplanar{\@ifnextchar[{\@squareplanar[r}{\@squareplanar[r]}}
+\def\@squareplanar#1]#2{%
+\@reset@ylsw%
+\ylsquareposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){square}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{37}{0}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\Put@Direct(0,0){\NEbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SEbond}}%
+\or\setBScolor{\Put@Direct(0,0){\SWbond}}%
+\or\setBScolor{\Put@Direct(0,0){\NWbond}}%
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}%end of macro squareplanar
+\let\squarecomplex=\squareplanar
+\let\square=\squarplanar%combatible to the old version (<4.04)
+\def\ylsquareposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/07/30bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \or \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 1
+ \or \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\tetrastereo{\@ifnextchar[{\@tetrastereo[r}{\@tetrastereo[r]}}
+\def\@tetrastereo#1]#2{%
+\begin{sfpicture}(600,600)(-300,-300)
+ \OrigptOutput(300,300){tetrastereo}
+\Put@oCircle(0,0){200}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(0,100)(0,1){70}}% behind
+ \putlratom{-30}{180}{\@memberb}% and up
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(-60,10)(-5,2){140}}% in front
+ \putlatom{-205}{30}{\@memberb}}% and left
+\or%
+ \setBScolor{\Put@Line(0,-100)(0,-1){90}}% behind and
+ \putlratom{-30}{-260}{\@memberb}% down
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(60,10)(5,2){140}}% in front
+ \putratom{210}{30}{\@memberb}}% and right
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro tetrastereo
+\def\dtetrastereo{\@ifnextchar[{\@dtetrastereo[r}{\@dtetrastereo[r]}}
+\def\@dtetrastereo#1]#2{%
+\begin{sfpicture}(600,600)(-300,-300)
+ \OrigptOutput(300,300){dtetrastereo}
+\Put@oCircle(0,0){200}%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax \putratom{87}{90}{\scriptsize\@@tmpb}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(0,100)(0,1){70}}% behind
+ \putlratom{-30}{180}{\@memberb}% and up
+\or%
+ \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back
+ \putlatom{-205}{-110}{\@memberb}% and left
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and
+ \putlratom{-30}{-260}{\@memberb}}% down
+\or%
+ \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back
+ \putratom{210}{-110}{\@memberb}% and right
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro dtetrastereo
+\def\ethanestereo{\@ifnextchar[{\@ethanestereo}{\@ethanestereo[]}}
+\def\@ethanestereo[#1]#2#3{%
+\begin{sfpicture}(600,800)(-300,-300)
+ \OrigptOutput(300,300){ethanestereo}
+\Put@oCircle(0,0){200}%
+\Put@oCircle(0,270){200}%
+\Put@Line(0,100)(0,1){70}% central bond
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 1\relax \putratom{87}{90}{\scriptsize\@@tmpb}
+ \else\if\@@tmpa 2\relax \putratom{87}{360}{\scriptsize\@@tmpb}
+ \fi\fi}%
+\def\aaa{#2}%
+\ifx\aaa\empty\else%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa%
+\or\putratom{-40}{-33}{\@memberb}%central atom
+\or\putratom{-40}{237}{\@memberb}%central atom
+\fi\fi}%end of ifcase
+\fi%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \putlratom{-40}{-33}{\@memberb}%central atom
+\or%
+ \setBScolor{\Put@Line(-94,-10)(-5,-2){108}}% in back
+ \putlatom{-205}{-110}{\@memberb}% and left
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(0,-50)(0,-1){150}}% behind and
+ \putlratom{-30}{-260}{\@memberb}}% down
+\or%
+ \setBScolor{\Put@Line(94,-10)(5,-2){108}}% in back
+ \putratom{210}{-110}{\@memberb}% and right
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(60,280)(5,2){140}}% in front
+ \putratom{210}{300}{\@memberb}}% and right
+\or%
+ \setBScolor{\Put@Line(0,370)(0,1){70}}% behind
+ \putlratom{-30}{450}{\@memberb}% and up
+\or%
+ {\thicklines%
+ \setBScolor{\Put@Line(-60,280)(-5,2){140}}% in front
+ \putlatom{-205}{300}{\@memberb}}% and left
+\fi\fi}%end of ifcase
+\end{sfpicture}}%end of macro ethanestereo
+\def\rtetrahedralS{\@ifnextchar[{\@rtetrahedralS[r}{\@rtetrahedralS[r]}}
+\def\@rtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylrtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){rtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondh}%1 (-1,0)
+\or\setBScolor{\setatombondF}%2 (3,5)
+\or\setBScolor{\setatombonde}%3 (5,-3)
+\or\setBScolor{\setatombondE}%4 (3,-5)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro rtetrahedralS
+\def\ylrtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\ltetrahedralS{\@ifnextchar[{\@ltetrahedralS[r}{\@ltetrahedralS[r]}}
+\def\@ltetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylltetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){ltetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondb}%1 (1,0)
+\or\setBScolor{\setatombondD}%2 (-3,5)
+\or\setBScolor{\setatombondg}%3 (-5,-3)
+\or\setBScolor{\setatombondG}%4 (-3,-5)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro ltetrahedralS
+\def\ylltetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\dtetrahedralS{\@ifnextchar[{\@dtetrahedralS[r}{\@dtetrahedralS[r]}}
+\def\@dtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\yldtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+\or\setBScolor{\setatombonde}%5 (5,-3)
+\or\setBScolor{\setatombondg}%3 (-5,-3)
+\or\setBScolor{\setatombondG}%4 (-3,-5)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtetrahedralS
+\def\yldtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
+ \else
+ \gdef\@ylii{-42}\gdef\@yli{20}\global\@ylswtrue%W subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\DtetrahedralS{\@ifnextchar[{\@DtetrahedralS[r}{\@DtetrahedralS[r]}}
+\def\@DtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylDtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){DtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+\or\setBScolor{\setatombondg}%5 (-5,-3)
+\or\setBScolor{\setatombonde}%3 (5,-3)
+\or\setBScolor{\setatombondE}%4 (3,-5)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro DtetrahedralS
+\def\ylDtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{20}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{20}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\utetrahedralS{\@ifnextchar[{\@utetrahedralS[r}{\@utetrahedralS[r]}}
+\def\@utetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylutetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%8 (0,-1)
+\or\setBScolor{\setatombondf}%3 (5,3)
+\or\setBScolor{\setatombondD}%1 (-3,5)
+\or\setBScolor{\setatombondd}%3 (-5,3)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utetrahedralS
+\def\ylutetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%N subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 2
+ \else
+ \gdef\@ylii{-42}\gdef\@yli{-20}\global\@ylswtrue%W subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\UtetrahedralS{\@ifnextchar[{\@UtetrahedralS[r}{\@UtetrahedralS[r]}}
+\def\@UtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylUtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){UtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%1 (0,-1)
+\or\setBScolor{\setatombondd}%2 (-5,3)
+\or\setBScolor{\setatombondF}%3 (3,5)
+\or\setBScolor{\setatombondf}%4 (5,3)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro UtetrahedralS
+\def\ylUtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-20}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\htetrahedralS{\@ifnextchar[{\@htetrahedralS[r}{\@htetrahedralS[r]}}
+\def\@htetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylhtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){htetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondg}%5 (-5,-3)
+\or\setBScolor{\setatombonde}%5 (5,-3)
+\or\setBScolor{\setatombondF}%1 (3,5)
+\or\setBScolor{\setatombondD}%1 (-3,5)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro htetrahedralS
+\def\ylhtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{30}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\RtetrahedralS{\@ifnextchar[{\@RtetrahedralS[r}{\@RtetrahedralS[r]}}
+\def\@RtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylRtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){RtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or
+\setBScolor{\setatombondh}%1 (-1,0)
+\or\setBScolor{\setatombondE}%7 (3,-5)
+\or\setBScolor{\setatombondF}%2 (3,5)
+\or\setBScolor{\setatombondf}%3 (5,3)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro RtetrahedralS
+\def\ylRtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\LtetrahedralS{\@ifnextchar[{\@LtetrahedralS[r}{\@LtetrahedralS[r]}}
+\def\@LtetrahedralS#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylLtetrahedralSposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){LtetrahedralS}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or
+\setBScolor{\setatombondb}%1 (1,0)
+\or\setBScolor{\setatombondG}%2 (-3,-5)
+\or\setBScolor{\setatombondD}%3 (-3,5)
+\or\setBScolor{\setatombondd}%4 (-5,3)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro LtetrahedralS
+\def\ylLtetrahedralSposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{40}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-20}\global\@ylswtrue%SE subst. on 3
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\utrigpyramid{\@ifnextchar[{\@utrigpyramid[r}{\@utrigpyramid[r]}}
+\def\@utrigpyramid#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\ylutrigpyramidposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){utrigpyramid}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombondc}%1 (0,-1)
+\or\setBScolor{\setatombondF}%2 (3,5)
+\or\setBScolor{\setatombondD}%3 (-3,5)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro utrigpyramid
+\def\ylutrigpyramidposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{-47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{-47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\dtrigpyramid{\@ifnextchar[{\@dtrigpyramid[r}{\@dtrigpyramid[r]}}
+\def\@dtrigpyramid#1]#2{%
+\begingroup
+\@reset@ylsw%
+\centralatomcheck{#2}%
+\ifno@centeratom\relax\@clipfusefalse\else\@clipfusetrue\fi%
+\yldtrigpyramidposition{#2}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(600,600)(-300,-300){dtrigpyramid}%2002/4/30 by S. Fujita
+(300,300)%
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \if\@@tmpa 0\relax {\putratom{-27}{50}{\scriptsize\@@tmpb}}\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa {\putlratom{-40}{-33}{\@memberb}}%central atom
+\or\setBScolor{\setatombonda}%1 (0,1)
+\or\setBScolor{\setatombondE}%2 (3,-5)
+\or\setBScolor{\setatombondG}%3 (-3,-5)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondh}}%4 (-1,0)
+\or{\let\dotorline=\d@t@rline \setBScolor{\setatombondb}}%5 (1,0)
+\fi%end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+\endgroup}%end of macro dtrigpyramid
+\def\yldtrigpyramidposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa\relax
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%W subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-47}\global\@ylswtrue%W subst. on 1
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 2
+ \else
+ \gdef\@ylii{-20}\gdef\@yli{47}\global\@ylswtrue%N subst. on 2
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{20}\gdef\@yli{47}\global\@ylswtrue%SE subst. on 3
+ \fi%
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+ \or
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \else
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%SE subst. on 3
+ \fi
+\fi%end of ifcase
+\fi\fi\fi}}%
+\endinput
+%%
+%% End of file `aliphat.sty'.
diff --git a/macros/latex/contrib/xymtex/base/assurelatexmode.dtx b/macros/latex/contrib/xymtex/base/assurelatexmode.dtx
new file mode 100644
index 0000000000..cc8834aa14
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/assurelatexmode.dtx
@@ -0,0 +1,340 @@
+% \iffalse meta-comment
+%% File: assurelatexmode.dtx
+%
+% Copyright 2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file (assurelatexmode.sty) is a successor to:
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files assurelatexmode.dtx and assurelatexmode.ins
+% and the derived file lewisstruc.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{assurelatexmode}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{189}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v5.00}{2010/10/01}{First release for XyMTeX5.00}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{assurelatexmode.dtx}[2010/10/01 v5.00 assurelatexmode package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{lewisstruc.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Dummy Declarations for assuring the \protect\TeX/\protect\LaTeX{} mode
+by {\sffamily assurelatexmode.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kanagawa, 258-0019 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{assurelatexmode.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{assurelatexmode:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% assurelatexmode & assurelatexmode.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*assurelatexmode>
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released May 27, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{assurelatexmode}
+\def\versi@ndate{May 27, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{chemstr}
+% \end{macrocode}
+%
+% \section{Dummy Declarations}
+% If a document written for the PostScript or PDF mode is processed by the TeX/LaTeX mode,
+% some commands for the PS or PDF mode (defined in the \textsf{xymtx-ps} or \textsf{xymtx-pdf}
+% package) cause errors of non-existence. To avoid these errors,
+% dummy commands are defined as follows. These dummy commands are overwritten or replaced by
+% equivalent commands when processed by the PS or PDF mode.
+%
+% \begin{macro}{changedashtowedge}
+% \begin{macro}{changewedgetodash}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX, PS, and PDF modes: Switch for wedged bonds}
+% \begin{macrocode}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@thicklinesw etc.}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{WedgeAsSubst}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\WedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\leavevmode
+\Put@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstTeXLaTeX%for compatibility to PS/PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\WedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
+\def\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
+\begingroup
+%#5 not used
+\leavevmode \thicklines
+\drawline(#1,#2)(#3,#4)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXTeXLaTeX%for compatibility to PS/PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@bondLINE| is used in the macro |\Put@@Line|,
+% which draws a bond line.
+%
+% \begin{macro}{\PUT@@bondLINE}
+% \begin{macro}{\PutTeXLaTeXLine}
+% \begin{macro}{\PutBondLine}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\PUT@@bondLINE(#1,#2)(#3,#4)#5{\begingroup%
+\linethickness{#5}\drawline(#1,#2)(#3,#4)%
+\endgroup}
+\let\PutTeXLaTeXLine=\PUT@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@bondLINE%for user's use
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\PUT@@dashedLINE| is used to draw a dashed bond line,
+% which usually links two non-adjacent atoms of a cyclic compound.
+%
+% \begin{macro}{\PUT@@dashedLINE}
+% \begin{macro}{\PutTeXLaTeXdashed}
+% \begin{macro}{\PutDashedBond}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\PUT@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)%
+%\dashline{2}[2](#1,#2)(#3,#4)%
+\else
+\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)
+%\dashline{1.8}[1.8](#1,#2)(#3,#4)%
+\fi
+\endgroup
+}
+\let\PutTeXLaTeXdashed=\PUT@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@dashedLINE%for compatibility to PS and PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\HashWedgeAsSubst}
+% \changes{v5.01}{2010/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\HashWedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
+\begingroup
+\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
+\leavevmode
+\linethickness{1pt}\dottedline{20}(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\endgroup}
+\let\HashWedgeAsSubst=\HashWedgeAsSubstTeXLaTeX%for compatibility to PS and PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\HashWedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\HashWedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{\HashWedgeAsSubstX}
+% \changes{v5.01}{2010/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\def\HashWedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
+\@ifnextchar[{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
+{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\leavevmode\@tempdima=#5\unitlength
+\linethickness{\@tempdima}\dottedline{20}(#1,#2)(#3,#4)
+\endgroup}
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXTeXLaTeX%for compatibility to PS and PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\putRoundArrowTeXLaTeX| throws its main task to its inner
+% macro |\putRound@rrowTeXLaTeX|, which is incapable of treating
+% an optional argument for specifying the direction of an arrow head.
+% The macro |\putRoundArrow| is defined as a user command to
+% assure the compatibility to the PostScript and the PDF mode.
+% This command should be used in the PostScript or the PDF mode!
+%
+% \begin{macro}{\putRoundArrowTeXLaTeX}
+% \begin{macro}{\putRound@rrowTeXLaTeX}
+% \begin{macro}{\putRoundArrow}
+% \changes{v5.00}{2010/10/01}{For TeXLaTeX mode}
+% \begin{macrocode}
+\def\putRoundArrowTeXLaTeX{%
+\@ifnextchar[{\putRound@rrowTeXLaTeX}{\putRound@rrowTeXLaTeX[->]}}
+\def\putRound@rrowTeXLaTeX[#1]#2{\drawline#2%
+ \XyMTeXWarning{The command
+ \string\putRoundArrow\space is unavailable in TeX/LaTeX mode. ^^J
+ Please try the PostScript or PDF mode}}
+\let\putRoundArrow=\putRoundArrowTeXLaTeX%for the compatibility to PDF and PS mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\thinlines}
+% \begin{macro}{\thicklines}
+% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
+% \begin{macrocode}
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth=\thinLineWidth \@halfwidth .5\@wholewidth}
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth=\thickLineWidth \@halfwidth .5\@wholewidth}
+\endinput
+%</assurelatexmode>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/assurelatexmode.ins b/macros/latex/contrib/xymtex/base/assurelatexmode.ins
new file mode 100644
index 0000000000..3f9e346667
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/assurelatexmode.ins
@@ -0,0 +1,45 @@
+\def\batchfile{assurelatexmode.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2010,2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+old Version 5.00 Released on October 01, 2010
+=======================================
+Version 5.01 Released on May 27, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files assurelatexmode.dtx and assurelatexmode.ins
+and the derived file assurelatexmode.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{assurelatexmode.drv}{t}{%
+ \from{assurelatexmode.dtx}{driver}}
+
+\generateFile{assurelatexmode.sty}{t}{%
+ \from{assurelatexmode.dtx}{assurelatexmode}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/assurelatexmode.sty b/macros/latex/contrib/xymtex/base/assurelatexmode.sty
new file mode 100644
index 0000000000..531a98c9a4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/assurelatexmode.sty
@@ -0,0 +1,138 @@
+%%
+%% This is file `assurelatexmode.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% assurelatexmode.dtx (with options: `assurelatexmode')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% old Version 5.00 Released on October 01, 2010
+%% =======================================
+%% Version 5.01 Released on May 27, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files assurelatexmode.dtx and assurelatexmode.ins
+%% and the derived file assurelatexmode.sty.
+%%
+%% =======================================
+%%
+%% File: assurelatexmode.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released May 27, 2013 by Shinsaku Fujita}
+\def\j@urnalname{assurelatexmode}
+\def\versi@ndate{May 27, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\RequirePackage{chemstr}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+\def\WedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\leavevmode
+\Put@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstTeXLaTeX%for compatibility to PS/PDF mode
+\def\WedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
+\def\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\leavevmode \thicklines
+\drawline(#1,#2)(#3,#4)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXTeXLaTeX%for compatibility to PS/PDF mode
+\def\PUT@@bondLINE(#1,#2)(#3,#4)#5{\begingroup%
+\linethickness{#5}\drawline(#1,#2)(#3,#4)%
+\endgroup}
+\let\PutTeXLaTeXLine=\PUT@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@bondLINE%for user's use
+\def\PUT@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)%
+\else
+\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)
+\fi
+\endgroup
+}
+\let\PutTeXLaTeXdashed=\PUT@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@dashedLINE%for compatibility to PS and PDF mode
+\def\HashWedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
+\begingroup
+\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
+\leavevmode
+\linethickness{1pt}\dottedline{20}(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\endgroup}
+\let\HashWedgeAsSubst=\HashWedgeAsSubstTeXLaTeX%for compatibility to PS and PDF mode
+\def\HashWedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
+\@ifnextchar[{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
+{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\leavevmode\@tempdima=#5\unitlength
+\linethickness{\@tempdima}\dottedline{20}(#1,#2)(#3,#4)
+\endgroup}
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXTeXLaTeX%for compatibility to PS and PDF mode
+\def\putRoundArrowTeXLaTeX{%
+\@ifnextchar[{\putRound@rrowTeXLaTeX}{\putRound@rrowTeXLaTeX[->]}}
+\def\putRound@rrowTeXLaTeX[#1]#2{\drawline#2%
+ \XyMTeXWarning{The command
+ \string\putRoundArrow\space is unavailable in TeX/LaTeX mode. ^^J
+ Please try the PostScript or PDF mode}}
+\let\putRoundArrow=\putRoundArrowTeXLaTeX%for the compatibility to PDF and PS mode
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth=\thinLineWidth \@halfwidth .5\@wholewidth}
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth=\thickLineWidth \@halfwidth .5\@wholewidth}
+\endinput
+%%
+%% End of file `assurelatexmode.sty'.
diff --git a/macros/latex/contrib/xymtex/base/bondcolor.dtx b/macros/latex/contrib/xymtex/base/bondcolor.dtx
new file mode 100644
index 0000000000..fc86de1cec
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/bondcolor.dtx
@@ -0,0 +1,738 @@
+% \iffalse meta-comment
+%% File: bondcolor.dtx
+%
+% Copyright 2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file (bondcolor.sty) is a successor to:
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files bondcolor.dtx and bondcolor.ins
+% and the derived file lewisstruc.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{bondcolor}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{960}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v5.00}{2010/10/01}{First release for XyMTeX5.00}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{bondcolor.dtx}[2010/10/01 v5.00 bondcolor package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{lewisstruc.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Bond Coloring by {\sffamily bondcolor.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kanagawa, 258-0019 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{bondcolor.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{bondcolor:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% bondcolor & bondcolor.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*bondcolor>
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{bondcolor}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{chemstr}
+\RequirePackage{hetarom}
+\RequirePackage{hetaromh}
+\RequirePackage{methylen}
+% \end{macrocode}
+%
+% \section{Substitution Bond Coloring}
+%
+% \begin{macro}{\ifcolorBLsw}
+% A switch |\ifcolorBLsw| is introduced to judging whether the present process
+% is in BONDLIST or in ATOMLIST.
+%
+% \begin{macrocode}
+\newif\ifcolorBLsw \colorBLswfalse
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\RightAtomBond| is defined to color substitution bonds (and substituents),
+% when it is to be designated in ATOMLIST or in BONDLIST of a command for drawing
+% a structural formula.
+%
+% \begin{verbatim}
+% \RightAtomBond(x,y)[COLOR]<CLIPPING>{SUBSTLIST}
+% \end{verbatim}
+%
+% The first optional argument (x,y) represents increments of x-, and y-coordinates,
+% which may be added if adjustment is necessary. The default value is (0,0).
+% The second optional argument [COLOR] is a command of coloring (e.g., |\red|).
+% The default value is |\black|.
+% The third optional argument <CLIPPING> accomodates \verb/<s>/ for non-clipping and
+% a vacant or omitted argument represents a clipping of a corner.
+% The defalt value is a vacant value.
+% The fourth argument is a SUBSLIST, in which a substitution number 1--8 represents
+% a bond slope to be drawn. Slopes to cover a right-handed half circle are numbered
+% on a similar line to those of the |\ryl| macro, as follows:
+% \begin{verbatim}
+% SLOPE
+%
+% 1 : (0,1)
+% 2 : (3,5)
+% 3 : (1,1)
+% 4 : (1,0)
+% 5 : (5,-3)
+% 6 : (1,-1)
+% 7 : (3,-5)
+% 8 : (0,-1)
+% \end{verbatim}
+% As for the format of the SUBSLIST, see the specification of the |\ryl| command.
+%
+% \begin{macro}{\RightAtomBond}
+% \begin{macro}{\Right@tomBond}
+% \begin{macro}{\Right@tomB@nd}
+% \begin{macro}{\Right@t@mB@nd}
+% \begin{macrocode}
+\def\RightAtomBond{%
+\@ifnextchar({\Right@tomBond}{\Right@tomBond(0,0)}}
+\def\Right@tomBond(#1,#2){%
+\@ifnextchar[{\Right@tomB@nd(#1,#2)}{\Right@tomB@nd(#1,#2)[\black]}}
+\def\Right@tomB@nd(#1,#2)[#3]{%
+\@ifnextchar<{\Right@t@mB@nd(#1,#2)[#3]}{\Right@t@mB@nd(#1,#2)[#3]<>}}
+\def\Right@t@mB@nd(#1,#2)[#3]<#4>#5{%
+\begingroup
+\global\let\FuseWarning=\futileFuseWarning
+\let\setbscolor=#3\relax
+\@ifundefined{@tmpb}{\edef\@tmpb{0}}{}%dummy
+\@ifundefined{@@tmpa}{\colorBLswfalse}{\if\@@tmpa @\relax\else
+\edef\@@tmpa{a}\colorBLswtrue\fi}%enforced setting
+%\@tempcntXa=\z@ \@tempcntYa=\z@
+\@tempcntXa=#1\relax \@tempcntYa=#2\relax
+\if\@tmpb s\relax
+ \@clipfusefalse
+\else
+ \if#4s\relax
+ \@clipfusefalse
+ \else
+ \ifcolorBLsw
+ \@clipfusetrue
+ \advance\@tempcntXa by5\relax%tentative value
+ \advance\@tempcntYa by-15\relax%tentative value
+ \colorBLswfalse
+ \else
+ \@clipfusetrue
+ \advance\@tempcntXa by40\relax%tentative value
+ \advance\@tempcntYa by38\relax%tentative value
+\fi\fi\fi
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#5\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{{\setbscolor\setatombonda}\addbscolor{}{}}%2010/10/01% 0 (upward) (0,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondF}\addbscolor{}{}}%2010/10/01%%1 (3,5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondA}\addbscolor{}{}}%2010/10/01%%2 (1,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondf}\addbscolor{}{}}%2010/10/01%%3 (5,3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondb}\addbscolor{}{}}%2010/10/01%%4 (1,0)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombonde}\addbscolor{}{}}%2010/10/01%%5 (5,-3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondB}\addbscolor{}{}}%2010/10/01%\or%6 (1,-1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondE}\addbscolor{}{}}%2010/10/01%%7 (3,-5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondc}\addbscolor{}{}}%2010/10/01%%8 (0,-1)
+\fi%end of ifcase
+\fi}\endgroup}%end of definition of \RightAtomBond
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\LeftAtomBond| is defined to color substitution bonds (and substituents),
+% when it is to be designated in ATOMLIST or in BONDLIST of a command for drawing
+% a structural formula.
+%
+% \begin{verbatim}
+% \LeftAtomBond(x,y)[COLOR]<CLIPPING>{SUBSTLIST}
+% \end{verbatim}
+%
+% The first optional argument (x,y) represents increments of x-, and y-coordinates,
+% which may be added if adjustment is necessary. The default value is (0,0).
+% The second optional argument [COLOR] is a command of coloring (e.g., |\red|).
+% The default value is |\black|.
+% The third optional argument <CLIPPING> accomodates \verb/<s>/ for non-clipping and
+% a vacant or omitted argument represents a clipping of a corner.
+% The defalt value is a vacant value.
+% The fourth argument is a SUBSLIST, in which a substitution number 1--8 represents
+% a bond slope to be drawn. Slopes to cover a left-handed half circle are numbered
+% on a similar line to those of the |\lyl| macro, as follows:
+%
+% \begin{verbatim}
+% SLOPE
+% 1 : (0,1)
+% 2 : (-3,5)
+% 3 : (-1,1)
+% 4 : (-1,0)
+% 5 : (-5,-3)
+% 6 : (-1,-1)
+% 7 : (-3,-5)
+% 8 : (0,-1)
+% \end{verbatim}
+% As for the format of the SUBSLIST, see the specification of the |\lyl| command.
+%
+% \begin{macro}{\LeftAtomBond}
+% \begin{macro}{\Left@tomBond}
+% \begin{macro}{\Left@tomB@nd}
+% \begin{macro}{\Left@t@mB@nd}
+% \begin{macrocode}
+\def\LeftAtomBond{%
+\@ifnextchar({\Left@tomBond}{\Left@tomBond(0,0)}}
+\def\Left@tomBond(#1,#2){%
+\@ifnextchar[{\Left@tomB@nd(#1,#2)}{\Left@tomB@nd(#1,#2)[\black]}}
+\def\Left@tomB@nd(#1,#2)[#3]{%
+\@ifnextchar<{\Left@t@mB@nd(#1,#2)[#3]}{\Left@t@mB@nd(#1,#2)[#3]<>}}
+\def\Left@t@mB@nd(#1,#2)[#3]<#4>#5{%
+\begingroup
+\global\let\FuseWarning=\futileFuseWarning
+\let\setbscolor=#3\relax
+\@ifundefined{@tmpb}{\edef\@tmpb{0}}{}%dummy
+\@ifundefined{@@tmpa}{\colorBLswfalse}{\if\@@tmpa @\relax\else
+\edef\@@tmpa{a}\colorBLswtrue\fi}%enforced setting
+%\@tempcntXa=\z@ \@tempcntYa=\z@
+\@tempcntXa=#1\relax \@tempcntYa=#2\relax
+\if\@tmpb s\relax
+ \@clipfusefalse
+\else
+ \if#4s\relax
+ \@clipfusefalse
+ \else
+ \ifcolorBLsw
+ \@clipfusetrue
+ \advance\@tempcntXa by5\relax%tentative value
+ \advance\@tempcntYa by-15\relax%tentative value
+ \colorBLswfalse
+ \else
+ \@clipfusetrue
+ \advance\@tempcntXa by40\relax%tentative value
+ \advance\@tempcntYa by38\relax%tentative value
+\fi\fi\fi
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#5\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{{\setbscolor\setatombonda}\addbscolor{}{}}%2010/10/01% 0 (upward) (0,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondD}\addbscolor{}{}}%2010/10/01%%1 (-3,5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondH}\addbscolor{}{}}%2010/10/01%%2 (-1,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondd}\addbscolor{}{}}%2010/10/01%%3 (-5,3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondh}\addbscolor{}{}}%2010/10/01%%4 (-1,0)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondg}\addbscolor{}{}}%2010/10/01%%5 (-5,-3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondC}\addbscolor{}{}}%2010/10/01%%6 (-1,-1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondG}\addbscolor{}{}}%2010/10/01%%7 (-3,-5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondc}\addbscolor{}{}}%2010/10/01%%8 (0,-1)
+\fi%end of ifcase
+\fi}\endgroup}%end of definition of \LeftAtomBond
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Double Bond Coloring}
+%
+% \begin{macro}{\addvbonda etc.}
+% Basic commands \verb/\addvbonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing six-membered vertical-type structural formulas, where
+% the letter \texttt{v} of \texttt{add--v--bond--a} means a vertical type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvbonda{\put(0,-406){\bonda}}
+\def\addvbondb{\put(-171,-303){\bondb}}
+\def\addvbondc{\put(-171,-103){\bondc}}
+\def\addvbondd{\put(0,0){\bondd}}
+\def\addvbonde{\put(171,-103){\bonde}}
+\def\addvbondf{\put(171,-303){\bondf}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addvibonda etc.}
+% Basic commands \verb/\addvibonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing six-membered inverse-vertical-type structural formulas,
+% where the letter \texttt{vi}
+% of \texttt{add--vi--bond--a} means an inverse vertical type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvibonda{\put(0,0){\bondc}}
+\def\addvibondb{\put(-171,-103){\bondb}}
+\def\addvibondc{\put(-171,-303){\bonda}}
+\def\addvibondd{\put(0,-406){\bondf}}
+\def\addvibonde{\put(171,-303){\bonde}}
+\def\addvibondf{\put(171,-103){\bondd}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addhbonda etc.}
+% Basic commands \verb/\addhbonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing six-membered horizontal-type structural formulas,
+% where the letter \texttt{h}
+% of \texttt{add--h--bond--a} means a horizontal type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addhbonda{\put(0,0){\hbonda}}
+\def\addhbondb{\put(-103,-171){\hbondb}}
+\def\addhbondc{\put(-303,-171){\hbondc}}
+\def\addhbondd{\put(-406,0){\hbondd}}
+\def\addhbonde{\put(-303,171){\hbonde}}
+\def\addhbondf{\put(-103,171){\hbondf}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addhibonda etc.}
+% Basic commands \verb/\addhibonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing six-membered inverse horizontal-type structural formulas,
+% where the letter \texttt{hi}
+% of \texttt{add--hi--bond--a} means an inverse horizontal type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addhibonda{\put(-403,0){\hbondc}}
+\def\addhibondb{\put(-303,-171){\hbondb}}
+\def\addhibondc{\put(-103,-171){\hbonda}}
+\def\addhibondd{\put(0,0){\hbondf}}
+\def\addhibonde{\put(-103,171){\hbonde}}
+\def\addhibondf{\put(-303,171){\hbondd}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addvvbonda etc.}
+% Basic commands \verb/\addvvbonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing five-membered vertical-type structural formulas, where
+% the first letter \texttt{v} of \texttt{add--v--v--bond--a} means
+% a five-membered ring (roman numeral) and the latter \texttt{v}
+% means a vertical type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvvbonda{\put(0,0){\bondc}}
+\def\addvvbondb{\put(-171,-103){\bondb}}
+\def\addvvbondc{\put(-171,-103){\bondhoriz}}
+\def\addvvbondd{\put(171,-303){\bonde}}
+\def\addvvbonde{\put(171,-103){\bondd}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addvvibonda etc.}
+% Basic commands \verb/\addvvibonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing five-membered inverse vertical-type structural formulas, where
+% the first letter \texttt{v} of \texttt{add--v--vi--bond--a} means
+% a five-membered ring (roman numeral) and the latter \texttt{vi}
+% means an inverse vertical type. The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvvibonda{\put(0,-406){\bonda}}
+\def\addvvibondb{\put(-171,-303){\bondb}}
+\def\addvvibondc{\put(-171,-103){\bondhorizi}}
+\def\addvvibondd{\put(171,-103){\bonde}}
+\def\addvvibonde{\put(171,-303){\bondf}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addvhbonda etc.}
+% Basic commands \verb/\addvhbonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing five-membered horizontal-type structural formulas, where
+% the first letter \texttt{v} of \texttt{add--v--h--bond--a} means
+% a five-membered ring (roman numeral) and the latter \texttt{h}
+% means a horizontal type.
+% The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvhbonda{\put(-403,0){\hbondc}}
+\def\addvhbondb{\put(-303,-171){\hbondb}}
+\def\addvhbondc{\put(-303,-171){\hbondvert}}
+%\def\addvhbondd{\put(0,0){\hbondf}}
+\def\addvhbondd{\put(-103,171){\hbonde}}
+\def\addvhbonde{\put(-303,171){\hbondd}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addvhibonda etc.}
+% Basic commands \verb/\addvhibonda/ etc. are used to add
+% colored double bonds in commands of
+% drawing five-membered inverse horizontal-type structural formulas, where
+% the first letter \texttt{v} of \texttt{add--v--hi--bond--a} means
+% a five-membered ring (roman numeral) and the latter \texttt{hi}
+% means an inverse horizontal type. The suffix \texttt{a} is a bond specifier.
+% \begin{macrocode}
+\def\addvhibonda{\put(0,0){\hbonda}}
+\def\addvhibondb{\put(-103,-171){\hbondb}}
+\def\addvhibondc{\put(-303,-171){\hbondverti}}
+%\def\addvhibondd{\put(-406,0){\hbondd}}
+\def\addvhibondd{\put(-303,171){\hbonde}}
+\def\addvhibonde{\put(-103,171){\hbondf}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MethyleneBonda etc.}
+% Basic commands \verb/\MethyleneBonda/ etc. are used to add
+% colored double bonds in commands of drawing dimethylene to decamethylene units
+% of normal type, where the suffix \texttt{a}, etc. are bond specifiers.
+% \begin{macrocode}
+\def\MethyleneBonda{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondb{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondc{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondd{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBonde{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondf{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondg{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondh{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondi{\Put@Direct(171,-303){\bondA}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MethyleneBondA etc.}
+% Basic commands \verb/\MethyleneBondA/ etc. are used to add
+% colored double bonds in commands of drawing dimethylene to decamethylene units
+% of normal type, where the suffix \texttt{A}, etc. are bond specifiers.
+% A double bond corresponding to the suffix \texttt{A} appears an alternate side
+% the counterpart due to the suffix \texttt{a}.
+% \begin{macrocode}
+\def\MethyleneBondA{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondB{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondC{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondD{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondE{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondF{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondG{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondH{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondI{\Put@Direct(0,-406){\bondAA}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MethyleneiBonda etc.}
+% Basic commands \verb/\MethyleneiBonda/ etc. are used to add
+% colored double bonds in commands of drawing dimethylene to decamethylene units
+% of inverse type, where the suffix \texttt{a}, etc. are bond specifiers.
+% \begin{macrocode}
+\def\MethyleneiBonda{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondb{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondc{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondd{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBonde{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondf{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondg{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondh{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondi{\Put@Direct(171,-103){\bondAi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MethyleneiBondA etc.}
+% Basic commands \verb/\MethyleneiBondA/ etc. are used to add
+% colored double bonds in commands of drawing dimethylene to decamethylene units
+% of inverse type, where the suffix \texttt{A}, etc. are bond specifiers.
+% A double bond corresponding to the suffix \texttt{A} appears an alternate side
+% the counterpart due to the suffix \texttt{a}.
+% \begin{macrocode}
+\def\MethyleneiBondA{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondB{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondC{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondD{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondE{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondF{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondG{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondH{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondI{\Put@Direct(0,0){\bondAAi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adddbcolor}
+% The user command \verb/\adddbcolor/ is used to specify a color of
+% a double bond to be changed. The first argument specifies types of
+% structures to be drawn by designating \texttt{v}, \texttt{vi}, etc.
+% The vacant argument and \texttt{i} correspond to polymethylene units
+% defined in \textsf{methylen} package.
+% The second argument specifies a color to be changed.
+% The command \verb/\adddbcolor/ is placed in a bond list.
+% \begin{macrocode}
+\def\adddbcolor#1#2{%
+\global\let\FuseWarning=\futileFuseWarning
+\global\@dbondcolortrue
+\edef\@@tmpBondSp{#1}%
+\edef\@@tmpBondSpi{i}%
+\ifx\@@tmpBondSp\empty\relax%\tetrahemethylene etc.
+{\Put@Direct(0,0){#2\expandafter\csname MethyleneBond\@@tmpa\endcsname}}%
+\else\ifx\@@tmpBondSp\@@tmpBondSpi\relax%\tetramethyleni etc.
+{\Put@Direct(0,0){#2\csname MethyleneiBond\@@tmpa\endcsname}}%
+\else
+{\Put@Direct(0,0){#2\csname add#1bond\@@tmpa\endcsname}}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Skeletal Bond Coloring}
+%
+% \begin{macro}{\addskbcolor}
+% The user command \verb/\addskbcolor/ is used to specify a color of
+% a skeletal bond to be changed. The first argument specifies types of
+% structures to be drawn by designating \texttt{v}, \texttt{h}, etc.
+% The second argument specifies a color to be changed.
+% The command \verb/\addskbcolor/ is placed in a skeletal bond list.
+% \begin{macrocode}
+\def\addskbcolor#1#2{%
+\iflongskbond
+{#2\expandafter\csname\skbondreplace\endcsname}%
+\else
+\if#1\empty\relax
+{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+\else\if#1v\relax
+{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+\else
+{#2\expandafter\csname #1skbond\skbondreplace\endcsname}%
+\fi\fi\fi%
+\global\let\FuseWarning=\futileFuseWarning%for methylen package
+\global\@dbondcolortrue%for heterarom and heteraromh packages
+}
+%
+%\def\addskbcolor#1#2{%
+% \edef\@@tmpsBondSp{#1}%
+% \edef\@@tmpsBondSpv{v}%
+%\iflongskbond
+%{#2\expandafter\csname\skbondreplace\endcsname}%
+%\else
+%\ifx\@@tmpsBondSp\empty\relax
+%{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+%\else\ifx\@@tmpsBondSp\@@tmpsBondSpv\relax
+%{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+%\else
+%{#2\expandafter\csname #1skbond\skbondreplace\endcsname}%
+%\fi\fi\fi%
+%\global\let\FuseWarning=\futileFuseWarning%for methylen package
+%\global\@dbondcolortrue%for heterarom and heteraromh packages
+%}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\red etc.}
+% \changes{v5.00}{2010/10/01}{Colors for TeX/LaTeX mode}
+% \begin{macrocode}
+\def\red{\color{red}}
+\def\blue{\color{blue}}
+\def\green{\color{green}}
+\def\black{\color{black}}
+\def\cyan{\color{cyan}}
+\def\yellow{\color{yellow}}
+\def\magenta{\color{magenta}}
+\def\white{\color{white}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xymcolor}
+% \begin{macro}{\red etc.}
+% These macros are defined to avoid \texttt{**Warning** color stack underflow}
+% during processing by the dvipdfmx converter.
+% \changes{v5.00}{2010/10/01}{Added: Colors for TeX/LaTeX mode}
+% \begin{macrocode}
+\def\xymcolor#1#2{\mbox{\color{#1}#2}}
+\def\redx#1{\xymcolor{red}{#1}}
+\def\bluex#1{\xymcolor{blue}{#1}}
+\def\greenx#1{\xymcolor{green}{#1}}
+\def\blackx#1{\xymcolor{black}{#1}}
+\def\cyanx#1{\xymcolor{cyan}{#1}}
+\def\yellowx#1{\xymcolor{yellow}{#1}}
+\def\magentax#1{\xymcolor{magenta}{#1}}
+\def\whitex#1{\xymcolor{white}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Color@@Line}
+% \begin{macro}{\Color@Line}
+% \changes{v5.00}{2010/10/01}{Colors for TeX/LaTeX mode}
+% The |\Color@Line| macro is used to erase an old line by setting color to be white.
+% \begin{macrocode}
+\def\Color@@Line{%
+\@ifnextchar[{\C@lor@@Line}{\C@lor@@Line[0.4pt]}}
+\def\C@lor@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\@tempdima=#1\relax
+\ifdim\@tempdima=0.4pt\else
+\XyMTeXWarning{The line width is ineffective for TeX/LaTeX mode}%
+\fi
+\put(0,0){\csname #7\endcsname \Put@Line(#2,#3)(#4,#5){#6}}%
+\endgroup}%end of \Color@@Line
+\let\Color@Line=\Color@@Line%for TeX/LaTeX mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\replaceSKbond}
+% The user command \verb/\replaceSKbond/ is used to specify a color of
+% a skeletal bond to be changed. The first optional argument specifies
+% the bond width to be changed if necessary.
+% The arguments in the first pair of parentheses specify the original point.
+% The arguments in the second pair of parentheses specify the slope e.g., (5,3).
+% The next argument indicates the projection length to the x-axis.
+% The last argument indicates a color to be applied.
+% The command \verb/\replaceSKbond/ is placed in a bond list.
+% \begin{macrocode}
+\def\replaceSKbond{%
+\@ifnextchar[{\repl@ceSKbond}{\repl@ceSKbond[0.4pt]}}
+\def\repl@ceSKbond[#1](#2,#3)(#4,#5)#6#7{\begingroup%
+\global\let\FuseWarning=\futileFuseWarning
+\global\@dbondcolortrue
+\def\thinLineWidth{#1}%
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\put(0,0){\Color@Line[\the\@tempdima](#2,#3)(#4,#5){#6}{white}}%
+\put(0,0){#7\Put@Line(#2,#3)(#4,#5){#6}}\endgroup}%
+%
+%\def\replaceSKbond{%
+%\@ifnextchar[{\repl@ceSKbond}{\repl@ceSKbond[0.4pt]}}
+%\def\repl@ceSKbond[#1](#2,#3)(#4,#5)#6#7{\begingroup%
+%\global\let\FuseWarning=\futileFuseWarning
+%\global\@dbondcolortrue
+%\def\thinLineWidth{#1}%
+%\@tempdima=#1 \advance\@tempdima by1.2pt
+%\put(0,0){\edef\thinLineWidth{\the\@tempdima}\white\Put@Line(#2,#3)(#4,#5){#6}}%
+%\put(0,0){#7\Put@Line(#2,#3)(#4,#5){#6}}\endgroup}%
+%
+\endinput
+%</bondcolor>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/bondcolor.ins b/macros/latex/contrib/xymtex/base/bondcolor.ins
new file mode 100644
index 0000000000..27b9ef956b
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/bondcolor.ins
@@ -0,0 +1,43 @@
+\def\batchfile{bondcolor.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files bondcolor.dtx and bondcolor.ins
+and the derived file bondcolor.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{bondcolor.drv}{t}{%
+ \from{bondcolor.dtx}{driver}}
+
+\generateFile{bondcolor.sty}{t}{%
+ \from{bondcolor.dtx}{bondcolor}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/bondcolor.sty b/macros/latex/contrib/xymtex/base/bondcolor.sty
new file mode 100644
index 0000000000..e1155bf0c1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/bondcolor.sty
@@ -0,0 +1,323 @@
+%%
+%% This is file `bondcolor.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bondcolor.dtx (with options: `bondcolor')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files bondcolor.dtx and bondcolor.ins
+%% and the derived file bondcolor.sty.
+%%
+%% =======================================
+%%
+%% File: bondcolor.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{bondcolor}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\RequirePackage{chemstr}
+\RequirePackage{hetarom}
+\RequirePackage{hetaromh}
+\RequirePackage{methylen}
+\newif\ifcolorBLsw \colorBLswfalse
+\def\RightAtomBond{%
+\@ifnextchar({\Right@tomBond}{\Right@tomBond(0,0)}}
+\def\Right@tomBond(#1,#2){%
+\@ifnextchar[{\Right@tomB@nd(#1,#2)}{\Right@tomB@nd(#1,#2)[\black]}}
+\def\Right@tomB@nd(#1,#2)[#3]{%
+\@ifnextchar<{\Right@t@mB@nd(#1,#2)[#3]}{\Right@t@mB@nd(#1,#2)[#3]<>}}
+\def\Right@t@mB@nd(#1,#2)[#3]<#4>#5{%
+\begingroup
+\global\let\FuseWarning=\futileFuseWarning
+\let\setbscolor=#3\relax
+\@ifundefined{@tmpb}{\edef\@tmpb{0}}{}%dummy
+\@ifundefined{@@tmpa}{\colorBLswfalse}{\if\@@tmpa @\relax\else
+\edef\@@tmpa{a}\colorBLswtrue\fi}%enforced setting
+\@tempcntXa=#1\relax \@tempcntYa=#2\relax
+\if\@tmpb s\relax
+ \@clipfusefalse
+\else
+ \if#4s\relax
+ \@clipfusefalse
+ \else
+ \ifcolorBLsw
+ \@clipfusetrue
+ \advance\@tempcntXa by5\relax%tentative value
+ \advance\@tempcntYa by-15\relax%tentative value
+ \colorBLswfalse
+ \else
+ \@clipfusetrue
+ \advance\@tempcntXa by40\relax%tentative value
+ \advance\@tempcntYa by38\relax%tentative value
+\fi\fi\fi
+\@forsemicol\member:=#5\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{{\setbscolor\setatombonda}\addbscolor{}{}}%2010/10/01% 0 (upward) (0,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondF}\addbscolor{}{}}%2010/10/01%%1 (3,5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondA}\addbscolor{}{}}%2010/10/01%%2 (1,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondf}\addbscolor{}{}}%2010/10/01%%3 (5,3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondb}\addbscolor{}{}}%2010/10/01%%4 (1,0)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombonde}\addbscolor{}{}}%2010/10/01%%5 (5,-3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondB}\addbscolor{}{}}%2010/10/01%\or%6 (1,-1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondE}\addbscolor{}{}}%2010/10/01%%7 (3,-5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondc}\addbscolor{}{}}%2010/10/01%%8 (0,-1)
+\fi%end of ifcase
+\fi}\endgroup}%end of definition of \RightAtomBond
+\def\LeftAtomBond{%
+\@ifnextchar({\Left@tomBond}{\Left@tomBond(0,0)}}
+\def\Left@tomBond(#1,#2){%
+\@ifnextchar[{\Left@tomB@nd(#1,#2)}{\Left@tomB@nd(#1,#2)[\black]}}
+\def\Left@tomB@nd(#1,#2)[#3]{%
+\@ifnextchar<{\Left@t@mB@nd(#1,#2)[#3]}{\Left@t@mB@nd(#1,#2)[#3]<>}}
+\def\Left@t@mB@nd(#1,#2)[#3]<#4>#5{%
+\begingroup
+\global\let\FuseWarning=\futileFuseWarning
+\let\setbscolor=#3\relax
+\@ifundefined{@tmpb}{\edef\@tmpb{0}}{}%dummy
+\@ifundefined{@@tmpa}{\colorBLswfalse}{\if\@@tmpa @\relax\else
+\edef\@@tmpa{a}\colorBLswtrue\fi}%enforced setting
+\@tempcntXa=#1\relax \@tempcntYa=#2\relax
+\if\@tmpb s\relax
+ \@clipfusefalse
+\else
+ \if#4s\relax
+ \@clipfusefalse
+ \else
+ \ifcolorBLsw
+ \@clipfusetrue
+ \advance\@tempcntXa by5\relax%tentative value
+ \advance\@tempcntYa by-15\relax%tentative value
+ \colorBLswfalse
+ \else
+ \@clipfusetrue
+ \advance\@tempcntXa by40\relax%tentative value
+ \advance\@tempcntYa by38\relax%tentative value
+\fi\fi\fi
+\@forsemicol\member:=#5\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{{\setbscolor\setatombonda}\addbscolor{}{}}%2010/10/01% 0 (upward) (0,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondD}\addbscolor{}{}}%2010/10/01%%1 (-3,5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondH}\addbscolor{}{}}%2010/10/01%%2 (-1,1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondd}\addbscolor{}{}}%2010/10/01%%3 (-5,3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondh}\addbscolor{}{}}%2010/10/01%%4 (-1,0)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondg}\addbscolor{}{}}%2010/10/01%%5 (-5,-3)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondC}\addbscolor{}{}}%2010/10/01%%6 (-1,-1)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondG}\addbscolor{}{}}%2010/10/01%%7 (-3,-5)
+\or{\setbscolor\Put@Direct(\the\@tempcntXa,\the\@tempcntYa)%
+{\setatombondc}\addbscolor{}{}}%2010/10/01%%8 (0,-1)
+\fi%end of ifcase
+\fi}\endgroup}%end of definition of \LeftAtomBond
+\def\addvbonda{\put(0,-406){\bonda}}
+\def\addvbondb{\put(-171,-303){\bondb}}
+\def\addvbondc{\put(-171,-103){\bondc}}
+\def\addvbondd{\put(0,0){\bondd}}
+\def\addvbonde{\put(171,-103){\bonde}}
+\def\addvbondf{\put(171,-303){\bondf}}
+\def\addvibonda{\put(0,0){\bondc}}
+\def\addvibondb{\put(-171,-103){\bondb}}
+\def\addvibondc{\put(-171,-303){\bonda}}
+\def\addvibondd{\put(0,-406){\bondf}}
+\def\addvibonde{\put(171,-303){\bonde}}
+\def\addvibondf{\put(171,-103){\bondd}}
+\def\addhbonda{\put(0,0){\hbonda}}
+\def\addhbondb{\put(-103,-171){\hbondb}}
+\def\addhbondc{\put(-303,-171){\hbondc}}
+\def\addhbondd{\put(-406,0){\hbondd}}
+\def\addhbonde{\put(-303,171){\hbonde}}
+\def\addhbondf{\put(-103,171){\hbondf}}
+\def\addhibonda{\put(-403,0){\hbondc}}
+\def\addhibondb{\put(-303,-171){\hbondb}}
+\def\addhibondc{\put(-103,-171){\hbonda}}
+\def\addhibondd{\put(0,0){\hbondf}}
+\def\addhibonde{\put(-103,171){\hbonde}}
+\def\addhibondf{\put(-303,171){\hbondd}}
+\def\addvvbonda{\put(0,0){\bondc}}
+\def\addvvbondb{\put(-171,-103){\bondb}}
+\def\addvvbondc{\put(-171,-103){\bondhoriz}}
+\def\addvvbondd{\put(171,-303){\bonde}}
+\def\addvvbonde{\put(171,-103){\bondd}}
+\def\addvvibonda{\put(0,-406){\bonda}}
+\def\addvvibondb{\put(-171,-303){\bondb}}
+\def\addvvibondc{\put(-171,-103){\bondhorizi}}
+\def\addvvibondd{\put(171,-103){\bonde}}
+\def\addvvibonde{\put(171,-303){\bondf}}
+\def\addvhbonda{\put(-403,0){\hbondc}}
+\def\addvhbondb{\put(-303,-171){\hbondb}}
+\def\addvhbondc{\put(-303,-171){\hbondvert}}
+\def\addvhbondd{\put(-103,171){\hbonde}}
+\def\addvhbonde{\put(-303,171){\hbondd}}
+\def\addvhibonda{\put(0,0){\hbonda}}
+\def\addvhibondb{\put(-103,-171){\hbondb}}
+\def\addvhibondc{\put(-303,-171){\hbondverti}}
+\def\addvhibondd{\put(-303,171){\hbonde}}
+\def\addvhibonde{\put(-103,171){\hbondf}}
+\def\MethyleneBonda{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondb{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondc{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondd{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBonde{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondf{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondg{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondh{\Put@Direct(0,-406){\bondB}}
+\def\MethyleneBondi{\Put@Direct(171,-303){\bondA}}
+\def\MethyleneBondA{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondB{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondC{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondD{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondE{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondF{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondG{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneBondH{\Put@Direct(-171,-303){\bondBB}}
+\def\MethyleneBondI{\Put@Direct(0,-406){\bondAA}}
+\def\MethyleneiBonda{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondb{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondc{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondd{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBonde{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondf{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondg{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondh{\Put@Direct(0,0){\bondBi}}
+\def\MethyleneiBondi{\Put@Direct(171,-103){\bondAi}}
+\def\MethyleneiBondA{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondB{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondC{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondD{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondE{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondF{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondG{\Put@Direct(0,0){\bondAAi}}
+\def\MethyleneiBondH{\Put@Direct(-171,-103){\bondBBi}}
+\def\MethyleneiBondI{\Put@Direct(0,0){\bondAAi}}
+\def\adddbcolor#1#2{%
+\global\let\FuseWarning=\futileFuseWarning
+\global\@dbondcolortrue
+\edef\@@tmpBondSp{#1}%
+\edef\@@tmpBondSpi{i}%
+\ifx\@@tmpBondSp\empty\relax%\tetrahemethylene etc.
+{\Put@Direct(0,0){#2\expandafter\csname MethyleneBond\@@tmpa\endcsname}}%
+\else\ifx\@@tmpBondSp\@@tmpBondSpi\relax%\tetramethyleni etc.
+{\Put@Direct(0,0){#2\csname MethyleneiBond\@@tmpa\endcsname}}%
+\else
+{\Put@Direct(0,0){#2\csname add#1bond\@@tmpa\endcsname}}%
+\fi\fi}
+\def\addskbcolor#1#2{%
+\iflongskbond
+{#2\expandafter\csname\skbondreplace\endcsname}%
+\else
+\if#1\empty\relax
+{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+\else\if#1v\relax
+{#2\expandafter\csname skbond\skbondreplace\endcsname}%
+\else
+{#2\expandafter\csname #1skbond\skbondreplace\endcsname}%
+\fi\fi\fi%
+\global\let\FuseWarning=\futileFuseWarning%for methylen package
+\global\@dbondcolortrue%for heterarom and heteraromh packages
+}
+\def\red{\color{red}}
+\def\blue{\color{blue}}
+\def\green{\color{green}}
+\def\black{\color{black}}
+\def\cyan{\color{cyan}}
+\def\yellow{\color{yellow}}
+\def\magenta{\color{magenta}}
+\def\white{\color{white}}
+\def\xymcolor#1#2{\mbox{\color{#1}#2}}
+\def\redx#1{\xymcolor{red}{#1}}
+\def\bluex#1{\xymcolor{blue}{#1}}
+\def\greenx#1{\xymcolor{green}{#1}}
+\def\blackx#1{\xymcolor{black}{#1}}
+\def\cyanx#1{\xymcolor{cyan}{#1}}
+\def\yellowx#1{\xymcolor{yellow}{#1}}
+\def\magentax#1{\xymcolor{magenta}{#1}}
+\def\whitex#1{\xymcolor{white}{#1}}
+\def\Color@@Line{%
+\@ifnextchar[{\C@lor@@Line}{\C@lor@@Line[0.4pt]}}
+\def\C@lor@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\@tempdima=#1\relax
+\ifdim\@tempdima=0.4pt\else
+\XyMTeXWarning{The line width is ineffective for TeX/LaTeX mode}%
+\fi
+\put(0,0){\csname #7\endcsname \Put@Line(#2,#3)(#4,#5){#6}}%
+\endgroup}%end of \Color@@Line
+\let\Color@Line=\Color@@Line%for TeX/LaTeX mode
+\def\replaceSKbond{%
+\@ifnextchar[{\repl@ceSKbond}{\repl@ceSKbond[0.4pt]}}
+\def\repl@ceSKbond[#1](#2,#3)(#4,#5)#6#7{\begingroup%
+\global\let\FuseWarning=\futileFuseWarning
+\global\@dbondcolortrue
+\def\thinLineWidth{#1}%
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\put(0,0){\Color@Line[\the\@tempdima](#2,#3)(#4,#5){#6}{white}}%
+\put(0,0){#7\Put@Line(#2,#3)(#4,#5){#6}}\endgroup}%
+\endinput
+%%
+%% End of file `bondcolor.sty'.
diff --git a/macros/latex/contrib/xymtex/base/carom.BAK b/macros/latex/contrib/xymtex/base/carom.BAK
new file mode 100644
index 0000000000..750eb86b80
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/carom.BAK
@@ -0,0 +1,4172 @@
+% \iffalse meta-comment
+%% File: carom.dtx
+%
+% Copyright 1993,1996,1998,2000,2001,2002, 2004 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% carom.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files xymtx-pdf.dtx and xymtx-pdf.ins
+% and the derived file xymtx-pdf.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology,
+% Matsugasaki, Sakyoku, Kyoto, 606, Japan
+%
+% New address:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{June 14, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{2982}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/08/16}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.00a}{2000/06/14}{bug fix}
+% \changes{v2.01}{2001/06/30}{Size reduction}
+% \changes{v3.00}{2002/04/30}{sfpicture enviromnent etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2002/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{carom.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{carom.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Drawing carbocyclic compounds by {\sffamily carom.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% % (old address)
+% % Ashigara Research Laboratories,
+% % Fuji Photo Film Co., Ltd., \\
+% % Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{carom.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{carom:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% carom & carom.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*carom>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{carom}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for carom.sty}
+%
+% \begin{verbatim}
+% *******************************
+% * carom.sty: list of commands *
+% *******************************
+%
+% <VERTICAL TYPE>
+%
+% \cyclohexanev \@cyclohexanev
+% \bzdrv \@bzdrv
+% \decalinev \@decalinev
+% \decalinevb \@decalinevb
+% \decalinevt \@decalinevt
+% \naphdrv \@naphdrv
+% \naphdrvb \@naphdrvb
+% \naphdrvt \@naphdrvt
+% \tetralinev \@tetralinev
+% \tetralinevb \@tetralinevb
+% \tetralinevt \@tetralinevt
+% \hanthracenev \@hanthracenev
+% \anthracenev \@anthracenev
+% \hphenanthrenev \@hphenanthrenev
+% \phenanthrenev \@phenanthrenev
+% \steroid \@steroid
+% \steroidchain \@steroidchain
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <HORIZONTAL TYPE>
+%
+% \cyclohexaneh \@cyclohexaneh
+% \bzdrh \@bzdrh
+% \decalineh \@decalineh
+% \naphdrh \@naphdrh
+% \tetralineh \@tetralineh
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf carom.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{decaheterov}{\input hetarom.sty\relax}{}
+\@ifundefined{decaheteroh}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Cyclohexane derivatives}
+% \subsection{Vertical cyclohexanes}
+%
+% The macro |\cyclohexanev| is used for drawing cyclohexane derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setsixringv|.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (vertical type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% | |
+% 5 * * 3
+% *
+% 4 <===== the original point
+%
+% \end{verbatim}
+%
+% The macro |\cyclohexanev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+% \begin{verbatim}
+% \cyclohexanev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to f as well as A, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \cyclohexanev{1==Cl;2==F}
+% \cyclohexanev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \cyclohexanev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\cyclohexanev}
+% \begin{macrocode}
+\def\cyclohexanev{\@ifnextchar[{\@cyclohexanev[@}{\@cyclohexanev[@]}}
+\def\@cyclohexanev[#1]#2{\sixheterov[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been deleted.
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/23}{Adding \cs{set@fusionadd@sixv}}
+% \changes{v3.00}{2002/04/30}{\cs{cyclohexanev}: Old definition deleted.}
+%
+% \subsection{Horizontal cyclohexanes}
+%
+% The macro |cyclohexaneh| is used for drawing cyclohexane derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setsixringh|.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (horizontal type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+% -----
+% * *
+% the original point ===> 1 * * 4
+% (0,0) * *
+% -----
+% 6 5
+% \end{verbatim}
+%
+% The macro |\cyclohexaneh| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \cyclohexaneh[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to f as well as A, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \cyclohexaneh{1==Cl;2==F}
+% \cyclohexaneh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \cyclohexaneh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \changes{v2.00a}{2000/06/14}{bug fix: changed letter [r] to [@]
+% in \cs{cycohexaneh} for horizontal cyclohexanes}
+%
+% \begin{macro}{\cyclohexaneh}
+% \begin{macrocode}
+\def\cyclohexaneh{\@ifnextchar[{\@cyclohexaneh[@}{\@cyclohexaneh[@]}}
+\def\@cyclohexaneh[#1]#2{\sixheteroh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been deleted.
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/29}{Adding \cs{set@fusionadd@sixv} for
+% fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{cyclohexaneh}: Old definition deleted.}
+%
+% \section{Benzene and benzoquinone derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\bzdrv| (|\benzenev|) is used for drawing benzene derivatives
+% of vertical type as well as benzoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\cyclohexanev| defined above.
+%
+% The macro |\bzdrv| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{benzenev} added}
+%
+% \begin{verbatim}
+% ****************************************
+% * benzene and benzoquinone derivatives *
+% * (vertical type) *
+% ****************************************
+%
+% \bzdrv[OPT]{SUBSLIST}
+% \benzenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one character (r, l or c) for designate
+% aromatic bond patterns or two characters (p? or o?) for quinone
+% bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT: (bond pattern)
+%
+% none or r : right-handed set of double bonds
+% l : left-handed set of double bonds
+% c : aromatic circle
+%
+% p or pa : p-quinone (A)
+% pb : p-quinone (B)
+% pc : p-quinone (C)
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \bzdrv{1==Cl;2==F}
+% \bzdrv[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bzdrv[pa]{1D==O;4D==O;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\bzdrv}
+% \begin{macro}{\benzenev}
+% \begin{macrocode}
+\def\bzdrv{\@ifnextchar[{\@bzdrv}{\@bzdrv[r]}}
+\def\@bzdrv[#1]#2{%
+\iforigpt \typeout{command `bzdrv' is based on `cyclohexanev'.}\fi%
+%\expandafter\twoch@r#1{}%
+\expandafter\twoCH@R#1//%
+\if\@tmpa r% right-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[bdf]{#2}%
+ \fi
+\else\if\@tmpa l%left-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[ace]{#2}%
+ \fi
+\else\if\@tmpa c%aromatic circle
+ \ifx\@tmpb\empty
+ \cyclohexanev[A]{#2}%
+ \fi
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexanev[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexanev[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexanev[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexanev[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexanev[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexanev[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexanev[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexanev[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexanev[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexanev[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+}% %end of \bzdrv macro
+\let\benzenev=\bzdrv
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\bzdrh| (|\benzeneh|) is used for drawing benzene derivatives
+% of vertical type as well as benzoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\cyclohexanev| defined above.
+%
+% The macro |\bzdrh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{benzeneh} added}
+%
+% \begin{verbatim}
+% ****************************************
+% * benzene and benzoquinone derivatives *
+% * (horizontal type) *
+% ****************************************
+%
+% \bzdrh[OPT]{SUBSLIST}
+% \benzeneh[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one character (r, l or c) for designate
+% aromatic bond patterns or two characters (p? or o?) for quinone
+% bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT: (bond pattern)
+%
+% none or r : right-handed set of double bonds
+% l : left-handed set of double bonds
+% c : aromatic circle
+%
+% p or pa : p-quinone (A)
+% pb : p-quinone (B)
+% pc : p-quinone (C)
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+% \bzdrh{1==Cl;2==F}
+% \bzdrh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bzdrh[pa]{1D==O;4D==O;2==CH$_{3}$}
+%
+% \end{verbatim}
+%
+% \begin{macro}{\bzdrh}
+% \begin{macro}{\benzeneh}
+% \begin{macrocode}
+\def\bzdrh{\@ifnextchar[{\@bzdrh}{\@bzdrh[r]}}
+\def\@bzdrh[#1]#2{%
+\iforigpt \typeout{command `bzdrh' is based on `cyclohexaneh'.}\fi%
+%\expandafter\twoch@r#1{}%
+\expandafter\twoCH@R#1//%
+%\begin{sfpicture}(800,880)(-\noshift,-\noshift)
+\if\@tmpa r% right-handed set of double bonds
+ \cyclohexaneh[bdf]{#2}%
+\else\if\@tmpa l%left-handed set of double bonds
+ \cyclohexaneh[ace]{#2}%
+\else\if\@tmpa c%aromatic circle
+ \cyclohexaneh[A]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexaneh[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexaneh[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexaneh[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexaneh[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexaneh[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexaneh[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexaneh[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexaneh[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexaneh[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+%\end{sfpicture}
+}% %end of \bzdrh macro
+\let\benzeneh=\bzdrh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Decaline derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\decalinev| is used for drawing decaline derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setdecaringv|.
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (vertical type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 8 (0G)1
+% * 8a *
+% 7 * * * * 2
+% | | |
+% | | |
+% 6 * * * * 3
+% * 4a *
+% 5 (0F)4
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinev{1==Cl;2==F;0FA==;0GA==}
+% \decalinev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinev| has been changed into a subsidiary macro
+% of |\decaheterov| (version 2.00).
+%
+% \begin{macro}{\decalinev}
+% \begin{macrocode}
+\def\decalinev{\@ifnextchar[{\@decalinev[@}{\@decalinev[@]}}
+\def\@decalinev[#1]#2{%
+\iforigpt \typeout{command `decalinev' is based on `decaheterov'.}\fi%
+\decaheterov[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinev}: Old definition deleted.}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\decalinevb| is used for drawing decaline derivatives
+% of vertical-bottom type (numbering from the bottom to the left-upper part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``bottom'' means that the benzene ring with young locant numbers
+% is located at the bottom.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+% \changes{v1.02}{1998/10/13}{Newly added command}
+%
+% \begin{verbatim}
+% ***************************
+% * decaline derivatives *
+% * (vertical bottom type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 7
+% *
+% 6 * * 8
+% | |
+% | | 0G (4a)
+% 5 * * *
+% 0F(4a) * * 1
+% | |
+% | |
+% 4 * * 2
+% *
+% 3
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinevb| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinevb[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinevb{1==Cl;2==F;0FA==;0GA==}
+% \decalinevb[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinevb[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinevb| has been changed into a subsidiary macro
+% of |\decaheterovb| (version 2.00).
+%
+% \begin{macro}{\decalinevb}
+% \begin{macrocode}
+\def\decalinevb{\@ifnextchar[{\@decalinevb[@}{\@decalinevb[@]}}
+\def\@decalinevb[#1]#2{%
+\iforigpt \typeout{command `decalinevb' is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Add: Fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinevb}: Old definition deleted.}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\decalinevt| is used for drawing decaline derivatives
+% of vertical-bottom type (numbering from the top to the left-down part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``top'' means that the benzene ring with young locant numbers
+% is located at the top.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+% \changes{v1.02}{1998/10/13}{Newly added command}
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (vertical-top type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 2
+% *
+% 1 * * 3
+% | |
+% | |
+% 0G (8a) * * 4
+% 8 * * 0F(4a)
+% | |
+% | |
+% 7 * * 5
+% *
+% 6
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinevt| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinevt[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinevt{1==Cl;2==F;0FA==;0GA==}
+% \decalinevt[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinevt[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinevt| has been changed into a subsidiary macro
+% of |\decaheterovt| (version 2.00).
+%
+% \begin{macro}{\decalinevt}
+% \begin{macrocode}
+\def\decalinevt{\@ifnextchar[{\@decalinevt[@}{\@decalinevt[@]}}
+\def\@decalinevt[#1]#2{%
+\iforigpt \typeout{command `decalinevt' is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinevt}: Old definition deleted.}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\decalineh| is used for drawing decaline derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macros |\setsixringh| and |\setfusedbond|.
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (horizontal type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+% -----
+% * *
+% 1 * * 4
+% * *
+% 8a (0G) ----- 4a (0F)
+% * *
+% the original point ===> 8 * * 5
+% (0,0) * *
+% -----
+% 7 6
+% \end{verbatim}
+%
+% The macro |\decalineh| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalineh[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \decalineh{1==Cl;2==F;0FA==;0GA==}
+% \decalineh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalineh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% The macro |\decalineh| has been changed into a subsidiary macro
+% of |\decaheteroh| (version 2.00).
+%
+% \begin{macro}{\decalineh}
+% \begin{macrocode}
+\def\decalineh{\@ifnextchar[{\@decalineh[@}{\@decalineh[@]}}
+\def\@decalineh[#1]#2{%
+\iforigpt \typeout{command `decalineh' is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/30}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalineh}: Old definition deleted.}
+%
+% \section{Naphthalene and naphtoquinone derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\naphdrv| (|\naphthalenev|) is used for drawing
+% naphthalene derivatives
+% of vertical type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinev|.
+%
+% The macro |\naphdrv| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenev} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical type) *
+% **********************************************
+%
+% \naphdrv[OPT]{SUBSLIST}
+% \naphthalenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrv{1==Cl;2==F}
+% \naphdrv[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrv}
+% \begin{macro}{\naphthalenev}
+% \begin{macrocode}
+\def\naphdrv{\@ifnextchar[{\@naphdrv}{\@naphdrv[r]}}
+\def\@naphdrv[#1]#2{%
+\iforigpt \typeout{command `naphdrv' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinev[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinev[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinev[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinev[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinev[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinev[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinev[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinev[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinev[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinev[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinev[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinev[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinev[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinev[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinev[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinev[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinev[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinev[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinev[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinev[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinev[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrv macro
+\let\naphthalenev=\naphdrv
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\naphdrvb| (|\naphthalenevb|) is used for drawing
+% naphthalene derivatives
+% of vertical-bottom type as well as naphthoquinone derivatives of
+% vertical-bottom type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevb|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\naphdrvb| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenevb} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical-bottom type) *
+% **********************************************
+%
+% \naphdrvb[OPT]{SUBSLIST}
+% \naphthalenevb[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrvb{1==Cl;2==F}
+% \naphdrvb[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrvb}
+% \begin{macro}{\napphathaleneb}
+% \begin{macrocode}
+\def\naphdrvb{\@ifnextchar[{\@naphdrvb}{\@naphdrvb[r]}}
+\def\@naphdrvb[#1]#2{%
+\iforigpt \typeout{command `naphdrvb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevb[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevb[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevb[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevb[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevb[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevb[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevb[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevb[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevb[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevb[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevb[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevb[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevb[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevb[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevb[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevb[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevb[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevb[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevb[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevb[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvb macro
+\let\naphthalenevb=\naphdrvb
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\naphdrvt| (|\naphthalenevt|) is used for drawing
+% naphthalene derivatives
+% of vertical-top type as well as naphthoquinone derivatives of
+% vertical-top type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevt|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\naphdrvt| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenevt} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical-top type) *
+% **********************************************
+%
+% \naphdrvt[OPT]{SUBSLIST}
+% \naphthalenevt[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrvt{1==Cl;2==F}
+% \naphdrvt[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrvt}
+% \begin{macro}{\naphthalenevt}
+% \begin{macrocode}
+\def\naphdrvt{\@ifnextchar[{\@naphdrvt}{\@naphdrvt[r]}}
+\def\@naphdrvt[#1]#2{%
+\iforigpt \typeout{command `naphdrvt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevt[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevt[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevt[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevt[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevt[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevt[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevt[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevt[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevt[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevt[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevt[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevt[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevt[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevt[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevt[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevt[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevt[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevt[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevt[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvt macro
+\let\naphthalenevt=\naphdrvt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\naphdrh| is used for drawing naphthalene derivatives
+% of horizontal type as well as naphtoquinone derivatives of
+% horizontal type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalineh|.
+%
+% The macro |\naphdrh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthaleneh} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (horizontal type) *
+% **********************************************
+%
+% \naphdrh[OPT]{SUBSLIST}
+% \naphthaleneh[OPT]{SUBSLIST}
+%
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+% The meaning of these characters is the same as described in
+% the definition of the macro |\naphdrv|.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+%
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+%
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrh{1==Cl;2==F}
+% \naphdrh[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrh}
+% \begin{macro}{\naphthaleneh}
+% \begin{macrocode}
+\def\naphdrh{\@ifnextchar[{\@naphdrh}{\@naphdrh[r]}}
+\def\@naphdrh[#1]#2{%
+\iforigpt \typeout{command `nathdrh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalineh[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalineh[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalineh[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalineh[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalineh[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalineh[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalineh[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalineh[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+% %%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalineh[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalineh[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalineh[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalineh[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalineh[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalineh[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalineh[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalineh[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalineh[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalineh[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalineh[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalineh[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrh macro
+\let\naphthaleneh=\naphdrh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Tetraline derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\tetralinev| is used for drawing naphthalene derivatives
+% of vertical type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinev|.
+%
+% The macro |\tetralinev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *************************
+% * tetraline derivatives *
+% * (vertical type) *
+% *************************
+%
+% \tetralinev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinev{1==Cl;2==F}
+% \tetralinev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinev}
+% \begin{macrocode}
+\def\tetralinev{\@ifnextchar[{\@tetralinev}{\@tetralinev[r]}}
+\def\@tetralinev[#1]#2{%
+ \iforigpt \typeout{command `tetralinev' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinev[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinev[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinev[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinev[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinev[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinev macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\tetralinevb| is used for drawing naphthalene derivatives
+% of vertical-bottom type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevb|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\tetralinevb| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************
+% * tetraline derivatives *
+% * (vertical-bottom type) *
+% ********************************
+%
+% \tetralinevb[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinevb{1==Cl;2==F}
+% \tetralinevb[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinevb[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinevb}
+% \begin{macrocode}
+\def\tetralinevb{\@ifnextchar[{\@tetralinevb}{\@tetralinevb[r]}}
+\def\@tetralinevb[#1]#2{%
+ \iforigpt \typeout{command `tetralinevb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevb[fhK]{#2}% %[fhK] in place of [fhk]
+ \else\if\@tmpa A%aromatic circle
+ \decalinevb[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevb[afhK]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[afhK]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[bfhK]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevb[cfhK]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevb[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevb macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\tetralinevt| is used for drawing naphthalene derivatives
+% of vertical-top type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevt|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\tetralinevt| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************
+% * tetraline derivatives *
+% * (vertical-bottom type) *
+% ********************************
+%
+% \tetralinevt[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinevt{1==Cl;2==F}
+% \tetralinevt[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinevt[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinevt}
+% \begin{macrocode}
+\def\tetralinevt{\@ifnextchar[{\@tetralinevt}{\@tetralinevt[r]}}
+\def\@tetralinevt[#1]#2{%
+ \iforigpt \typeout{command `tetralinevt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevt[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinevt[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevt[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevt[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevt[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevt macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\tetralineh| is used for drawing tetraline derivatives
+% of horizontal type.
+%
+% The macro |\tetralineh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *************************
+% * tetraline derivatives *
+% * (horizontal type) *
+% *************************
+%
+% \tetralineh[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralineh{1==Cl;2==F}
+% \tetralineh[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralineh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralineh}
+% \begin{macrocode}
+\def\tetralineh{\@ifnextchar[{\@tetralineh}{\@tetralineh[r]}}
+\def\@tetralineh[#1]#2{%
+ \iforigpt \typeout{command `tetralineh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalineh[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalineh[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalineh[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalineh[cfhk]{#2}%
+ \fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralineh macro
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Anthracene derivatives}
+% \subsection{Perhydro-anthracene derivatives of Vertical type}
+%
+% The macro |\hanthracenev| is used for drawing perhydroanthracene
+% derivatives of vertical type.
+%
+% The macro |\hanthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************************
+% * perhydro anthracene derivatives *
+% * (vertical type) *
+% ***********************************
+%
+% \hanthracenev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to p, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/14}{BONDLIST: o, O, p and P at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : hanthracene
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 10,4a-double bond
+% f : 10,10a-double bond
+% g : 5,10a-double bond
+% h : 5,6-double bond
+% i : 6,7-double bond
+% j : 8,7-double bond
+% k : 8,8a-double bond
+% l : 9,8a-double bond
+% m : 9,9a-double bond
+% n : 1,9a-double bond
+% o : 4a,9a-double bond
+% O : 4a,9a-double bond in the other ring
+% p : 10a,8a-double bond
+% P : 10a,8a-double bond in the other ring
+% A : right aromatic circle
+% B : central aromatic circle
+% C : left aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% for 11 (fused positions, 9a and 4a)
+%
+% 11FA : alpha single bond at 9a
+% 11FB : beta single bond at 9a
+% 11FU : unspecified single bond at 9a
+% 11GA : alpha single bond at 4a
+% 11GB : beta single bond at 4a
+% 11GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% for 12 (fused positions, 8a and 10a)
+%
+% 12FA : alpha single bond at 8a
+% 12FB : beta single bond at 8a
+% 12FU : unspecified single bond at 8a
+% 12GA : alpha single bond at 10a
+% 12GB : beta single bond at 10a
+% 12GU : unspecified single bond at 10a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \hanthracenev{1==Cl;2==F;{{10}}==OH}
+% \hanthracenev[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}FA}==OH;{{11}FB}==OH}
+% \hanthracenev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Added: fused rings}
+%
+% \begin{macro}{\hanthracenev}
+% \begin{macrocode}
+\def\hanthracenev{\@ifnextchar[{\@hanthracenev[@}{\@hanthracenev[r]}}
+\def\@hanthracenev[#1]#2{%
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-7}{0}{2}{0}% %for 8 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else\ylposition{#2}{-1}{3}{7}{0}% for 5 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{0}{0}{5}{0}% for 1 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\else
+\ylposition{#2}{-8}{0}{2}{0}%for 9-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{-6}{3}{5}{0}%for 10-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-11}{-1}{1}{0}% for 9a and 4a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% for 8a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,880)(-\shiftii,-\shifti)%
+ \origptoutput{hanthracenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 8-7
+ \Put@Line(0,406)(5,-3){171}% %bond 8-8a
+ \Put@Line(0,0)(-5,3){171}% %bond 5-6
+ \Put@Line(0,0)(5,3){171}% %bond 5-10a
+ \Put@Line(171,103)(0,1){200}% %bond 10a-8a
+ \Put@Line(-171,103)(0,1){200}% %bond 6-7
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-8a
+ \Put@Line(342,406)(5,-3){171}% %bond 9-9a
+ \Put@Line(342,0)(-5,3){171}% %bond 10-10a
+ \Put@Line(342,0)(5,3){171}% %bond 10-4a
+ \Put@Line(513,103)(0,1){200}% %bond 4a-9a
+ %%%%
+ \Put@Line(684,406)(-5,-3){171}% %bond 1-9a 1-6
+ \Put@Line(684,406)(5,-3){171}% %bond 1-2 1-2
+ \Put@Line(855,103)(0,1){200}% %bond 3-2 3-2
+ \Put@Line(684,0)(5,3){171}% %bond 4-3 4-3
+ \Put@Line(684,0)(-5,3){171}% %bond 4-4a 4-5
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(690,364)(5,-3){126}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(822,129)(0,1){148}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(690,42)(5,3){126}% %double bond 4-3
+\else\if\member d%
+ \Put@Line(690,42)(-5,3){126}% %double bond 4-4a
+\else\if\member e%
+ \Put@Line(348,42)(5,3){126}% %double bond 10-4a
+\else\if\member f%
+ \Put@Line(348,42)(-5,3){126}% %double bond 10-10a
+\else\if\member g%
+ \Put@Line(6,42)(5,3){126}% %double bond 5-10a
+\else\if\member h%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 5-6
+\else\if\member i%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member j%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 8-7
+\else\if\member k%
+ \Put@Line(6,364)(5,-3){126}% %double bond 8-8a
+\else\if\member l%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-8a
+\else\if\member m%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-9a
+\else\if\member n%
+ \Put@Line(690,364)(-5,-3){126}% %double bond 1-9a
+\else\if\member o%
+ \Put@Line(544,129)(0,1){148}% %double bond 4a-9a
+\else\if\member O%
+ \Put@Line(482,129)(0,1){148}% %double bond 4a-9a at the other ring
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 10a-8a
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 10a-8a at the other ring
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(684,203){240}% %circle
+\else
+%setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hanthrav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-7}{0}{2}{0}}% %for 8 positions
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{-1}{3}{7}{0}}% %for 5 to 7 positions
+\Put@Direct(684,0){\setsixringv{#2}{0}{0}{5}{0}}% %for 1 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{-8}{0}{2}{0}}%for 9-position
+\Put@Direct(342,0){\setsixringv{#2}{-6}{3}{5}{0}}%for 10-position
+%bonds and substituents for fused positions
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% for 8a and 10a
+\Put@Direct(342,0){\setfusedbond{#2}{-11}{-1}{1}{0}}% for 9a and 4a
+\end{sfpicture}}% %end of \hanthracenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Anthracene and anthraquinone derivatives}
+%
+% The macro |\anthracenev| is used for drawing anthracene derivatives
+% of vertical type.
+%
+% The macro |\anthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************************
+% * anthracene and anthraquinone derivatives *
+% * (vertical type) *
+% ********************************************
+%
+% \anthracenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none or r : right-handed double bonds
+% l : left-handed double bonds
+% A : aromatic circle
+%
+% p or pa : 9,10-anthraquinone (A)
+% pA : 9,10-anthraquinone (circle type)
+%
+% o : 1,2-anthraquinone (A)
+% oa : 1,2-anthraquinone (A')
+% oA : 1,2-anthraquinone (circle type)
+% ob : 2,3-antharquinone (B)
+% oc : 1,2-anthraquinone (C)
+%
+% q : 1,4-anthraquinone (A)
+% qa : 1,4-anthraquinone (A')
+% qA : 1,4-anthraquinone (circle type)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \anthracenev{1==Cl;2==F;0FA==;0GA==}
+% \anthracenev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \anthracenev[eb]{1D==O;4SA==MeO;4SB==OMe;%
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\anthracenev}
+% \begin{macrocode}
+\def\anthracenev{\@ifnextchar[{\@anthracenev}{\@anthracenev[r]}}
+\def\@anthracenev[#1]#2{%
+ \iforigpt \typeout{command `anthracenev' is %
+ based on `hanthracenev'.}\fi%
+%% \expandafter\threech@r#1{}{}%error1998/11/23 by Shinsaku Fujita
+ \expandafter\twoCH@R#1//%
+ \if\@tmpa r% right-handed set of double bonds
+ \hanthracenev[acflhjo]{#2}%
+ \else\if\@tmpa l% left-handed set of double bonds
+ \hanthracenev[acehjmp]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hanthracenev[ABC]{#2}%
+ \else\if\@tmpa p%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[achjop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[achjop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[AC]{#2}%
+ \else
+ \hanthracenev[achjop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[cfjhlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[cehjmp]{#2}%
+ \else\if\@tmpb b% (B)
+ \hanthracenev[dfhjln]{#2}%
+ \else\if\@tmpb c% (C)
+ \hanthracenev[aehjmp]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hanthracenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[bfhjlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[behjmp]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[AB]{#2}%
+ \else%
+ \hanthracenev[behjmp]{#2}%
+ \fi\fi\fi%
+ \else
+ \hanthracenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+}% %end of \anthracenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Phenanthrene derivatives}
+% \subsection{Perhydro-phenanthrene derivatives of Vertical type}
+%
+% The macro |\hphenanthrenev| is used for drawing perhydrophenanthrene
+% derivatives of vertical type.
+%
+% The macro |\hphenanthrenev| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% *************************************
+% * perhydro phenanthrene derivatives *
+% * (vertical type) *
+% *************************************
+%
+% \hphenanthrenev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to p, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/14}{BONDLIST: o, O, p and P at the fused bond}
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : hphenanthrene
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 4a,4b-double bond
+% f : 4b,5-double bond
+% g : 5,6-double bond
+% h : 6,7-double bond
+% i : 7,8-double bond
+% j : 8,8a-double bond
+% k : 8a,9-double bond
+% l : 9,10-double bond
+% m : 10,10a-double bond
+% n : 1,10a-double bond
+% o : 4a,10a-double bond
+% O : 4a,10a-double bond in the other ring
+% p : 4b,8a-double bond
+% P : 4b,8a-double bond in the other ring
+% A : right aromatic circle
+% B : central aromatic circle
+% C : left aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 11 (fused positions, 4a and 10a)
+%
+% 11FA : alpha single bond at 4a
+% 11FB : beta single bond at 4a
+% 11FC : alpha single bond (downward) at 4a
+% 11FD : beta single bond (downward) at 4a
+% 11FU : unspecified single bond at 4a
+% 11GA : alpha single bond at 10a
+% 11GB : beta single bond at 10a
+% 11FC : alpha single bond (upward) at 10a
+% 11FD : beta single bond (upward) at 10a
+% 11GU : unspecified single bond at 10a
+%
+% for 12 (fused positions, 4b and 8a)
+%
+% 12FA : alpha single bond at 4b
+% 12FB : beta single bond at 4b
+% 12FU : unspecified single bond at 4b
+% 12GA : alpha single bond at 8a
+% 12GB : beta single bond at 8a
+% 12GU : unspecified single bond at 8a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \hphenanthrenev{1==Cl;2==F;{{10}}==OH}
+% \hphenanthrenev[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}FA}==OH;{{11}FB}==OH}
+% \hphenanthrenev[eb]{1D==O;4SA==MeO;4SB==OMe;
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/15}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/23}{Added: Fused rings}
+%
+% \begin{macro}{\hphenanthrenev}
+% \begin{macrocode}
+\def\hphenanthrenev{%
+ \@ifnextchar[{\@hphenanthrenev[@}{\@hphenanthrenev[r]}}
+\def\@hphenanthrenev[#1]#2{%
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-4}{0}{2}{0}% %for 5 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#2}{12}{3}{7}{-1}% %for 6 to 8 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{13}{2}{5}{-1}% %for 9 to 10 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{4}{0}{4}{-1}% %for 1 to 3 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#2}{2}{5}{7}{0}% %for 4-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% % for 4b and 8a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-10}{0}{2}{0}% % for 4a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,1200)(-\shiftii,-\shifti)
+ \origptoutput{hphenanthrenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 6-5
+ \Put@Line(0,406)(5,-3){171}% %bond 5-4a
+ \Put@Line(0,0)(-5,3){171}% %bond 8-7
+ \Put@Line(0,0)(5,3){171}% %bond 8-8a
+ \Put@Line(171,103)(0,1){200}% %bond 8a-4b
+ \Put@Line(-171,103)(0,1){200}% %bond 7-6
+ \Put@Line(342,406)(-5,-3){171}% %bond 4a-4b
+ \Put@Line(342,406)(5,-3){171}% %bond 4a-10a
+ \Put@Line(342,0)(-5,3){171}% %bond 9-8a
+ \Put@Line(342,0)(5,3){171}% %bond 9-10
+ \Put@Line(513,103)(0,1){200}% %bond 10-10a
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 4a-4
+ \Put@Line(513,709)(-5,-3){171}% %bond 3-4
+ \Put@Line(513,709)(5,-3){171}% %bond 3-2
+ \Put@Line(684,406)(0,1){200}% %bond 1-2
+ \Put@Line(513,303)(5,3){171}% %bond 10a-1
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(651,432)(0,1){148}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(519,667)(5,-3){126}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 3-4
+\else\if\member d%
+ \Put@Line(375,432)(0,1){148}% %double bond 4a-4
+\else\if\member e%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 4a-4b
+\else\if\member f%
+ \Put@Line(6,364)(5,-3){126}% %double bond 5-4b
+\else\if\member g%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 5-6
+\else\if\member h%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member i%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 8-7
+\else\if\member j%
+ \Put@Line(6,42)(5,3){126}% %double bond 8-8a
+\else\if\member k%
+ \Put@Line(348,42)(-5,3){126}% %double bond 9-8a
+\else\if\member l%
+ \Put@Line(348,42)(5,3){126}% %double bond 9-10
+\else\if\member m%
+ \Put@Line(482,129)(0,1){148}% %double bond 10-10a
+\else\if\member n%
+ \Put@Line(519,345)(5,3){126}% %double bond 10a-1
+\else\if\member o%
+ \Put@Line(507,345)(-5,3){126}% %double bond 10a-4a
+\else\if\member O%
+ \Put@Line(348,364)(5,-3){126}% %double bond 4a-10a
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 8a-4b
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 8a-4b
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+% setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hphenanv
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-4}{0}{2}{0}}% %for 5 position
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{12}{3}{7}{-1}}% %for 6 to 8 positions
+\Put@Direct(342,0){\setsixringv{#2}{13}{2}{5}{-1}}% %for 9 to 10 positions
+\Put@Direct(513,303){\setsixringv{#2}{4}{0}{4}{-1}}% %for 1 to 3 positions
+\Put@Direct(513,303){\setsixringv{#2}{2}{5}{7}{0}}% %for 4-position
+%bonds and substituents for fused positions
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% % for 4b and 8a
+\Put@Direct(342,0){\setfusedbond{#2}{-10}{0}{2}{0}}% % for 4a and 10a
+\end{sfpicture}}% %end of \hphenanthrenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Phenanthrene and phenanthroquinone derivatives}
+%
+% The macro |\phenanthrenev| is used for drawing phenanthrene derivatives
+% of vertical type.
+%
+% The macro |\anthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *********************************
+% * phenanthrene and derivatives *
+% * (vertical type) *
+% *********************************
+%
+% \phenanthrenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none or r : right-handed double bonds
+% A : aromatic circle
+%
+% p or pa : 1,4-quinone (A)
+% pA : 1,4-quinone (circle type)
+%
+% o or oa : 1,2-quinone (A)
+% oA : 1,2-quinone (circle type)
+% ob : 2,3-quinone (B)
+% oc : 3,4-anthraquinone (C)
+%
+% q or qa : 9,10-quinone
+% qA : 9,10-quinone (circle type)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \phenanthrenev{1==Cl;2==F}
+% \phenanthrenev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \phenanthrenev[eb]{1D==O;4SA==MeO;4SB==OMe;%
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\phenanthrenev}
+% \begin{macrocode}
+\def\phenanthrenev{\@ifnextchar[{\@phenanthrenev}{\@phenanthrenev[r]}}
+\def\@phenanthrenev[#1]#2{%
+ \iforigpt \typeout{command `phenanthrenev' is %
+ based on `hphenantherenv'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \hphenanthrenev[acgilop]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hphenanthrenev[ABC]{#2}%
+ \else\if\@tmpa p%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[bgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[bgilop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[BCb]{#2}%
+ \else
+ \hphenanthrenev[bgilop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[cgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[cgilop]{#2}%
+ \else\if\@tmpb b% (B)
+ \hphenanthrenev[dgilnp]{#2}%
+ \else\if\@tmpb c% (C)
+ \hphenanthrenev[agilop]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hphenanthrenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[acgiop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[acgiop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[AC]{#2}%
+ \else
+ \hphenanthrenev[acgiop]{#2}%
+ \fi\fi\fi%
+ \else
+ \hphenanthrenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi%
+}% %end of \phenanthrenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Steroids}
+% \subsection{Steroids without a chain}
+%
+% The macro |\steroid| is used for drawing steroids.
+%
+% The macro |\steroid| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************
+% * steroid derivatives *
+% ***********************
+%
+% \steroid[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to t, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/15}{BONDLIST: k, K, h, H, o and O
+% at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none: steroid skeleton
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,4-double bond d : 4,5-double bond
+% e : 6,5-double bond f : 6,7-double bond
+% g : 7,8-double bond
+% h : 9,8-double bond
+% h : 9,8-double bond in the other bond
+% i : 9,10-double bond j : 1,10-double bond
+% k : 5,10-double bond
+% K : 5,10-double bond in the other bond
+% l : 9,11-double bond
+% m : 12,11-double bond n : 12,13-double bond
+% o : 14,13-double bond
+% O : 14,13-double bond in the other bond
+% p : 8,14-double bond
+% q : 14,15-double bond r : 15,16-double bond
+% s : 17,16-double bond t : 17,13-double bond
+% A : aromatic A ring B : aromatic B ring
+% C : aromatic C ring
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 17 (execpt fused positions)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% For numbers larger than 9 (two digits), you should designate
+% the SUBSLIST as
+%
+% \begin{verbatim}
+% {{11}A}==Cl;{{12}SA}==H;{{12}SB}==Cl;
+% \end{verbatim}
+%
+% \begin{verbatim}
+% for n = 5,8,9,10,13 and 14 (fused positions)
+%
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nU : unspecified single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \steroid{1==Cl;2==F;{{10}}==OH}
+% \steroid[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}SA}==OH;{{11}SB}==OH}
+% \steroid[eb]{1D==O;4SA==MeO;4SB==OMe;
+% 5==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/15}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+%
+% \begin{macro}{\steroid}
+% \begin{macro}{\yl@steroidposition}
+% \begin{macro}{\@steroidskeleton}
+% \begin{macrocode}
+\def\steroid{\@ifnextchar[{\@steroid[@}{\@steroid[Z]}}
+\def\@steroid[#1]#2{%
+%initialize bug fix 2010/10/01
+\iniatom\iniflag%initialize
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1600,1300)(-\shiftii,-\shifti)
+ \origptoutput{steroid}%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+\end{sfpicture}}% %end of \steroid macro%
+% \end{macrocode}
+%
+% The |\yl@steroidposition| is derived from |\ylposition| and
+% |\ylatombondposition| to use in the |\steroid| command as well as
+% in the |\steroidchain| command.
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+%
+% \begin{macrocode}
+\def\yl@steroidposition#1{%
+\ylposition{#1}{0}{0}{2}{0}% %for 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#1}{8}{3}{7}{-1}% %for 2 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#1}{10}{2}{5}{-1}% %for 6 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#1}{-11}{0}{2}{0}%for 12 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{-5}{5}{7}{0}% %for 11 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{18}{0}{4}{-1}%for 15 to 17 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-855}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-4}{7}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi\else
+\ylatombondposition{#1}{-9}{1}% % for 10
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-7}{1}% % for 8
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-8}{7}% % for 9
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-13}{7}% % for 14
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-12}{1}% % for 13
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-606}\fi\fi%
+}% end of \yl@steroidposition
+% \end{macrocode}
+%
+% The |\@steroidskeleton| is separated from the definition of |\steroid|
+% so as to be used also in the definition of |\steroidchain|.
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+% \changes{v2.00}{1998/11/23}{Added: fused rings}
+%
+% \begin{macrocode}
+\def\@steroidskeleton#1#2{%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-2
+ \Put@Line(0,406)(5,-3){171}% %bond 1-10
+ \Put@Line(0,0)(-5,3){171}% %bond 4-3
+ \Put@Line(0,0)(5,3){171}% %bond 4-5
+ \Put@Line(171,103)(0,1){200}% %bond 5-10
+ \Put@Line(-171,103)(0,1){200}% %bond 3-2
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-10
+ \Put@Line(342,406)(5,-3){171}% %bond 9-8
+ \Put@Line(342,0)(-5,3){171}% %bond 6-5
+ \Put@Line(342,0)(5,3){171}% %bond 6-7
+ \Put@Line(513,103)(0,1){200}% %bond 7-8
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 9-11
+ \Put@Line(513,709)(-5,-3){171}% %bond 12-11
+ \Put@Line(513,709)(5,-3){171}% %bond 12-13
+ \Put@Line(684,406)(0,1){200}% %bond 14-13
+ \Put@Line(513,303)(5,3){171}% %bond 8-14
+ %%%%
+ \Put@Line(855,709)(-5,-3){171}% %bond 17-13
+ \Put@Line(855,709)(5,-3){171}% %bond 17-16
+ \Put@Line(1026,406)(0,1){200}% %bond 15-16
+ \Put@Line(684,406)(1,0){342}% %bond 14-15
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member Z%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-2 5-6
+\else\if\member b%
+ \Put@Line(-138,129)(0,1){148}% %double bond 3-2 6-7
+\else\if\member c%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-3 8-7
+\else\if\member d%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-5 8-8a
+\else\if\member e%
+ \Put@Line(348,42)(-5,3){126}% %double bond 6-5 9-8a
+\else\if\member f%
+ \Put@Line(348,42)(5,3){126}% %double bond 6-7 9-10
+\else\if\member g%
+ \Put@Line(482,129)(0,1){148}% %double bond 7-8 10-10a
+\else\if\member h%
+ \Put@Line(507,345)(-5,3){126}% %double bond 8-9 10a-4a
+\else\if\member H%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-8 4a-10a
+\else\if\member i%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-10 4a-4b
+\else\if\member j%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-10 5-4b
+\else\if\member k%
+ \Put@Line(138,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member K%
+ \Put@Line(204,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member l%
+ \Put@Line(375,432)(0,1){148}% %double bond 9-11 4-5
+\else\if\member m%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 12-11 3-4
+\else\if\member n%
+ \Put@Line(519,667)(5,-3){126}% %double bond 12-13 3-2
+\else\if\member o%
+ \Put@Line(651,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member O%
+ \Put@Line(717,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member p%
+ \Put@Line(519,345)(5,3){126}% %double bond 8-14 10a-1
+\else\if\member q%
+ \Put@Line(720,439)(1,0){260}% %double bond 14-15
+\else\if\member r%
+ \Put@Line(993,432)(0,1){148}% %double bond 15-16 1-2
+\else\if\member s%
+ \Put@Line(861,667)(5,-3){126}% %double bond 17-16 3-2
+\else\if\member t%
+ \Put@Line(861,667)(-5,-3){126}% %double bond 17-13 3-4
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member C%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+% setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@steroid
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\iniflag
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{0}{0}{2}{0}}% %for 1
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{8}{3}{7}{-1}}% %for 2 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{10}{2}{5}{-1}}% %for 6 to 7 positions
+\Put@Direct(513,303){\setsixringv{#2}{-11}{0}{2}{0}}%for 12 position
+\Put@Direct(513,303){\setsixringv{#2}{-5}{5}{7}{0}}% %for 11 position
+\Put@Direct(855,303){\setsixringv{#2}{18}{0}{4}{-1}}%for 15 to 17 positions
+%bonds and substituents for fused positions
+\Put@Direct(171,103){\setatombond{#2}{-4}{7}}% % for 5
+\Put@Direct(171,303){\setatombond{#2}{-9}{1}}% % for 10
+\Put@Direct(513,303){\setatombond{#2}{-7}{1}}% % for 8
+\Put@Direct(342,406){\setatombond{#2}{-8}{7}}% % for 9
+\Put@Direct(684,406){\setatombond{#2}{-13}{7}}% % for 14
+\Put@Direct(684,606){\setatombond{#2}{-12}{1}}% % for 13
+}% end of \@steroidskeleton
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@fusion@steroid| is an inner command contained
+% in the definition of |\steroidskeleton|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@steroid}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@steroid}}
+% \begin{macrocode}
+\def\set@fusion@steroid{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa g%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa G%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `h'}%
+ \fi
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `H'}%
+ \fi
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \else\if\@tmpa l%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `l'}%
+ \fi
+ \else\if\@tmpa L%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `L'}%
+ \fi
+ \else\if\@tmpa m%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `n'}%
+ \fi
+ \else\if\@tmpa N%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa o%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `o'}%
+ \fi
+ \else\if\@tmpa O%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `O'}%
+ \fi
+ \else\if\@tmpa p%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa P%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa q%
+ \XyMTeXWarning{Mismatched dimension for bond `q'}%
+ \else\if\@tmpa Q%
+ \XyMTeXWarning{Mismatched dimension for bond `Q'}%
+ \else\if\@tmpa r%
+ \edef\@@tmpa{b}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa R%
+ \edef\@@tmpa{B}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa s%
+ \edef\@@tmpa{a}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa S%
+ \edef\@@tmpa{A}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa t%
+ \edef\@@tmpa{f}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `t'}%
+ \fi
+ \else\if\@tmpa T%
+ \edef\@@tmpa{F}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `T'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@steroid
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Steroids with a chain}
+%
+% The macro |\steroidchain| is used for drawing steroids.
+%
+% The macro |\steroidchain| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% **************************************
+% * steroid derivatives having a chain *
+% **************************************
+%
+% \steroidchain[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to t, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle). A two-character string `Z?' indicates
+% a double bond in the side-chain.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% (double bonds for the steroid skeleton)
+% none: no action on the steroid skeleton
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,4-double bond d : 4,5-double bond
+% e : 6,5-double bond f : 6,7-double bond
+% g : 7,8-double bond h : 9,8-double bond
+% i : 9,10-double bond j : 1,10-double bond
+% k : 5,10-double bond l : 9,11-double bond
+% m : 12,11-double bond n : 12,13-double bond
+% o : 14,13-double bond p : 8,14-double bond
+% q : 14,15-double bond r : 15,16-double bond
+% s : 17,16-double bond t : 17,13-double bond
+% A : aromatic A ring B : aromatic B ring
+% C : aromatic C ring
+% \end{verbatim}
+%
+% \begin{verbatim}
+% (double bonds for the side chain)
+% Z : no action
+% Za : 17,20-double bond Zb : 20,22-double bond
+% Zc : 22,23-double bond Zd : 23,24-double bond
+% Ze : 24,25-double bond Zf : 25,26-double bond
+% Zg : 25,27-double bond
+% \end{verbatim}
+%
+% For a two-character indicator, you should write the BONDLIST
+% as, e.g.
+%
+% \begin{verbatim}
+% [b{Za}{Zc}...]
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 24 (execpt fused positions)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% For numbers larger than 9 (two digits), you should designate
+% the SUBSLIST as
+%
+% \begin{verbatim}
+% {{11}A}==Cl;{{12}SA}==H;{{12}SB}==Cl; ...
+% \end{verbatim}
+%
+% \begin{verbatim}
+% for n = 5,8,9,10,13,14,and 25 (fused positions etc.)
+%
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nU : unspecified single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \steroidchain{1==Cl;2==F;{{10}}==OH}
+% \steroidchain[c]{1==Cl;4==F;2==CH$_{3}$;%
+% {{11}SA}==OH;{{11}SB}==OH}
+% \steroidchain[b]{1D==O;4SA==MeO;4SB==OMe;%
+% ;6==Cl;7==Cl;11==Cl}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v1.02}{1998/10/31}{The inner commands \cs{yl@steroidposition}
+% is used. The old \cs{steroid} is replaced by \cs{@steroidskeleton}.}
+% \changes{v2.00}{1998/11/31}{Add: fused rings}
+%
+% \begin{macro}{\steroidchain}
+% \begin{macrocode}
+\def\steroidchain{\@ifnextchar[{\@steroidchain[@}{\@steroidchain[Z]}}
+\def\@steroidchain[#1]#2{%
+%shift due to the steroid skeleton
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+%shift due to the side chain
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1197}\def\@@yli{-709}\fi\else
+\ylatombondposition{#2}{-24}{4}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidchain' is based on `steroid'.}\fi%
+\fi
+% steroid skeleton
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+% bonds for the side chain (carbons 20 to 27 (except 21))
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+ \Put@Line(1197,709)(1,0){200}% %bond 24-25
+ \Put@Line(1397,709)(3,5){103}% %bond 25-26
+ \Put@Line(1397,709)(3,-5){103}% %bond 25-27
+% double bonds along the side chain
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \else\if\@tmpb e%
+ \Put@Line(1233,742)(1,0){140}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1433,715)(3,5){72}% %double bond 25-26
+ \else\if\@tmpb g%
+ \Put@Line(1433,697)(3,-5){72}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% substitution on the side chain
+%\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+%\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}% % for 5
+\end{sfpicture}}% %end of \steroidchain macro%
+%</carom>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/carom.dtx b/macros/latex/contrib/xymtex/base/carom.dtx
new file mode 100644
index 0000000000..e85f329f8c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/carom.dtx
@@ -0,0 +1,4172 @@
+% \iffalse meta-comment
+%% File: carom.dtx
+%
+% Copyright 1993,1996,1998,2000,2001,2002, 2004 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% carom.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files xymtx-pdf.dtx and xymtx-pdf.ins
+% and the derived file xymtx-pdf.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology,
+% Matsugasaki, Sakyoku, Kyoto, 606, Japan
+%
+% New address:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{June 14, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{carom}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{2982}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/08/16}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.00a}{2000/06/14}{bug fix}
+% \changes{v2.01}{2001/06/30}{Size reduction}
+% \changes{v3.00}{2002/04/30}{sfpicture enviromnent etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2002/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{carom.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{carom.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Drawing carbocyclic compounds by {\sffamily carom.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% % (old address)
+% % Ashigara Research Laboratories,
+% % Fuji Photo Film Co., Ltd., \\
+% % Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{carom.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{carom:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% carom & carom.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*carom>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{carom}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for carom.sty}
+%
+% \begin{verbatim}
+% *******************************
+% * carom.sty: list of commands *
+% *******************************
+%
+% <VERTICAL TYPE>
+%
+% \cyclohexanev \@cyclohexanev
+% \bzdrv \@bzdrv
+% \decalinev \@decalinev
+% \decalinevb \@decalinevb
+% \decalinevt \@decalinevt
+% \naphdrv \@naphdrv
+% \naphdrvb \@naphdrvb
+% \naphdrvt \@naphdrvt
+% \tetralinev \@tetralinev
+% \tetralinevb \@tetralinevb
+% \tetralinevt \@tetralinevt
+% \hanthracenev \@hanthracenev
+% \anthracenev \@anthracenev
+% \hphenanthrenev \@hphenanthrenev
+% \phenanthrenev \@phenanthrenev
+% \steroid \@steroid
+% \steroidchain \@steroidchain
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <HORIZONTAL TYPE>
+%
+% \cyclohexaneh \@cyclohexaneh
+% \bzdrh \@bzdrh
+% \decalineh \@decalineh
+% \naphdrh \@naphdrh
+% \tetralineh \@tetralineh
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf carom.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{decaheterov}{\input hetarom.sty\relax}{}
+\@ifundefined{decaheteroh}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Cyclohexane derivatives}
+% \subsection{Vertical cyclohexanes}
+%
+% The macro |\cyclohexanev| is used for drawing cyclohexane derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setsixringv|.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (vertical type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% | |
+% 5 * * 3
+% *
+% 4 <===== the original point
+%
+% \end{verbatim}
+%
+% The macro |\cyclohexanev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+% \begin{verbatim}
+% \cyclohexanev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to f as well as A, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \cyclohexanev{1==Cl;2==F}
+% \cyclohexanev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \cyclohexanev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\cyclohexanev}
+% \begin{macrocode}
+\def\cyclohexanev{\@ifnextchar[{\@cyclohexanev[@}{\@cyclohexanev[@]}}
+\def\@cyclohexanev[#1]#2{\sixheterov[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been deleted.
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/23}{Adding \cs{set@fusionadd@sixv}}
+% \changes{v3.00}{2002/04/30}{\cs{cyclohexanev}: Old definition deleted.}
+%
+% \subsection{Horizontal cyclohexanes}
+%
+% The macro |cyclohexaneh| is used for drawing cyclohexane derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setsixringh|.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (horizontal type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+% -----
+% * *
+% the original point ===> 1 * * 4
+% (0,0) * *
+% -----
+% 6 5
+% \end{verbatim}
+%
+% The macro |\cyclohexaneh| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \cyclohexaneh[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to f as well as A, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \cyclohexaneh{1==Cl;2==F}
+% \cyclohexaneh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \cyclohexaneh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \changes{v2.00a}{2000/06/14}{bug fix: changed letter [r] to [@]
+% in \cs{cycohexaneh} for horizontal cyclohexanes}
+%
+% \begin{macro}{\cyclohexaneh}
+% \begin{macrocode}
+\def\cyclohexaneh{\@ifnextchar[{\@cyclohexaneh[@}{\@cyclohexaneh[@]}}
+\def\@cyclohexaneh[#1]#2{\sixheteroh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been deleted.
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/29}{Adding \cs{set@fusionadd@sixv} for
+% fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{cyclohexaneh}: Old definition deleted.}
+%
+% \section{Benzene and benzoquinone derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\bzdrv| (|\benzenev|) is used for drawing benzene derivatives
+% of vertical type as well as benzoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\cyclohexanev| defined above.
+%
+% The macro |\bzdrv| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{benzenev} added}
+%
+% \begin{verbatim}
+% ****************************************
+% * benzene and benzoquinone derivatives *
+% * (vertical type) *
+% ****************************************
+%
+% \bzdrv[OPT]{SUBSLIST}
+% \benzenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one character (r, l or c) for designate
+% aromatic bond patterns or two characters (p? or o?) for quinone
+% bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT: (bond pattern)
+%
+% none or r : right-handed set of double bonds
+% l : left-handed set of double bonds
+% c : aromatic circle
+%
+% p or pa : p-quinone (A)
+% pb : p-quinone (B)
+% pc : p-quinone (C)
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \bzdrv{1==Cl;2==F}
+% \bzdrv[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bzdrv[pa]{1D==O;4D==O;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\bzdrv}
+% \begin{macro}{\benzenev}
+% \begin{macrocode}
+\def\bzdrv{\@ifnextchar[{\@bzdrv}{\@bzdrv[r]}}
+\def\@bzdrv[#1]#2{%
+\iforigpt \typeout{command `bzdrv' is based on `cyclohexanev'.}\fi%
+%\expandafter\twoch@r#1{}%
+\expandafter\twoCH@R#1//%
+\if\@tmpa r% right-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[bdf]{#2}%
+ \fi
+\else\if\@tmpa l%left-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[ace]{#2}%
+ \fi
+\else\if\@tmpa c%aromatic circle
+ \ifx\@tmpb\empty
+ \cyclohexanev[A]{#2}%
+ \fi
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexanev[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexanev[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexanev[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexanev[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexanev[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexanev[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexanev[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexanev[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexanev[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexanev[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+}% %end of \bzdrv macro
+\let\benzenev=\bzdrv
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\bzdrh| (|\benzeneh|) is used for drawing benzene derivatives
+% of vertical type as well as benzoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\cyclohexanev| defined above.
+%
+% The macro |\bzdrh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{benzeneh} added}
+%
+% \begin{verbatim}
+% ****************************************
+% * benzene and benzoquinone derivatives *
+% * (horizontal type) *
+% ****************************************
+%
+% \bzdrh[OPT]{SUBSLIST}
+% \benzeneh[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one character (r, l or c) for designate
+% aromatic bond patterns or two characters (p? or o?) for quinone
+% bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT: (bond pattern)
+%
+% none or r : right-handed set of double bonds
+% l : left-handed set of double bonds
+% c : aromatic circle
+%
+% p or pa : p-quinone (A)
+% pb : p-quinone (B)
+% pc : p-quinone (C)
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+% \bzdrh{1==Cl;2==F}
+% \bzdrh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bzdrh[pa]{1D==O;4D==O;2==CH$_{3}$}
+%
+% \end{verbatim}
+%
+% \begin{macro}{\bzdrh}
+% \begin{macro}{\benzeneh}
+% \begin{macrocode}
+\def\bzdrh{\@ifnextchar[{\@bzdrh}{\@bzdrh[r]}}
+\def\@bzdrh[#1]#2{%
+\iforigpt \typeout{command `bzdrh' is based on `cyclohexaneh'.}\fi%
+%\expandafter\twoch@r#1{}%
+\expandafter\twoCH@R#1//%
+%\begin{sfpicture}(800,880)(-\noshift,-\noshift)
+\if\@tmpa r% right-handed set of double bonds
+ \cyclohexaneh[bdf]{#2}%
+\else\if\@tmpa l%left-handed set of double bonds
+ \cyclohexaneh[ace]{#2}%
+\else\if\@tmpa c%aromatic circle
+ \cyclohexaneh[A]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexaneh[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexaneh[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexaneh[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexaneh[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexaneh[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexaneh[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexaneh[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexaneh[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexaneh[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+%\end{sfpicture}
+}% %end of \bzdrh macro
+\let\benzeneh=\bzdrh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Decaline derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\decalinev| is used for drawing decaline derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\setdecaringv|.
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (vertical type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 8 (0G)1
+% * 8a *
+% 7 * * * * 2
+% | | |
+% | | |
+% 6 * * * * 3
+% * 4a *
+% 5 (0F)4
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinev{1==Cl;2==F;0FA==;0GA==}
+% \decalinev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinev| has been changed into a subsidiary macro
+% of |\decaheterov| (version 2.00).
+%
+% \begin{macro}{\decalinev}
+% \begin{macrocode}
+\def\decalinev{\@ifnextchar[{\@decalinev[@}{\@decalinev[@]}}
+\def\@decalinev[#1]#2{%
+\iforigpt \typeout{command `decalinev' is based on `decaheterov'.}\fi%
+\decaheterov[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinev}: Old definition deleted.}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\decalinevb| is used for drawing decaline derivatives
+% of vertical-bottom type (numbering from the bottom to the left-upper part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``bottom'' means that the benzene ring with young locant numbers
+% is located at the bottom.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+% \changes{v1.02}{1998/10/13}{Newly added command}
+%
+% \begin{verbatim}
+% ***************************
+% * decaline derivatives *
+% * (vertical bottom type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 7
+% *
+% 6 * * 8
+% | |
+% | | 0G (4a)
+% 5 * * *
+% 0F(4a) * * 1
+% | |
+% | |
+% 4 * * 2
+% *
+% 3
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinevb| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinevb[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinevb{1==Cl;2==F;0FA==;0GA==}
+% \decalinevb[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinevb[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinevb| has been changed into a subsidiary macro
+% of |\decaheterovb| (version 2.00).
+%
+% \begin{macro}{\decalinevb}
+% \begin{macrocode}
+\def\decalinevb{\@ifnextchar[{\@decalinevb[@}{\@decalinevb[@]}}
+\def\@decalinevb[#1]#2{%
+\iforigpt \typeout{command `decalinevb' is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Add: Fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinevb}: Old definition deleted.}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\decalinevt| is used for drawing decaline derivatives
+% of vertical-bottom type (numbering from the top to the left-down part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``top'' means that the benzene ring with young locant numbers
+% is located at the top.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+% \changes{v1.02}{1998/10/13}{Newly added command}
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (vertical-top type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 2
+% *
+% 1 * * 3
+% | |
+% | |
+% 0G (8a) * * 4
+% 8 * * 0F(4a)
+% | |
+% | |
+% 7 * * 5
+% *
+% 6
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decalinevt| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalinevt[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% e.g.
+%
+% \decalinevt{1==Cl;2==F;0FA==;0GA==}
+% \decalinevt[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalinevt[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+%
+% \end{verbatim}
+%
+% The macro |\decalinevt| has been changed into a subsidiary macro
+% of |\decaheterovt| (version 2.00).
+%
+% \begin{macro}{\decalinevt}
+% \begin{macrocode}
+\def\decalinevt{\@ifnextchar[{\@decalinevt[@}{\@decalinevt[@]}}
+\def\@decalinevt[#1]#2{%
+\iforigpt \typeout{command `decalinevt' is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalinevt}: Old definition deleted.}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\decalineh| is used for drawing decaline derivatives
+% of vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macros |\setsixringh| and |\setfusedbond|.
+%
+% \begin{verbatim}
+% ************************
+% * decaline derivatives *
+% * (horizontal type) *
+% ************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+% -----
+% * *
+% 1 * * 4
+% * *
+% 8a (0G) ----- 4a (0F)
+% * *
+% the original point ===> 8 * * 5
+% (0,0) * *
+% -----
+% 7 6
+% \end{verbatim}
+%
+% The macro |\decalineh| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \decalineh[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to k, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A or B indicates aromatic bond patterns (circles).
+% \changes{v1.02}{1998/10/14}{BONDLIST: k and K at the fused bond}
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : decaline
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 5,4a-double bond
+% f : 5,6-double bond
+% g : 6,7-double bond
+% h : 8,7-double bond
+% i : 8,8a-double bond
+% j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : left aromatic circle
+% B : right aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 0 (fused positions)
+%
+% 0FA : alpha single bond at 8a
+% 0FB : beta single bond at 8a
+% 0FU : unspecified single bond at 8a
+% 0GA : alpha single bond at 4a
+% 0GB : beta single bond at 4a
+% 0GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \decalineh{1==Cl;2==F;0FA==;0GA==}
+% \decalineh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \decalineh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% The macro |\decalineh| has been changed into a subsidiary macro
+% of |\decaheteroh| (version 2.00).
+%
+% \begin{macro}{\decalineh}
+% \begin{macrocode}
+\def\decalineh{\@ifnextchar[{\@decalineh[@}{\@decalineh[@]}}
+\def\@decalineh[#1]#2{%
+\iforigpt \typeout{command `decalineh' is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following old definition has been stopped using.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/30}{Add: fused rings}
+% \changes{v3.00}{2002/04/30}{\cs{decalineh}: Old definition deleted.}
+%
+% \section{Naphthalene and naphtoquinone derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\naphdrv| (|\naphthalenev|) is used for drawing
+% naphthalene derivatives
+% of vertical type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinev|.
+%
+% The macro |\naphdrv| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenev} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical type) *
+% **********************************************
+%
+% \naphdrv[OPT]{SUBSLIST}
+% \naphthalenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrv{1==Cl;2==F}
+% \naphdrv[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrv}
+% \begin{macro}{\naphthalenev}
+% \begin{macrocode}
+\def\naphdrv{\@ifnextchar[{\@naphdrv}{\@naphdrv[r]}}
+\def\@naphdrv[#1]#2{%
+\iforigpt \typeout{command `naphdrv' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinev[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinev[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinev[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinev[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinev[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinev[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinev[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinev[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinev[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinev[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinev[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinev[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinev[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinev[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinev[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinev[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinev[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinev[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinev[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinev[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinev[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrv macro
+\let\naphthalenev=\naphdrv
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\naphdrvb| (|\naphthalenevb|) is used for drawing
+% naphthalene derivatives
+% of vertical-bottom type as well as naphthoquinone derivatives of
+% vertical-bottom type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevb|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\naphdrvb| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenevb} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical-bottom type) *
+% **********************************************
+%
+% \naphdrvb[OPT]{SUBSLIST}
+% \naphthalenevb[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrvb{1==Cl;2==F}
+% \naphdrvb[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrvb}
+% \begin{macro}{\napphathaleneb}
+% \begin{macrocode}
+\def\naphdrvb{\@ifnextchar[{\@naphdrvb}{\@naphdrvb[r]}}
+\def\@naphdrvb[#1]#2{%
+\iforigpt \typeout{command `naphdrvb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevb[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevb[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevb[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevb[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevb[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevb[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevb[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevb[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevb[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevb[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevb[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevb[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevb[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevb[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevb[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevb[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevb[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevb[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevb[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevb[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvb macro
+\let\naphthalenevb=\naphdrvb
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\naphdrvt| (|\naphthalenevt|) is used for drawing
+% naphthalene derivatives
+% of vertical-top type as well as naphthoquinone derivatives of
+% vertical-top type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevt|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\naphdrvt| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthalenevt} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (vertical-top type) *
+% **********************************************
+%
+% \naphdrvt[OPT]{SUBSLIST}
+% \naphthalenevt[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters.
+%
+% The character `A' is used for designating an aromatic bond pattern, in
+% which each of the six-membered rings has a central circle.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+% \end{verbatim}
+%
+% One character `p' or two characters (p?) in the |OPT| argument
+% designate a p-quinone nucleus, which is present in the
+% right-hand ring for the case of `p' or `pa' and in the
+% left-hand ring for the case of `pb'.
+%
+% \begin{verbatim}
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+% \end{verbatim}
+%
+% One character `o' or two characters (o?) in the |OPT| argument
+% designate an o-quinone nucleus in either side of the fused ring.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+% \end{verbatim}
+%
+% One character `q' or two characters (q?) in the |OPT| argument
+% designate an 2,6-, 1,5- or 1,7-quinone nucleus.
+% The second character of each argument indicates one of the possible
+% type of bond patterns.
+%
+% \begin{verbatim}
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+% \end{verbatim}
+%
+% One character `P' or two characters (P?) in the |OPT| argument
+% designate a 1,4,5,8- or 1,2,5,8-quinone nucleus.
+%
+% \begin{verbatim}
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+% \end{verbatim}
+%
+% One character `Q' or `O' or two characters (O?) in the |OPT| argument
+% designate quinone nuclei of remaining types.
+%
+% \begin{verbatim}
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrvt{1==Cl;2==F}
+% \naphdrvt[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrvt}
+% \begin{macro}{\naphthalenevt}
+% \begin{macrocode}
+\def\naphdrvt{\@ifnextchar[{\@naphdrvt}{\@naphdrvt[r]}}
+\def\@naphdrvt[#1]#2{%
+\iforigpt \typeout{command `naphdrvt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevt[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevt[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevt[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevt[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevt[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevt[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevt[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevt[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevt[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevt[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevt[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevt[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevt[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevt[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevt[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevt[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevt[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevt[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevt[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvt macro
+\let\naphthalenevt=\naphdrvt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\naphdrh| is used for drawing naphthalene derivatives
+% of horizontal type as well as naphtoquinone derivatives of
+% horizontal type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalineh|.
+%
+% The macro |\naphdrh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \changes{v3.00}{2002/04/30}{\cs{naphthaleneh} added}
+%
+% \begin{verbatim}
+% **********************************************
+% * naphthalene and naphthoquinone derivatives *
+% * (horizontal type) *
+% **********************************************
+%
+% \naphdrh[OPT]{SUBSLIST}
+% \naphthaleneh[OPT]{SUBSLIST}
+%
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+% The meaning of these characters is the same as described in
+% the definition of the macro |\naphdrv|.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none : naphthalene
+% A : aromatic circle
+%
+% p or pa : 1,4-quinone (A) left aromatic, right quinone
+% pb : 1,4-quinone (B) right aromatic, left quinone
+%
+% o or oa : o-quinone (A)
+% ob : o-quinone (B)
+% oc : o-quinone (C)
+% od : o-quinone (D)
+% oe : o-quinone (E)
+% of : o-quinone (F)
+%
+% q or qa : 2,6-quinone (A)
+% qb : 2,6-quinone (B) 3,7
+% qc : 1,5-quinone (C)
+% qd : 1,5-quinone (D) 4,8
+% qe : 1,7-quinone (E)
+% qf : 1,7-quinone (F) 2,8
+% qg : 1,7-quinone (G) 4,6
+% qh : 1,7-quinone (H) 3,5
+%
+% P or Pa : 1,4,5,8-quinone (A)
+% Pb : 1,2,5,8-quinone (B)
+%
+% Q : 1,2,3,4-quinone
+%
+% O or Oa : 1,2,5,6-quinone (A)
+% Ob : 1,2,7,8-quinone (B)
+% Oc : 1,2,3,5-quinone (C)
+% Od : 1,2,3,7-quinone (D)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+% \naphdrh{1==Cl;2==F}
+% \naphdrh[A]{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\naphdrh}
+% \begin{macro}{\naphthaleneh}
+% \begin{macrocode}
+\def\naphdrh{\@ifnextchar[{\@naphdrh}{\@naphdrh[r]}}
+\def\@naphdrh[#1]#2{%
+\iforigpt \typeout{command `nathdrh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalineh[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalineh[AB]{#2}%
+%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalineh[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalineh[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalineh[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalineh[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalineh[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalineh[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+% %%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalineh[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalineh[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalineh[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalineh[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalineh[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalineh[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalineh[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalineh[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalineh[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalineh[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalineh[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalineh[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrh macro
+\let\naphthaleneh=\naphdrh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Tetraline derivatives}
+% \subsection{Vertical type}
+%
+% The macro |\tetralinev| is used for drawing naphthalene derivatives
+% of vertical type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinev|.
+%
+% The macro |\tetralinev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *************************
+% * tetraline derivatives *
+% * (vertical type) *
+% *************************
+%
+% \tetralinev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinev{1==Cl;2==F}
+% \tetralinev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinev}
+% \begin{macrocode}
+\def\tetralinev{\@ifnextchar[{\@tetralinev}{\@tetralinev[r]}}
+\def\@tetralinev[#1]#2{%
+ \iforigpt \typeout{command `tetralinev' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinev[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinev[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinev[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinev[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinev[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinev macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-bottom type}
+%
+% The macro |\tetralinevb| is used for drawing naphthalene derivatives
+% of vertical-bottom type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevb|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\tetralinevb| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************
+% * tetraline derivatives *
+% * (vertical-bottom type) *
+% ********************************
+%
+% \tetralinevb[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinevb{1==Cl;2==F}
+% \tetralinevb[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinevb[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinevb}
+% \begin{macrocode}
+\def\tetralinevb{\@ifnextchar[{\@tetralinevb}{\@tetralinevb[r]}}
+\def\@tetralinevb[#1]#2{%
+ \iforigpt \typeout{command `tetralinevb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevb[fhK]{#2}% %[fhK] in place of [fhk]
+ \else\if\@tmpa A%aromatic circle
+ \decalinevb[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevb[afhK]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[afhK]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[bfhK]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevb[cfhK]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevb[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevb macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\tetralinevt| is used for drawing naphthalene derivatives
+% of vertical-top type as well as naphthoquinone derivatives of
+% vertical type. The skeleton and endocyclic double bonds are
+% drawn directly, while substituents and exocyclic bonds are placed by
+% useing the inner macro |\decalinevt|.
+% \changes{v1.02}{1998/10/14}{Newly added command}
+%
+% The macro |\tetralinevt| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************
+% * tetraline derivatives *
+% * (vertical-bottom type) *
+% ********************************
+%
+% \tetralinevt[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+%
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralinevt{1==Cl;2==F}
+% \tetralinevt[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralinevt[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralinevt}
+% \begin{macrocode}
+\def\tetralinevt{\@ifnextchar[{\@tetralinevt}{\@tetralinevt[r]}}
+\def\@tetralinevt[#1]#2{%
+ \iforigpt \typeout{command `tetralinevt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevt[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinevt[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevt[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevt[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevt[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevt macro
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\tetralineh| is used for drawing tetraline derivatives
+% of horizontal type.
+%
+% The macro |\tetralineh| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *************************
+% * tetraline derivatives *
+% * (horizontal type) *
+% *************************
+%
+% \tetralineh[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT = none : tetraline
+% A : aromatic circle
+%
+% e or ea : 1,2-double bond
+% eb : 2,3-double bond
+% ec : 3,4-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for n=5 or 8
+%
+% nSa : bias bond
+% This option can be used to avoid over-crowding
+% betweem 1 and 8 or between 4 and 5.
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \tetralineh{1==Cl;2==F}
+% \tetralineh[A]{1==Cl;4==F;2==CH$_{3}$}
+% \tetralineh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\tetralineh}
+% \begin{macrocode}
+\def\tetralineh{\@ifnextchar[{\@tetralineh}{\@tetralineh[r]}}
+\def\@tetralineh[#1]#2{%
+ \iforigpt \typeout{command `tetralineh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalineh[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalineh[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalineh[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalineh[cfhk]{#2}%
+ \fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralineh macro
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Anthracene derivatives}
+% \subsection{Perhydro-anthracene derivatives of Vertical type}
+%
+% The macro |\hanthracenev| is used for drawing perhydroanthracene
+% derivatives of vertical type.
+%
+% The macro |\hanthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************************
+% * perhydro anthracene derivatives *
+% * (vertical type) *
+% ***********************************
+%
+% \hanthracenev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to p, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/14}{BONDLIST: o, O, p and P at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : hanthracene
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 10,4a-double bond
+% f : 10,10a-double bond
+% g : 5,10a-double bond
+% h : 5,6-double bond
+% i : 6,7-double bond
+% j : 8,7-double bond
+% k : 8,8a-double bond
+% l : 9,8a-double bond
+% m : 9,9a-double bond
+% n : 1,9a-double bond
+% o : 4a,9a-double bond
+% O : 4a,9a-double bond in the other ring
+% p : 10a,8a-double bond
+% P : 10a,8a-double bond in the other ring
+% A : right aromatic circle
+% B : central aromatic circle
+% C : left aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% for 11 (fused positions, 9a and 4a)
+%
+% 11FA : alpha single bond at 9a
+% 11FB : beta single bond at 9a
+% 11FU : unspecified single bond at 9a
+% 11GA : alpha single bond at 4a
+% 11GB : beta single bond at 4a
+% 11GU : unspecified single bond at 4a
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% for 12 (fused positions, 8a and 10a)
+%
+% 12FA : alpha single bond at 8a
+% 12FB : beta single bond at 8a
+% 12FU : unspecified single bond at 8a
+% 12GA : alpha single bond at 10a
+% 12GB : beta single bond at 10a
+% 12GU : unspecified single bond at 10a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \hanthracenev{1==Cl;2==F;{{10}}==OH}
+% \hanthracenev[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}FA}==OH;{{11}FB}==OH}
+% \hanthracenev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Added: fused rings}
+%
+% \begin{macro}{\hanthracenev}
+% \begin{macrocode}
+\def\hanthracenev{\@ifnextchar[{\@hanthracenev[@}{\@hanthracenev[r]}}
+\def\@hanthracenev[#1]#2{%
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-7}{0}{2}{0}% %for 8 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else\ylposition{#2}{-1}{3}{7}{0}% for 5 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{0}{0}{5}{0}% for 1 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\else
+\ylposition{#2}{-8}{0}{2}{0}%for 9-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{-6}{3}{5}{0}%for 10-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-11}{-1}{1}{0}% for 9a and 4a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% for 8a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,880)(-\shiftii,-\shifti)%
+ \origptoutput{hanthracenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 8-7
+ \Put@Line(0,406)(5,-3){171}% %bond 8-8a
+ \Put@Line(0,0)(-5,3){171}% %bond 5-6
+ \Put@Line(0,0)(5,3){171}% %bond 5-10a
+ \Put@Line(171,103)(0,1){200}% %bond 10a-8a
+ \Put@Line(-171,103)(0,1){200}% %bond 6-7
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-8a
+ \Put@Line(342,406)(5,-3){171}% %bond 9-9a
+ \Put@Line(342,0)(-5,3){171}% %bond 10-10a
+ \Put@Line(342,0)(5,3){171}% %bond 10-4a
+ \Put@Line(513,103)(0,1){200}% %bond 4a-9a
+ %%%%
+ \Put@Line(684,406)(-5,-3){171}% %bond 1-9a 1-6
+ \Put@Line(684,406)(5,-3){171}% %bond 1-2 1-2
+ \Put@Line(855,103)(0,1){200}% %bond 3-2 3-2
+ \Put@Line(684,0)(5,3){171}% %bond 4-3 4-3
+ \Put@Line(684,0)(-5,3){171}% %bond 4-4a 4-5
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(690,364)(5,-3){126}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(822,129)(0,1){148}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(690,42)(5,3){126}% %double bond 4-3
+\else\if\member d%
+ \Put@Line(690,42)(-5,3){126}% %double bond 4-4a
+\else\if\member e%
+ \Put@Line(348,42)(5,3){126}% %double bond 10-4a
+\else\if\member f%
+ \Put@Line(348,42)(-5,3){126}% %double bond 10-10a
+\else\if\member g%
+ \Put@Line(6,42)(5,3){126}% %double bond 5-10a
+\else\if\member h%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 5-6
+\else\if\member i%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member j%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 8-7
+\else\if\member k%
+ \Put@Line(6,364)(5,-3){126}% %double bond 8-8a
+\else\if\member l%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-8a
+\else\if\member m%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-9a
+\else\if\member n%
+ \Put@Line(690,364)(-5,-3){126}% %double bond 1-9a
+\else\if\member o%
+ \Put@Line(544,129)(0,1){148}% %double bond 4a-9a
+\else\if\member O%
+ \Put@Line(482,129)(0,1){148}% %double bond 4a-9a at the other ring
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 10a-8a
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 10a-8a at the other ring
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(684,203){240}% %circle
+\else
+%setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hanthrav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-7}{0}{2}{0}}% %for 8 positions
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{-1}{3}{7}{0}}% %for 5 to 7 positions
+\Put@Direct(684,0){\setsixringv{#2}{0}{0}{5}{0}}% %for 1 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{-8}{0}{2}{0}}%for 9-position
+\Put@Direct(342,0){\setsixringv{#2}{-6}{3}{5}{0}}%for 10-position
+%bonds and substituents for fused positions
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% for 8a and 10a
+\Put@Direct(342,0){\setfusedbond{#2}{-11}{-1}{1}{0}}% for 9a and 4a
+\end{sfpicture}}% %end of \hanthracenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Anthracene and anthraquinone derivatives}
+%
+% The macro |\anthracenev| is used for drawing anthracene derivatives
+% of vertical type.
+%
+% The macro |\anthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% ********************************************
+% * anthracene and anthraquinone derivatives *
+% * (vertical type) *
+% ********************************************
+%
+% \anthracenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none or r : right-handed double bonds
+% l : left-handed double bonds
+% A : aromatic circle
+%
+% p or pa : 9,10-anthraquinone (A)
+% pA : 9,10-anthraquinone (circle type)
+%
+% o : 1,2-anthraquinone (A)
+% oa : 1,2-anthraquinone (A')
+% oA : 1,2-anthraquinone (circle type)
+% ob : 2,3-antharquinone (B)
+% oc : 1,2-anthraquinone (C)
+%
+% q : 1,4-anthraquinone (A)
+% qa : 1,4-anthraquinone (A')
+% qA : 1,4-anthraquinone (circle type)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \anthracenev{1==Cl;2==F;0FA==;0GA==}
+% \anthracenev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \anthracenev[eb]{1D==O;4SA==MeO;4SB==OMe;%
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\anthracenev}
+% \begin{macrocode}
+\def\anthracenev{\@ifnextchar[{\@anthracenev}{\@anthracenev[r]}}
+\def\@anthracenev[#1]#2{%
+ \iforigpt \typeout{command `anthracenev' is %
+ based on `hanthracenev'.}\fi%
+%% \expandafter\threech@r#1{}{}%error1998/11/23 by Shinsaku Fujita
+ \expandafter\twoCH@R#1//%
+ \if\@tmpa r% right-handed set of double bonds
+ \hanthracenev[acflhjo]{#2}%
+ \else\if\@tmpa l% left-handed set of double bonds
+ \hanthracenev[acehjmp]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hanthracenev[ABC]{#2}%
+ \else\if\@tmpa p%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[achjop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[achjop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[AC]{#2}%
+ \else
+ \hanthracenev[achjop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[cfjhlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[cehjmp]{#2}%
+ \else\if\@tmpb b% (B)
+ \hanthracenev[dfhjln]{#2}%
+ \else\if\@tmpb c% (C)
+ \hanthracenev[aehjmp]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hanthracenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[bfhjlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[behjmp]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[bBC]{#2}%
+ \else%
+ \hanthracenev[behjmp]{#2}%
+ \fi\fi\fi%
+ \else
+ \hanthracenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+}% %end of \anthracenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Phenanthrene derivatives}
+% \subsection{Perhydro-phenanthrene derivatives of Vertical type}
+%
+% The macro |\hphenanthrenev| is used for drawing perhydrophenanthrene
+% derivatives of vertical type.
+%
+% The macro |\hphenanthrenev| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% *************************************
+% * perhydro phenanthrene derivatives *
+% * (vertical type) *
+% *************************************
+%
+% \hphenanthrenev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to p, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/14}{BONDLIST: o, O, p and P at the fused bond}
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : hphenanthrene
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,4a-double bond
+% e : 4a,4b-double bond
+% f : 4b,5-double bond
+% g : 5,6-double bond
+% h : 6,7-double bond
+% i : 7,8-double bond
+% j : 8,8a-double bond
+% k : 8a,9-double bond
+% l : 9,10-double bond
+% m : 10,10a-double bond
+% n : 1,10a-double bond
+% o : 4a,10a-double bond
+% O : 4a,10a-double bond in the other ring
+% p : 4b,8a-double bond
+% P : 4b,8a-double bond in the other ring
+% A : right aromatic circle
+% B : central aromatic circle
+% C : left aromatic circle
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 11 (fused positions, 4a and 10a)
+%
+% 11FA : alpha single bond at 4a
+% 11FB : beta single bond at 4a
+% 11FC : alpha single bond (downward) at 4a
+% 11FD : beta single bond (downward) at 4a
+% 11FU : unspecified single bond at 4a
+% 11GA : alpha single bond at 10a
+% 11GB : beta single bond at 10a
+% 11FC : alpha single bond (upward) at 10a
+% 11FD : beta single bond (upward) at 10a
+% 11GU : unspecified single bond at 10a
+%
+% for 12 (fused positions, 4b and 8a)
+%
+% 12FA : alpha single bond at 4b
+% 12FB : beta single bond at 4b
+% 12FU : unspecified single bond at 4b
+% 12GA : alpha single bond at 8a
+% 12GB : beta single bond at 8a
+% 12GU : unspecified single bond at 8a
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \hphenanthrenev{1==Cl;2==F;{{10}}==OH}
+% \hphenanthrenev[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}FA}==OH;{{11}FB}==OH}
+% \hphenanthrenev[eb]{1D==O;4SA==MeO;4SB==OMe;
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/15}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/23}{Added: Fused rings}
+%
+% \begin{macro}{\hphenanthrenev}
+% \begin{macrocode}
+\def\hphenanthrenev{%
+ \@ifnextchar[{\@hphenanthrenev[@}{\@hphenanthrenev[r]}}
+\def\@hphenanthrenev[#1]#2{%
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-4}{0}{2}{0}% %for 5 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#2}{12}{3}{7}{-1}% %for 6 to 8 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{13}{2}{5}{-1}% %for 9 to 10 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{4}{0}{4}{-1}% %for 1 to 3 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#2}{2}{5}{7}{0}% %for 4-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% % for 4b and 8a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-10}{0}{2}{0}% % for 4a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,1200)(-\shiftii,-\shifti)
+ \origptoutput{hphenanthrenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 6-5
+ \Put@Line(0,406)(5,-3){171}% %bond 5-4a
+ \Put@Line(0,0)(-5,3){171}% %bond 8-7
+ \Put@Line(0,0)(5,3){171}% %bond 8-8a
+ \Put@Line(171,103)(0,1){200}% %bond 8a-4b
+ \Put@Line(-171,103)(0,1){200}% %bond 7-6
+ \Put@Line(342,406)(-5,-3){171}% %bond 4a-4b
+ \Put@Line(342,406)(5,-3){171}% %bond 4a-10a
+ \Put@Line(342,0)(-5,3){171}% %bond 9-8a
+ \Put@Line(342,0)(5,3){171}% %bond 9-10
+ \Put@Line(513,103)(0,1){200}% %bond 10-10a
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 4a-4
+ \Put@Line(513,709)(-5,-3){171}% %bond 3-4
+ \Put@Line(513,709)(5,-3){171}% %bond 3-2
+ \Put@Line(684,406)(0,1){200}% %bond 1-2
+ \Put@Line(513,303)(5,3){171}% %bond 10a-1
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(651,432)(0,1){148}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(519,667)(5,-3){126}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 3-4
+\else\if\member d%
+ \Put@Line(375,432)(0,1){148}% %double bond 4a-4
+\else\if\member e%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 4a-4b
+\else\if\member f%
+ \Put@Line(6,364)(5,-3){126}% %double bond 5-4b
+\else\if\member g%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 5-6
+\else\if\member h%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member i%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 8-7
+\else\if\member j%
+ \Put@Line(6,42)(5,3){126}% %double bond 8-8a
+\else\if\member k%
+ \Put@Line(348,42)(-5,3){126}% %double bond 9-8a
+\else\if\member l%
+ \Put@Line(348,42)(5,3){126}% %double bond 9-10
+\else\if\member m%
+ \Put@Line(482,129)(0,1){148}% %double bond 10-10a
+\else\if\member n%
+ \Put@Line(519,345)(5,3){126}% %double bond 10a-1
+\else\if\member o%
+ \Put@Line(507,345)(-5,3){126}% %double bond 10a-4a
+\else\if\member O%
+ \Put@Line(348,364)(5,-3){126}% %double bond 4a-10a
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 8a-4b
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 8a-4b
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+% setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hphenanv
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-4}{0}{2}{0}}% %for 5 position
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{12}{3}{7}{-1}}% %for 6 to 8 positions
+\Put@Direct(342,0){\setsixringv{#2}{13}{2}{5}{-1}}% %for 9 to 10 positions
+\Put@Direct(513,303){\setsixringv{#2}{4}{0}{4}{-1}}% %for 1 to 3 positions
+\Put@Direct(513,303){\setsixringv{#2}{2}{5}{7}{0}}% %for 4-position
+%bonds and substituents for fused positions
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% % for 4b and 8a
+\Put@Direct(342,0){\setfusedbond{#2}{-10}{0}{2}{0}}% % for 4a and 10a
+\end{sfpicture}}% %end of \hphenanthrenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Phenanthrene and phenanthroquinone derivatives}
+%
+% The macro |\phenanthrenev| is used for drawing phenanthrene derivatives
+% of vertical type.
+%
+% The macro |\anthracenev| has an argument |SUBSLIST| as well as an optional
+% argument |OPT|. The latter designates a bond pattern in place of
+% individual exocyclic bonds.
+%
+% \begin{verbatim}
+% *********************************
+% * phenanthrene and derivatives *
+% * (vertical type) *
+% *********************************
+%
+% \phenanthrenev[OPT]{SUBSLIST}
+% \end{verbatim}
+%
+% The |OPT| argument contains one or two characters for designate
+% aromatic bond patterns or for naphthoquinone bond patterns.
+%
+% \begin{verbatim}
+% OPT (bond pattern)
+%
+% none or r : right-handed double bonds
+% A : aromatic circle
+%
+% p or pa : 1,4-quinone (A)
+% pA : 1,4-quinone (circle type)
+%
+% o or oa : 1,2-quinone (A)
+% oA : 1,2-quinone (circle type)
+% ob : 2,3-quinone (B)
+% oc : 3,4-anthraquinone (C)
+%
+% q or qa : 9,10-quinone
+% qA : 9,10-quinone (circle type)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \phenanthrenev{1==Cl;2==F}
+% \phenanthrenev[A]{1==Cl;4==F;2==CH$_{3}$}
+% \phenanthrenev[eb]{1D==O;4SA==MeO;4SB==OMe;%
+% 5W==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\phenanthrenev}
+% \begin{macrocode}
+\def\phenanthrenev{\@ifnextchar[{\@phenanthrenev}{\@phenanthrenev[r]}}
+\def\@phenanthrenev[#1]#2{%
+ \iforigpt \typeout{command `phenanthrenev' is %
+ based on `hphenantherenv'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \hphenanthrenev[acgilop]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hphenanthrenev[ABC]{#2}%
+ \else\if\@tmpa p%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[bgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[bgilop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[BCb]{#2}%
+ \else
+ \hphenanthrenev[bgilop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[cgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[cgilop]{#2}%
+ \else\if\@tmpb b% (B)
+ \hphenanthrenev[dgilnp]{#2}%
+ \else\if\@tmpb c% (C)
+ \hphenanthrenev[agilop]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hphenanthrenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[acgiop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[acgiop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[AC]{#2}%
+ \else
+ \hphenanthrenev[acgiop]{#2}%
+ \fi\fi\fi%
+ \else
+ \hphenanthrenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi%
+}% %end of \phenanthrenev macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Steroids}
+% \subsection{Steroids without a chain}
+%
+% The macro |\steroid| is used for drawing steroids.
+%
+% The macro |\steroid| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************
+% * steroid derivatives *
+% ***********************
+%
+% \steroid[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to t, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle).
+% \changes{v1.02}{1998/10/15}{BONDLIST: k, K, h, H, o and O
+% at the fused bond}
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none: steroid skeleton
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,4-double bond d : 4,5-double bond
+% e : 6,5-double bond f : 6,7-double bond
+% g : 7,8-double bond
+% h : 9,8-double bond
+% h : 9,8-double bond in the other bond
+% i : 9,10-double bond j : 1,10-double bond
+% k : 5,10-double bond
+% K : 5,10-double bond in the other bond
+% l : 9,11-double bond
+% m : 12,11-double bond n : 12,13-double bond
+% o : 14,13-double bond
+% O : 14,13-double bond in the other bond
+% p : 8,14-double bond
+% q : 14,15-double bond r : 15,16-double bond
+% s : 17,16-double bond t : 17,13-double bond
+% A : aromatic A ring B : aromatic B ring
+% C : aromatic C ring
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 17 (execpt fused positions)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% For numbers larger than 9 (two digits), you should designate
+% the SUBSLIST as
+%
+% \begin{verbatim}
+% {{11}A}==Cl;{{12}SA}==H;{{12}SB}==Cl;
+% \end{verbatim}
+%
+% \begin{verbatim}
+% for n = 5,8,9,10,13 and 14 (fused positions)
+%
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nU : unspecified single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \steroid{1==Cl;2==F;{{10}}==OH}
+% \steroid[c]{1==Cl;4==F;2==CH$_{3}$;
+% {{11}SA}==OH;{{11}SB}==OH}
+% \steroid[eb]{1D==O;4SA==MeO;4SB==OMe;
+% 5==Cl;6==Cl;7==Cl;8==Cl}
+% \end{verbatim}
+% \changes{v1.02}{1998/10/15}{The command \cs{setdecaringv} has
+% been stopped to use.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+% \changes{v2.00}{1998/12/5}{Add: fused rings}
+%
+% \begin{macro}{\steroid}
+% \begin{macro}{\yl@steroidposition}
+% \begin{macro}{\@steroidskeleton}
+% \begin{macrocode}
+\def\steroid{\@ifnextchar[{\@steroid[@}{\@steroid[Z]}}
+\def\@steroid[#1]#2{%
+%initialize bug fix 2010/10/01
+\iniatom\iniflag%initialize
+% bonds for outer skeleton
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1600,1300)(-\shiftii,-\shifti)
+ \origptoutput{steroid}%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+\end{sfpicture}}% %end of \steroid macro%
+% \end{macrocode}
+%
+% The |\yl@steroidposition| is derived from |\ylposition| and
+% |\ylatombondposition| to use in the |\steroid| command as well as
+% in the |\steroidchain| command.
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+%
+% \begin{macrocode}
+\def\yl@steroidposition#1{%
+\ylposition{#1}{0}{0}{2}{0}% %for 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#1}{8}{3}{7}{-1}% %for 2 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#1}{10}{2}{5}{-1}% %for 6 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#1}{-11}{0}{2}{0}%for 12 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{-5}{5}{7}{0}% %for 11 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{18}{0}{4}{-1}%for 15 to 17 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-855}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-4}{7}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi\else
+\ylatombondposition{#1}{-9}{1}% % for 10
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-7}{1}% % for 8
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-8}{7}% % for 9
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-13}{7}% % for 14
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-12}{1}% % for 13
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-606}\fi\fi%
+}% end of \yl@steroidposition
+% \end{macrocode}
+%
+% The |\@steroidskeleton| is separated from the definition of |\steroid|
+% so as to be used also in the definition of |\steroidchain|.
+% \changes{v1.02}{1998/10/31}{Inner commands \cs{yl@steroidposition}
+% and \cs{@steroidskeleton} are separated from the \cs{@steroid} command.}
+% \changes{v2.00}{1998/11/23}{Added: fused rings}
+%
+% \begin{macrocode}
+\def\@steroidskeleton#1#2{%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-2
+ \Put@Line(0,406)(5,-3){171}% %bond 1-10
+ \Put@Line(0,0)(-5,3){171}% %bond 4-3
+ \Put@Line(0,0)(5,3){171}% %bond 4-5
+ \Put@Line(171,103)(0,1){200}% %bond 5-10
+ \Put@Line(-171,103)(0,1){200}% %bond 3-2
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-10
+ \Put@Line(342,406)(5,-3){171}% %bond 9-8
+ \Put@Line(342,0)(-5,3){171}% %bond 6-5
+ \Put@Line(342,0)(5,3){171}% %bond 6-7
+ \Put@Line(513,103)(0,1){200}% %bond 7-8
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 9-11
+ \Put@Line(513,709)(-5,-3){171}% %bond 12-11
+ \Put@Line(513,709)(5,-3){171}% %bond 12-13
+ \Put@Line(684,406)(0,1){200}% %bond 14-13
+ \Put@Line(513,303)(5,3){171}% %bond 8-14
+ %%%%
+ \Put@Line(855,709)(-5,-3){171}% %bond 17-13
+ \Put@Line(855,709)(5,-3){171}% %bond 17-16
+ \Put@Line(1026,406)(0,1){200}% %bond 15-16
+ \Put@Line(684,406)(1,0){342}% %bond 14-15
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member Z%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-2 5-6
+\else\if\member b%
+ \Put@Line(-138,129)(0,1){148}% %double bond 3-2 6-7
+\else\if\member c%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-3 8-7
+\else\if\member d%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-5 8-8a
+\else\if\member e%
+ \Put@Line(348,42)(-5,3){126}% %double bond 6-5 9-8a
+\else\if\member f%
+ \Put@Line(348,42)(5,3){126}% %double bond 6-7 9-10
+\else\if\member g%
+ \Put@Line(482,129)(0,1){148}% %double bond 7-8 10-10a
+\else\if\member h%
+ \Put@Line(507,345)(-5,3){126}% %double bond 8-9 10a-4a
+\else\if\member H%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-8 4a-10a
+\else\if\member i%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-10 4a-4b
+\else\if\member j%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-10 5-4b
+\else\if\member k%
+ \Put@Line(138,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member K%
+ \Put@Line(204,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member l%
+ \Put@Line(375,432)(0,1){148}% %double bond 9-11 4-5
+\else\if\member m%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 12-11 3-4
+\else\if\member n%
+ \Put@Line(519,667)(5,-3){126}% %double bond 12-13 3-2
+\else\if\member o%
+ \Put@Line(651,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member O%
+ \Put@Line(717,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member p%
+ \Put@Line(519,345)(5,3){126}% %double bond 8-14 10a-1
+\else\if\member q%
+ \Put@Line(720,439)(1,0){260}% %double bond 14-15
+\else\if\member r%
+ \Put@Line(993,432)(0,1){148}% %double bond 15-16 1-2
+\else\if\member s%
+ \Put@Line(861,667)(5,-3){126}% %double bond 17-16 3-2
+\else\if\member t%
+ \Put@Line(861,667)(-5,-3){126}% %double bond 17-13 3-4
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member C%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+% setting fused rings
+ \expandafter\twoCH@R\member//%
+ \set@fusion@steroid
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%exocyclic bonds and substituents
+\iniflag
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{0}{0}{2}{0}}% %for 1
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{8}{3}{7}{-1}}% %for 2 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{10}{2}{5}{-1}}% %for 6 to 7 positions
+\Put@Direct(513,303){\setsixringv{#2}{-11}{0}{2}{0}}%for 12 position
+\Put@Direct(513,303){\setsixringv{#2}{-5}{5}{7}{0}}% %for 11 position
+\Put@Direct(855,303){\setsixringv{#2}{18}{0}{4}{-1}}%for 15 to 17 positions
+%bonds and substituents for fused positions
+\Put@Direct(171,103){\setatombond{#2}{-4}{7}}% % for 5
+\Put@Direct(171,303){\setatombond{#2}{-9}{1}}% % for 10
+\Put@Direct(513,303){\setatombond{#2}{-7}{1}}% % for 8
+\Put@Direct(342,406){\setatombond{#2}{-8}{7}}% % for 9
+\Put@Direct(684,406){\setatombond{#2}{-13}{7}}% % for 14
+\Put@Direct(684,606){\setatombond{#2}{-12}{1}}% % for 13
+}% end of \@steroidskeleton
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@fusion@steroid| is an inner command contained
+% in the definition of |\steroidskeleton|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@steroid}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@steroid}}
+% \begin{macrocode}
+\def\set@fusion@steroid{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa g%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa G%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `h'}%
+ \fi
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `H'}%
+ \fi
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \else\if\@tmpa l%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `l'}%
+ \fi
+ \else\if\@tmpa L%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `L'}%
+ \fi
+ \else\if\@tmpa m%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `n'}%
+ \fi
+ \else\if\@tmpa N%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa o%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `o'}%
+ \fi
+ \else\if\@tmpa O%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `O'}%
+ \fi
+ \else\if\@tmpa p%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa P%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa q%
+ \XyMTeXWarning{Mismatched dimension for bond `q'}%
+ \else\if\@tmpa Q%
+ \XyMTeXWarning{Mismatched dimension for bond `Q'}%
+ \else\if\@tmpa r%
+ \edef\@@tmpa{b}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa R%
+ \edef\@@tmpa{B}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa s%
+ \edef\@@tmpa{a}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa S%
+ \edef\@@tmpa{A}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa t%
+ \edef\@@tmpa{f}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `t'}%
+ \fi
+ \else\if\@tmpa T%
+ \edef\@@tmpa{F}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `T'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@steroid
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Steroids with a chain}
+%
+% The macro |\steroidchain| is used for drawing steroids.
+%
+% The macro |\steroidchain| has an argument |SUBSLIST| as well as an
+% optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% **************************************
+% * steroid derivatives having a chain *
+% **************************************
+%
+% \steroidchain[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected form a to t, each of which indicates
+% the presence of an inner (endcyclic) double bond on the corresponding
+% position. The character A, B, or C indicates an aromatic bond
+% pattern (circle). A two-character string `Z?' indicates
+% a double bond in the side-chain.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% (double bonds for the steroid skeleton)
+% none: no action on the steroid skeleton
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,4-double bond d : 4,5-double bond
+% e : 6,5-double bond f : 6,7-double bond
+% g : 7,8-double bond h : 9,8-double bond
+% i : 9,10-double bond j : 1,10-double bond
+% k : 5,10-double bond l : 9,11-double bond
+% m : 12,11-double bond n : 12,13-double bond
+% o : 14,13-double bond p : 8,14-double bond
+% q : 14,15-double bond r : 15,16-double bond
+% s : 17,16-double bond t : 17,13-double bond
+% A : aromatic A ring B : aromatic B ring
+% C : aromatic C ring
+% \end{verbatim}
+%
+% \begin{verbatim}
+% (double bonds for the side chain)
+% Z : no action
+% Za : 17,20-double bond Zb : 20,22-double bond
+% Zc : 22,23-double bond Zd : 23,24-double bond
+% Ze : 24,25-double bond Zf : 25,26-double bond
+% Zg : 25,27-double bond
+% \end{verbatim}
+%
+% For a two-character indicator, you should write the BONDLIST
+% as, e.g.
+%
+% \begin{verbatim}
+% [b{Za}{Zc}...]
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 24 (execpt fused positions)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% For numbers larger than 9 (two digits), you should designate
+% the SUBSLIST as
+%
+% \begin{verbatim}
+% {{11}A}==Cl;{{12}SA}==H;{{12}SB}==Cl; ...
+% \end{verbatim}
+%
+% \begin{verbatim}
+% for n = 5,8,9,10,13,14,and 25 (fused positions etc.)
+%
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom (boldface)
+% nB : beta single bond at n-atom (dotted line)
+% nU : unspecified single bond at n-atom
+% \end{verbatim}
+%
+% \begin{verbatim}
+% e.g.
+%
+% \steroidchain{1==Cl;2==F;{{10}}==OH}
+% \steroidchain[c]{1==Cl;4==F;2==CH$_{3}$;%
+% {{11}SA}==OH;{{11}SB}==OH}
+% \steroidchain[b]{1D==O;4SA==MeO;4SB==OMe;%
+% ;6==Cl;7==Cl;11==Cl}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw}
+% \cs{ylfusedposition},
+% \cs{yl@shiftii}, \cs{@ylii}, \cs{@@ylii}, \cs{yl@shifti}, \cs{@yli},
+% \cs{@yli}, \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v1.02}{1998/10/31}{The inner commands \cs{yl@steroidposition}
+% is used. The old \cs{steroid} is replaced by \cs{@steroidskeleton}.}
+% \changes{v2.00}{1998/11/31}{Add: fused rings}
+%
+% \begin{macro}{\steroidchain}
+% \begin{macrocode}
+\def\steroidchain{\@ifnextchar[{\@steroidchain[@}{\@steroidchain[Z]}}
+\def\@steroidchain[#1]#2{%
+%shift due to the steroid skeleton
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+%shift due to the side chain
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1197}\def\@@yli{-709}\fi\else
+\ylatombondposition{#2}{-24}{4}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidchain' is based on `steroid'.}\fi%
+\fi
+% steroid skeleton
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+% bonds for the side chain (carbons 20 to 27 (except 21))
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+ \Put@Line(1197,709)(1,0){200}% %bond 24-25
+ \Put@Line(1397,709)(3,5){103}% %bond 25-26
+ \Put@Line(1397,709)(3,-5){103}% %bond 25-27
+% double bonds along the side chain
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \else\if\@tmpb e%
+ \Put@Line(1233,742)(1,0){140}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1433,715)(3,5){72}% %double bond 25-26
+ \else\if\@tmpb g%
+ \Put@Line(1433,697)(3,-5){72}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% substitution on the side chain
+%\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+%\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}% % for 5
+\end{sfpicture}}% %end of \steroidchain macro%
+%</carom>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/carom.ins b/macros/latex/contrib/xymtex/base/carom.ins
new file mode 100644
index 0000000000..3c10ed92a6
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/carom.ins
@@ -0,0 +1,55 @@
+\def\batchfile{carom.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 1988, 2000, 2001, 2002, 2004, 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1998
+Version 2.00 Released on December 25, 1998
+Version 2.00a Released on June 14, 2000
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files carom.dtx and carom.ins
+and the derived file carom.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{carom.drv}{t}{%
+ \from{carom.dtx}{driver}}
+
+\generateFile{carom.sty}{t}{%
+ \from{carom.dtx}{carom}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/carom.sty b/macros/latex/contrib/xymtex/base/carom.sty
new file mode 100644
index 0000000000..a341c40110
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/carom.sty
@@ -0,0 +1,1378 @@
+%%
+%% This is file `carom.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carom.dtx (with options: `carom')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 1988, 2000, 2001, 2002, 2004, 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1998
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.00a Released on June 14, 2000
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files carom.dtx and carom.ins
+%% and the derived file carom.sty.
+%%
+%% =======================================
+%%
+%% File: carom.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{carom}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{decaheterov}{\input hetarom.sty\relax}{}
+\@ifundefined{decaheteroh}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+\def\cyclohexanev{\@ifnextchar[{\@cyclohexanev[@}{\@cyclohexanev[@]}}
+\def\@cyclohexanev[#1]#2{\sixheterov[#1]{}{#2}}
+\def\cyclohexaneh{\@ifnextchar[{\@cyclohexaneh[@}{\@cyclohexaneh[@]}}
+\def\@cyclohexaneh[#1]#2{\sixheteroh[#1]{}{#2}}
+\def\bzdrv{\@ifnextchar[{\@bzdrv}{\@bzdrv[r]}}
+\def\@bzdrv[#1]#2{%
+\iforigpt \typeout{command `bzdrv' is based on `cyclohexanev'.}\fi%
+\expandafter\twoCH@R#1//%
+\if\@tmpa r% right-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[bdf]{#2}%
+ \fi
+\else\if\@tmpa l%left-handed set of double bonds
+ \ifx\@tmpb\empty
+ \cyclohexanev[ace]{#2}%
+ \fi
+\else\if\@tmpa c%aromatic circle
+ \ifx\@tmpb\empty
+ \cyclohexanev[A]{#2}%
+ \fi
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexanev[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexanev[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexanev[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexanev[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexanev[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexanev[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexanev[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexanev[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexanev[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexanev[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexanev[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+}% %end of \bzdrv macro
+\let\benzenev=\bzdrv
+\def\bzdrh{\@ifnextchar[{\@bzdrh}{\@bzdrh[r]}}
+\def\@bzdrh[#1]#2{%
+\iforigpt \typeout{command `bzdrh' is based on `cyclohexaneh'.}\fi%
+\expandafter\twoCH@R#1//%
+\if\@tmpa r% right-handed set of double bonds
+ \cyclohexaneh[bdf]{#2}%
+\else\if\@tmpa l%left-handed set of double bonds
+ \cyclohexaneh[ace]{#2}%
+\else\if\@tmpa c%aromatic circle
+ \cyclohexaneh[A]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[be]{#2}%
+ \else\if\@tmpb b% (B)
+ \cyclohexaneh[cf]{#2}%
+ \else\if\@tmpb c% (C)
+ \cyclohexaneh[ad]{#2}%
+ \fi\fi\fi\fi%
+\else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \cyclohexaneh[ce]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \cyclohexaneh[ce]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \cyclohexaneh[df]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \cyclohexaneh[ae]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \cyclohexaneh[bf]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \cyclohexaneh[ac]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \cyclohexaneh[bd]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi%
+\else% added 1998/11/15 by S. Fujita
+ \cyclohexaneh[@#1]{#2}%
+\fi\fi\fi\fi\fi%
+}% %end of \bzdrh macro
+\let\benzeneh=\bzdrh
+\def\decalinev{\@ifnextchar[{\@decalinev[@}{\@decalinev[@]}}
+\def\@decalinev[#1]#2{%
+\iforigpt \typeout{command `decalinev' is based on `decaheterov'.}\fi%
+\decaheterov[#1]{}{#2}}
+\def\decalinevb{\@ifnextchar[{\@decalinevb[@}{\@decalinevb[@]}}
+\def\@decalinevb[#1]#2{%
+\iforigpt \typeout{command `decalinevb' is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{}{#2}}
+\def\decalinevt{\@ifnextchar[{\@decalinevt[@}{\@decalinevt[@]}}
+\def\@decalinevt[#1]#2{%
+\iforigpt \typeout{command `decalinevt' is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{}{#2}}
+\def\decalineh{\@ifnextchar[{\@decalineh[@}{\@decalineh[@]}}
+\def\@decalineh[#1]#2{%
+\iforigpt \typeout{command `decalineh' is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{}{#2}}
+\def\naphdrv{\@ifnextchar[{\@naphdrv}{\@naphdrv[r]}}
+\def\@naphdrv[#1]#2{%
+\iforigpt \typeout{command `naphdrv' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinev[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinev[AB]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinev[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinev[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinev[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinev[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinev[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinev[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinev[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinev[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinev[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinev[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinev[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinev[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinev[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinev[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinev[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinev[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinev[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinev[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinev[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinev[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinev[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinev[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrv macro
+\let\naphthalenev=\naphdrv
+\def\naphdrvb{\@ifnextchar[{\@naphdrvb}{\@naphdrvb[r]}}
+\def\@naphdrvb[#1]#2{%
+\iforigpt \typeout{command `naphdrvb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevb[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevb[AB]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevb[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevb[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevb[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevb[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevb[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevb[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevb[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevb[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevb[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevb[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevb[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevb[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevb[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevb[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevb[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevb[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevb[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevb[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevb[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevb[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevb[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvb macro
+\let\naphthalenevb=\naphdrvb
+\def\naphdrvt{\@ifnextchar[{\@naphdrvt}{\@naphdrvt[r]}}
+\def\@naphdrvt[#1]#2{%
+\iforigpt \typeout{command `naphdrvt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalinevt[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalinevt[AB]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalinevt[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalinevt[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalinevt[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalinevt[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+%%%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalinevt[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalinevt[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalinevt[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalinevt[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalinevt[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalinevt[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalinevt[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalinevt[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalinevt[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalinevt[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalinevt[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalinevt[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalinevt[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalinevt[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalinevt[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalinevt[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrvt macro
+\let\naphthalenevt=\naphdrvt
+\def\naphdrh{\@ifnextchar[{\@naphdrh}{\@naphdrh[r]}}
+\def\@naphdrh[#1]#2{%
+\iforigpt \typeout{command `nathdrh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+\if\@tmpa r% right-handed set of double bonds
+ \decalineh[acfhk]{#2}%
+\else\if\@tmpa A%aromatic circle
+ \decalineh[AB]{#2}%
+\else\if\@tmpa p%p-quinone
+ \if\@tmpb a% (A)
+ \decalineh[bfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[acgk]{#2}%
+ \fi\fi\fi%
+\else%
+ \if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)
+ \decalineh[cfhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[cfhk]{#2}%
+ \else\if\@tmpb b%o-quinone (B)
+ \decalineh[dfhj]{#2}%
+ \else\if\@tmpb c%o-quinone (C)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb d%o-quinone (D)
+ \decalineh[achk]{#2}%
+ \else\if\@tmpb e%o-quinone (E)
+ \decalineh[acei]{#2}%
+ \else\if\@tmpb f%o-quinone (F)
+ \decalineh[acfk]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+ \fi%
+\else\if\@tmpa q%various quinone
+ \if\@tmpb a% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\ifx\@tmpb\empty% (A)2,6-type
+ \decalineh[cehj]{#2}%
+ \else\if\@tmpb b%2,6-quinone (B)
+ \decalineh[adfi]{#2}%
+ \else\if\@tmpb c%1,5-quinone (C)
+ \decalineh[bdgi]{#2}%
+ \else\if\@tmpb d%1,5-quinone (D)
+ \decalineh[begj]{#2}%
+ \else\if\@tmpb e%1,7-quinone (E)
+ \decalineh[bdfi]{#2}%
+ \else\if\@tmpb f%1,7-quinone (F)
+ \decalineh[cegj]{#2}%
+ \else\if\@tmpb g%1,7-quinone (G)
+ \decalineh[behj]{#2}%
+ \else\if\@tmpb h%1,7-quinone (H)
+ \decalineh[adgi]{#2}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\else\if\@tmpa P%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,4,5,8-type
+ \decalineh[bgk]{#2}%
+ \else\if\@tmpb b% (B)1,2,5,8-type
+ \decalineh[cgk]{#2}%
+ \fi\fi\fi%
+\else\if\@tmpa Q%1,2,3,4
+ \decalineh[fhk]{#2}%
+\else\if\@tmpa O%quinone having 4 carbonyl groups
+ \if\@tmpb a% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\ifx\@tmpb\empty% (A)1,2,5,6-type
+ \decalineh[chk]{#2}%
+ \else\if\@tmpb b% (B)1,2,7,8-type
+ \decalineh[cfk]{#2}%
+ \else\if\@tmpb c% (C)1,2,3,5-type
+ \decalineh[dgi]{#2}%
+ \else\if\@tmpb d% (D)1,2,3,7-type
+ \decalineh[dfi]{#2}%
+ \fi\fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+}% %end of \naphdrh macro
+\let\naphthaleneh=\naphdrh
+\def\tetralinev{\@ifnextchar[{\@tetralinev}{\@tetralinev[r]}}
+\def\@tetralinev[#1]#2{%
+ \iforigpt \typeout{command `tetralinev' is based on `decalinev'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinev[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinev[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinev[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinev[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinev[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinev[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinev[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinev macro
+\def\tetralinevb{\@ifnextchar[{\@tetralinevb}{\@tetralinevb[r]}}
+\def\@tetralinevb[#1]#2{%
+ \iforigpt \typeout{command `tetralinevb' is based on `decalinevb'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevb[fhK]{#2}% %[fhK] in place of [fhk]
+ \else\if\@tmpa A%aromatic circle
+ \decalinevb[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevb[afhK]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevb[afhK]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevb[bfhK]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevb[cfhK]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevb[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevb macro
+\def\tetralinevt{\@ifnextchar[{\@tetralinevt}{\@tetralinevt[r]}}
+\def\@tetralinevt[#1]#2{%
+ \iforigpt \typeout{command `tetralinevt' is based on `decalinevt'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalinevt[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalinevt[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalinevt[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalinevt[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalinevt[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalinevt[cfhk]{#2}%
+ \fi\fi\fi\fi%
+ \else%1998/11/23 by Shinsaku Fujita
+ \decalinevt[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralinevt macro
+\def\tetralineh{\@ifnextchar[{\@tetralineh}{\@tetralineh[r]}}
+\def\@tetralineh[#1]#2{%
+ \iforigpt \typeout{command `tetralineh' is based on `decalineh'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \decalineh[fhk]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \decalineh[A]{#2}%
+ \else\if\@tmpa e%inner double bond
+ \if\@tmpb a% (A)%
+ \decalineh[afhk]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \decalineh[afhk]{#2}%
+ \else\if\@tmpb b% (B)
+ \decalineh[bfhk]{#2}%
+ \else\if\@tmpb c% (C)
+ \decalineh[cfhk]{#2}%
+ \fi\fi\fi\fi%
+\else% added 1998/11/23 by S. Fujita
+ \decalineh[@#1]{#2}%
+ \fi\fi\fi%
+}% %end of \tetralineh macro
+\def\hanthracenev{\@ifnextchar[{\@hanthracenev[@}{\@hanthracenev[r]}}
+\def\@hanthracenev[#1]#2{%
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-7}{0}{2}{0}% %for 8 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else\ylposition{#2}{-1}{3}{7}{0}% for 5 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{0}{0}{5}{0}% for 1 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\else
+\ylposition{#2}{-8}{0}{2}{0}%for 9-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{-6}{3}{5}{0}%for 10-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-11}{-1}{1}{0}% for 9a and 4a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% for 8a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,880)(-\shiftii,-\shifti)%
+ \origptoutput{hanthracenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 8-7
+ \Put@Line(0,406)(5,-3){171}% %bond 8-8a
+ \Put@Line(0,0)(-5,3){171}% %bond 5-6
+ \Put@Line(0,0)(5,3){171}% %bond 5-10a
+ \Put@Line(171,103)(0,1){200}% %bond 10a-8a
+ \Put@Line(-171,103)(0,1){200}% %bond 6-7
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-8a
+ \Put@Line(342,406)(5,-3){171}% %bond 9-9a
+ \Put@Line(342,0)(-5,3){171}% %bond 10-10a
+ \Put@Line(342,0)(5,3){171}% %bond 10-4a
+ \Put@Line(513,103)(0,1){200}% %bond 4a-9a
+ %%%%
+ \Put@Line(684,406)(-5,-3){171}% %bond 1-9a 1-6
+ \Put@Line(684,406)(5,-3){171}% %bond 1-2 1-2
+ \Put@Line(855,103)(0,1){200}% %bond 3-2 3-2
+ \Put@Line(684,0)(5,3){171}% %bond 4-3 4-3
+ \Put@Line(684,0)(-5,3){171}% %bond 4-4a 4-5
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(690,364)(5,-3){126}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(822,129)(0,1){148}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(690,42)(5,3){126}% %double bond 4-3
+\else\if\member d%
+ \Put@Line(690,42)(-5,3){126}% %double bond 4-4a
+\else\if\member e%
+ \Put@Line(348,42)(5,3){126}% %double bond 10-4a
+\else\if\member f%
+ \Put@Line(348,42)(-5,3){126}% %double bond 10-10a
+\else\if\member g%
+ \Put@Line(6,42)(5,3){126}% %double bond 5-10a
+\else\if\member h%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 5-6
+\else\if\member i%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member j%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 8-7
+\else\if\member k%
+ \Put@Line(6,364)(5,-3){126}% %double bond 8-8a
+\else\if\member l%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-8a
+\else\if\member m%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-9a
+\else\if\member n%
+ \Put@Line(690,364)(-5,-3){126}% %double bond 1-9a
+\else\if\member o%
+ \Put@Line(544,129)(0,1){148}% %double bond 4a-9a
+\else\if\member O%
+ \Put@Line(482,129)(0,1){148}% %double bond 4a-9a at the other ring
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 10a-8a
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 10a-8a at the other ring
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(684,203){240}% %circle
+\else
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hanthrav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-7}{0}{2}{0}}% %for 8 positions
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{-1}{3}{7}{0}}% %for 5 to 7 positions
+\Put@Direct(684,0){\setsixringv{#2}{0}{0}{5}{0}}% %for 1 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{-8}{0}{2}{0}}%for 9-position
+\Put@Direct(342,0){\setsixringv{#2}{-6}{3}{5}{0}}%for 10-position
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% for 8a and 10a
+\Put@Direct(342,0){\setfusedbond{#2}{-11}{-1}{1}{0}}% for 9a and 4a
+\end{sfpicture}}% %end of \hanthracenev macro%
+\def\anthracenev{\@ifnextchar[{\@anthracenev}{\@anthracenev[r]}}
+\def\@anthracenev[#1]#2{%
+ \iforigpt \typeout{command `anthracenev' is %
+ based on `hanthracenev'.}\fi%
+%% \expandafter\threech@r#1{}{}%error1998/11/23 by Shinsaku Fujita
+ \expandafter\twoCH@R#1//%
+ \if\@tmpa r% right-handed set of double bonds
+ \hanthracenev[acflhjo]{#2}%
+ \else\if\@tmpa l% left-handed set of double bonds
+ \hanthracenev[acehjmp]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hanthracenev[ABC]{#2}%
+ \else\if\@tmpa p%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[achjop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[achjop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[AC]{#2}%
+ \else
+ \hanthracenev[achjop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[cfjhlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[cehjmp]{#2}%
+ \else\if\@tmpb b% (B)
+ \hanthracenev[dfhjln]{#2}%
+ \else\if\@tmpb c% (C)
+ \hanthracenev[aehjmp]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hanthracenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hanthracenev[bfhjlo]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hanthracenev[behjmp]{#2}%
+ \else\if\@tmpb A% circle type
+ \hanthracenev[bBC]{#2}%
+ \else%
+ \hanthracenev[behjmp]{#2}%
+ \fi\fi\fi%
+ \else
+ \hanthracenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi\fi%
+}% %end of \anthracenev macro%
+\def\hphenanthrenev{%
+ \@ifnextchar[{\@hphenanthrenev[@}{\@hphenanthrenev[r]}}
+\def\@hphenanthrenev[#1]#2{%
+\@reset@ylsw\reset@@yl
+\ylposition{#2}{-4}{0}{2}{0}% %for 5 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#2}{12}{3}{7}{-1}% %for 6 to 8 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#2}{13}{2}{5}{-1}% %for 9 to 10 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#2}{4}{0}{4}{-1}% %for 1 to 3 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#2}{2}{5}{7}{0}% %for 4-position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylfusedposition{#2}{-12}{-1}{1}{0}% % for 4b and 8a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylfusedposition{#2}{-10}{0}{2}{0}% % for 4a and 10a
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1200,1200)(-\shiftii,-\shifti)
+ \origptoutput{hphenanthrenev}%
+\fi
+ \Put@Line(0,406)(-5,-3){171}% %bond 6-5
+ \Put@Line(0,406)(5,-3){171}% %bond 5-4a
+ \Put@Line(0,0)(-5,3){171}% %bond 8-7
+ \Put@Line(0,0)(5,3){171}% %bond 8-8a
+ \Put@Line(171,103)(0,1){200}% %bond 8a-4b
+ \Put@Line(-171,103)(0,1){200}% %bond 7-6
+ \Put@Line(342,406)(-5,-3){171}% %bond 4a-4b
+ \Put@Line(342,406)(5,-3){171}% %bond 4a-10a
+ \Put@Line(342,0)(-5,3){171}% %bond 9-8a
+ \Put@Line(342,0)(5,3){171}% %bond 9-10
+ \Put@Line(513,103)(0,1){200}% %bond 10-10a
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 4a-4
+ \Put@Line(513,709)(-5,-3){171}% %bond 3-4
+ \Put@Line(513,709)(5,-3){171}% %bond 3-2
+ \Put@Line(684,406)(0,1){200}% %bond 1-2
+ \Put@Line(513,303)(5,3){171}% %bond 10a-1
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(651,432)(0,1){148}% %double bond 1-2
+\else\if\member b%
+ \Put@Line(519,667)(5,-3){126}% %double bond 3-2
+\else\if\member c%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 3-4
+\else\if\member d%
+ \Put@Line(375,432)(0,1){148}% %double bond 4a-4
+\else\if\member e%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 4a-4b
+\else\if\member f%
+ \Put@Line(6,364)(5,-3){126}% %double bond 5-4b
+\else\if\member g%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 5-6
+\else\if\member h%
+ \Put@Line(-138,129)(0,1){148}% %double bond 6-7
+\else\if\member i%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 8-7
+\else\if\member j%
+ \Put@Line(6,42)(5,3){126}% %double bond 8-8a
+\else\if\member k%
+ \Put@Line(348,42)(-5,3){126}% %double bond 9-8a
+\else\if\member l%
+ \Put@Line(348,42)(5,3){126}% %double bond 9-10
+\else\if\member m%
+ \Put@Line(482,129)(0,1){148}% %double bond 10-10a
+\else\if\member n%
+ \Put@Line(519,345)(5,3){126}% %double bond 10a-1
+\else\if\member o%
+ \Put@Line(507,345)(-5,3){126}% %double bond 10a-4a
+\else\if\member O%
+ \Put@Line(348,364)(5,-3){126}% %double bond 4a-10a
+\else\if\member p%
+ \Put@Line(138,129)(0,1){148}% %double bond 8a-4b
+\else\if\member P%
+ \Put@Line(204,129)(0,1){148}% %double bond 8a-4b
+\else\if\member C%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member A%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+ \expandafter\twoCH@R\member//%
+ \set@fusion@hphenanv
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{-4}{0}{2}{0}}% %for 5 position
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{12}{3}{7}{-1}}% %for 6 to 8 positions
+\Put@Direct(342,0){\setsixringv{#2}{13}{2}{5}{-1}}% %for 9 to 10 positions
+\Put@Direct(513,303){\setsixringv{#2}{4}{0}{4}{-1}}% %for 1 to 3 positions
+\Put@Direct(513,303){\setsixringv{#2}{2}{5}{7}{0}}% %for 4-position
+\Put@Direct(0,0){\setfusedbond{#2}{-12}{-1}{1}{0}}% % for 4b and 8a
+\Put@Direct(342,0){\setfusedbond{#2}{-10}{0}{2}{0}}% % for 4a and 10a
+\end{sfpicture}}% %end of \hphenanthrenev macro%
+\def\phenanthrenev{\@ifnextchar[{\@phenanthrenev}{\@phenanthrenev[r]}}
+\def\@phenanthrenev[#1]#2{%
+ \iforigpt \typeout{command `phenanthrenev' is %
+ based on `hphenantherenv'.}\fi%
+ \expandafter\threech@r#1{}{}%
+ \if\@tmpa r% right-handed set of double bonds
+ \hphenanthrenev[acgilop]{#2}%
+ \else\if\@tmpa A%aromatic circle
+ \hphenanthrenev[ABC]{#2}%
+ \else\if\@tmpa p%1,4-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[bgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[bgilop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[BCb]{#2}%
+ \else
+ \hphenanthrenev[bgilop]{#2}%
+ \fi\fi\fi%
+ \else\if\@tmpa o%o-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[cgilop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[cgilop]{#2}%
+ \else\if\@tmpb b% (B)
+ \hphenanthrenev[dgilnp]{#2}%
+ \else\if\@tmpb c% (C)
+ \hphenanthrenev[agilop]{#2}%
+ \else\if\@tmpb A% cicle type
+ \hphenanthrenev[cBC]{#2}%
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpa q%9,10-quinone
+ \if\@tmpb a% (A)%
+ \hphenanthrenev[acgiop]{#2}%
+ \else\ifx\@tmpb\empty% (A)
+ \hphenanthrenev[acgiop]{#2}%
+ \else\if\@tmpb A% circle type
+ \hphenanthrenev[AC]{#2}%
+ \else
+ \hphenanthrenev[acgiop]{#2}%
+ \fi\fi\fi%
+ \else
+ \hphenanthrenev[@#1]{#2}%
+ \fi\fi\fi\fi\fi%
+}% %end of \phenanthrenev macro%
+\def\steroid{\@ifnextchar[{\@steroid[@}{\@steroid[Z]}}
+\def\@steroid[#1]#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1600,1300)(-\shiftii,-\shifti)
+ \origptoutput{steroid}%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+\end{sfpicture}}% %end of \steroid macro%
+\def\yl@steroidposition#1{%
+\ylposition{#1}{0}{0}{2}{0}% %for 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#1}{8}{3}{7}{-1}% %for 2 to 4 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi\else
+\ylposition{#1}{10}{2}{5}{-1}% %for 6 to 7 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\else
+\ylposition{#1}{-11}{0}{2}{0}%for 12 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{-5}{5}{7}{0}% %for 11 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylposition{#1}{18}{0}{4}{-1}%for 15 to 17 positions
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-855}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-4}{7}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi\else
+\ylatombondposition{#1}{-9}{1}% % for 10
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-7}{1}% % for 8
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-513}\def\@@yli{-303}\fi\else
+\ylatombondposition{#1}{-8}{7}% % for 9
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-13}{7}% % for 14
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-406}\fi\else
+\ylatombondposition{#1}{-12}{1}% % for 13
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{-606}\fi\fi%
+}% end of \yl@steroidposition
+\def\@steroidskeleton#1#2{%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-2
+ \Put@Line(0,406)(5,-3){171}% %bond 1-10
+ \Put@Line(0,0)(-5,3){171}% %bond 4-3
+ \Put@Line(0,0)(5,3){171}% %bond 4-5
+ \Put@Line(171,103)(0,1){200}% %bond 5-10
+ \Put@Line(-171,103)(0,1){200}% %bond 3-2
+ \Put@Line(342,406)(-5,-3){171}% %bond 9-10
+ \Put@Line(342,406)(5,-3){171}% %bond 9-8
+ \Put@Line(342,0)(-5,3){171}% %bond 6-5
+ \Put@Line(342,0)(5,3){171}% %bond 6-7
+ \Put@Line(513,103)(0,1){200}% %bond 7-8
+ %%%%
+ \Put@Line(342,406)(0,1){200}% %bond 9-11
+ \Put@Line(513,709)(-5,-3){171}% %bond 12-11
+ \Put@Line(513,709)(5,-3){171}% %bond 12-13
+ \Put@Line(684,406)(0,1){200}% %bond 14-13
+ \Put@Line(513,303)(5,3){171}% %bond 8-14
+ %%%%
+ \Put@Line(855,709)(-5,-3){171}% %bond 17-13
+ \Put@Line(855,709)(5,-3){171}% %bond 17-16
+ \Put@Line(1026,406)(0,1){200}% %bond 15-16
+ \Put@Line(684,406)(1,0){342}% %bond 14-15
+\@tfor\member:=#1\do{%
+\if\member Z%no endcyclic double bonds
+\else\if\member a%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-2 5-6
+\else\if\member b%
+ \Put@Line(-138,129)(0,1){148}% %double bond 3-2 6-7
+\else\if\member c%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-3 8-7
+\else\if\member d%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-5 8-8a
+\else\if\member e%
+ \Put@Line(348,42)(-5,3){126}% %double bond 6-5 9-8a
+\else\if\member f%
+ \Put@Line(348,42)(5,3){126}% %double bond 6-7 9-10
+\else\if\member g%
+ \Put@Line(482,129)(0,1){148}% %double bond 7-8 10-10a
+\else\if\member h%
+ \Put@Line(507,345)(-5,3){126}% %double bond 8-9 10a-4a
+\else\if\member H%
+ \Put@Line(348,364)(5,-3){126}% %double bond 9-8 4a-10a
+\else\if\member i%
+ \Put@Line(348,364)(-5,-3){126}% %double bond 9-10 4a-4b
+\else\if\member j%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-10 5-4b
+\else\if\member k%
+ \Put@Line(138,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member K%
+ \Put@Line(204,129)(0,1){148}% %double bond 5-10 8a-4b
+\else\if\member l%
+ \Put@Line(375,432)(0,1){148}% %double bond 9-11 4-5
+\else\if\member m%
+ \Put@Line(519,667)(-5,-3){126}% %double bond 12-11 3-4
+\else\if\member n%
+ \Put@Line(519,667)(5,-3){126}% %double bond 12-13 3-2
+\else\if\member o%
+ \Put@Line(651,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member O%
+ \Put@Line(717,432)(0,1){148}% %double bond 13-14 1-2
+\else\if\member p%
+ \Put@Line(519,345)(5,3){126}% %double bond 8-14 10a-1
+\else\if\member q%
+ \Put@Line(720,439)(1,0){260}% %double bond 14-15
+\else\if\member r%
+ \Put@Line(993,432)(0,1){148}% %double bond 15-16 1-2
+\else\if\member s%
+ \Put@Line(861,667)(5,-3){126}% %double bond 17-16 3-2
+\else\if\member t%
+ \Put@Line(861,667)(-5,-3){126}% %double bond 17-13 3-4
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%right aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else\if\member C%right aromatic circle
+ \Put@oCircle(513,506){240}% %circle
+\else
+ \expandafter\twoCH@R\member//%
+ \set@fusion@steroid
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\iniflag
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringv{#2}{0}{0}{2}{0}}% %for 1
+\global\drawsamesubstfalse%2002/05/30 warning off
+\Put@Direct(0,0){\setsixringv{#2}{8}{3}{7}{-1}}% %for 2 to 4 positions
+\Put@Direct(342,0){\setsixringv{#2}{10}{2}{5}{-1}}% %for 6 to 7 positions
+\Put@Direct(513,303){\setsixringv{#2}{-11}{0}{2}{0}}%for 12 position
+\Put@Direct(513,303){\setsixringv{#2}{-5}{5}{7}{0}}% %for 11 position
+\Put@Direct(855,303){\setsixringv{#2}{18}{0}{4}{-1}}%for 15 to 17 positions
+\Put@Direct(171,103){\setatombond{#2}{-4}{7}}% % for 5
+\Put@Direct(171,303){\setatombond{#2}{-9}{1}}% % for 10
+\Put@Direct(513,303){\setatombond{#2}{-7}{1}}% % for 8
+\Put@Direct(342,406){\setatombond{#2}{-8}{7}}% % for 9
+\Put@Direct(684,406){\setatombond{#2}{-13}{7}}% % for 14
+\Put@Direct(684,606){\setatombond{#2}{-12}{1}}% % for 13
+}% end of \@steroidskeleton
+\def\set@fusion@steroid{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `f'}%
+ \fi
+ \else\if\@tmpa g%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa G%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `g'}%
+ \fi
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `h'}%
+ \fi
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `H'}%
+ \fi
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \else\if\@tmpa l%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `l'}%
+ \fi
+ \else\if\@tmpa L%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `L'}%
+ \fi
+ \else\if\@tmpa m%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `n'}%
+ \fi
+ \else\if\@tmpa N%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa o%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `o'}%
+ \fi
+ \else\if\@tmpa O%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `O'}%
+ \fi
+ \else\if\@tmpa p%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa P%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `N'}%
+ \fi
+ \else\if\@tmpa q%
+ \XyMTeXWarning{Mismatched dimension for bond `q'}%
+ \else\if\@tmpa Q%
+ \XyMTeXWarning{Mismatched dimension for bond `Q'}%
+ \else\if\@tmpa r%
+ \edef\@@tmpa{b}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa R%
+ \edef\@@tmpa{B}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa s%
+ \edef\@@tmpa{a}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa S%
+ \edef\@@tmpa{A}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa t%
+ \edef\@@tmpa{f}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `t'}%
+ \fi
+ \else\if\@tmpa T%
+ \edef\@@tmpa{F}%
+ \Put@Direct(855,303){\set@fusionadd@sixv}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `T'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@steroid
+\def\steroidchain{\@ifnextchar[{\@steroidchain[@}{\@steroidchain[Z]}}
+\def\@steroidchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1197}\def\@@yli{-709}\fi\else
+\ylatombondposition{#2}{-24}{4}% % for 5
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+ \Put@Line(1197,709)(1,0){200}% %bond 24-25
+ \Put@Line(1397,709)(3,5){103}% %bond 25-26
+ \Put@Line(1397,709)(3,-5){103}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \else\if\@tmpb e%
+ \Put@Line(1233,742)(1,0){140}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1433,715)(3,5){72}% %double bond 25-26
+ \else\if\@tmpb g%
+ \Put@Line(1433,697)(3,-5){72}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}% % for 5
+\end{sfpicture}}% %end of \steroidchain macro%
+\endinput
+%%
+%% End of file `carom.sty'.
diff --git a/macros/latex/contrib/xymtex/base/ccycle.dtx b/macros/latex/contrib/xymtex/base/ccycle.dtx
new file mode 100644
index 0000000000..e059d5564e
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/ccycle.dtx
@@ -0,0 +1,3481 @@
+% \iffalse meta-comment
+%% File: ccycle.dtx
+%
+% Copyright 1993,1996,1998,2001,2002,2004,2009,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% ccycle.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files ccycle.dtx and ccycle.ins
+% and the derived file ccycle.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{March 05, 1994}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver4.04}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{April 01, 2013}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{ccycle}
+% \def\versi@ndate{June 26, 2013}
+% \def\versi@nno{ver5.01bb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{3681}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01a}{1996/06/17}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clipping information}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v3.00}{2002/04/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.02}{2004/12/20}{Wedge bonds}
+% \changes{v4.04}{2009/6/15}{Wavy bonds}
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+% \changes{v5.01b}{2013/04/01}{Wavy bonds for \cs{bornane}}
+% \changes{v5.01}{2013/06/24}{bornane, adamantane, hadamantane: front-to-back crossing}
+% \changes{v5.01}{2013/06/25}{bornane 7SU and 7SV added, bug fix}
+% \changes{v5.01}{2013/06/26}{bug fix, added 7SA, 7SB, 7Su, 7Sd}
+% \changes{v5.01}{2013/07/23}{background color}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{ccycle.dtx}[2013/07/23 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{ccycle.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Further Cyclic Compounds by {\sffamily ccycle.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{ccycle.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{ccycle:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% ccycle & ccycle.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*ccycle>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 23, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{ccycle}
+\def\versi@ndate{July 23, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for ccycle.sty}
+%
+% \begin{verbatim}
+% ********************************
+% * ccycle.sty: list of commands *
+% ********************************
+%
+% Setting of Bonds
+%
+% \@chaira (for cyclohexane chair)
+% \@chairb
+% \@chairc
+% \@chaird
+% \@chaire
+% \@chairf
+%
+% \@borna (for bornanes)
+% \@bornb
+% \@bornc
+% \@bornd
+% \@borne
+% \@bornf
+% \@borng
+%
+% Basic Macros
+%
+% \chair \@chair
+% \bicychepv \@bicychepv
+% \bicycheph \@bicycheph
+% \bornane \@bornane
+% \adamantane \@damantane
+%
+% (Added March 05, 1994 by Shinsaku Fujita)
+% Setting of Bonds
+%
+% \@chairia (for cyclohexane chair inversed)
+% \@chairib \@chairic \@chairid
+% \@chairie \@chairif
+%
+% Basic Macros
+%
+% \chairi \@chairi
+%
+% (Added June 16, 1996 by Shinsaku Fujita)
+% Setting of Bonds
+%
+% \@chairiI (for horizontal-type adamantane)
+% \@chairiII \@chairiIII \@chairiIV
+% \@chairiV \@chairiVI \@chairiVII
+% \@chairiVIII \@chairiIX \@chairiX
+%
+% Basic Macros
+%
+% \hadamantane \@hadamantane
+%
+% Macros for adjusting substitution sites (for Version 1.02)
+%
+% \ylchairposition
+% \ylchairiposition
+% \ylbornaneposition
+% \yladamanposition
+% \ylhadamanposition
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf ccycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \begin{macro}{\ifmolfront}
+% \changes{v4.02}{2004/12/20}{Avoid wedged front bonds}
+% \begin{macrocode}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Chair-form cyclohexanes}
+% \subsection{Macros for setting substituents}
+%
+% Macros |\@chaira| to |\@chairf| are used to set substituents
+% on each position of cyclohexane. Note that comments (conerning locant
+% numbers) on the end of each row have lost the exact meaning,
+% since such a command moiety is used in many macros after copying.
+%
+% \begin{macro}{\@chaira}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% **********************************************
+% * treatment of the chair form of cyclohexane *
+% **********************************************
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@chaira{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{180}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=44
+ \Put@Line(0,0)(-5,-3){144}% single bond at 1 equatorial
+ \putlatom{-160}{-130}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \putlatom{-130}{110}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(-10,-10)(-1,1){120}% double bond at 1
+ \Put@Line(10,10)(-1,1){120}% double bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairb}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@chairb{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=92
+ \Put@Line(170,-226)(0,-1){168}% single bond at 2 axial
+ \putlratom{138}{-486}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=34
+ \Put@Line(170,-226)(-5,3){144}% single bond at 2 equatorial
+ \putlatom{10}{-174}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \putlatom{40}{-416}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(160,-216)(-1,-1){120}% double bond at 2
+ \Put@Line(180,-236)(-1,-1){120}% double bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairc}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@chairc{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ \putratom{753}{21}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=-24
+ \Put@Line(573,-91)(0,1){168}% single bond at 3 axial
+ \putlratom{533}{101}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=83
+ \Put@Line(573,-91)(5,-3){144}% single bond at 3 equatorial
+ \putlatom{753}{-260}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \putratom{753}{21}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=0
+ \Put@Line(563,-83)(5,4){170}% double bond at 3
+ \Put@Line(583,-99)(5,4){170}% double bond at 3
+ \putratom{733}{41}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ \putratom{753}{21}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chaird}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@chaird{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=91
+ \Put@Line(843,-181)(0,-1){168}% single bond at 4 axial
+ \putlratom{801}{-440}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=16
+ \Put@Line(843,-181)(5,3){144}% single bond at 4 equatorial
+ \putratom{1003}{-111}{\@memberb}% right type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \putratom{953}{-371}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(833,-191)(1,-1){120}% double bond at 4
+ \Put@Line(853,-171)(1,-1){120}% double bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chaire}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@chaire{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(673,46)(1,1){120}% single bond at 5
+ \putratom{803}{158}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=-24
+ \Put@Line(673,46)(0,1){168}% single bond at 5 axial
+ \putlratom{633}{238}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=63
+ \Put@Line(673,46)(5,-3){144}% single bond at 5 equatorial
+ \putratom{823}{-103}{\@memberb}% right type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \putratom{803}{158}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(673,46)(1,1){120}% single bond at 5
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(663,53)(1,1){120}% double bond at 5
+ \Put@Line(683,38)(1,1){120}% double bond at 5
+ \putratom{803}{158}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(673,46)(5,4){170}% single bond at 5
+ \putratom{853}{158}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairf}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@chairf{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 6
+ \putlatom{100}{-280}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=92
+ \Put@Line(270,-90)(0,-1){168}% single bond at 6 axial
+ \putlratom{238}{-350}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=-14
+ \Put@Line(270,-90)(-5,3){144}% single bond at 6 equatorial
+ \putratom{100}{18}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \putlatom{100}{-280}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 6
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(260,-80)(-5,-4){170}% double bond at 2
+ \Put@Line(280,-100)(-5,-4){170}% double bond at 2
+ \putlatom{100}{-280}{\@memberb}% left or right type
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 2
+ \putlatom{100}{-280}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Drawing of Chair-form cyclohexanes}
+%
+% The standard skeleton of a chair form of cyclohexane is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (chair type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 5
+% / 3 *
+% 1 * 6 / * 4
+% * 2
+%
+% \end{verbatim}
+%
+% The macro |\chair| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \chair[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 12 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% nSa : axial single bond at n-atom
+% nSe : equatorial single bond at n-atom
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+%
+% \begin{verbatim}
+% \chair{1==Cl;2==F}
+% \chair[a]{1==Cl;4==F;2==CH$_{3}$}
+% \chair[eb]{1D==O;4Se==MeO;4Sa==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\@chair| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macros |\@chaira| to |\@chairf| described above.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylchairposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\@chair}
+% \begin{macro}{\chair}
+% \begin{macrocode}
+\def\chair{\@ifnextchar[{\@chair}{\@chair[r]}}
+\def\@chair[#1]#2{%
+\@reset@ylsw%
+\ylchairposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-500){chair}%
+(400,500)%2002/4/30 by S. Fujita
+%skeletal bonds
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(3,-4){170}% % bond 1 to 2
+ \Put@Line(170,-226)(3,1){403}% % 2 to 3
+ \Put@Line(573,-91)(3,-1){270}% % 3 to 4
+ }%
+ \thinlines%
+ \Put@Line(843,-181)(-3,4){170}% % 4 to 5
+ \Put@Line(673,46)(-3,-1){403}% % 5 to 6
+ \Put@Line(0,0)(3,-1){270}% % 1 to 6
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member a%
+ \Put@Line(76,-42)(3,-4){110}% % double bond 1 to 2
+\else \if\member b%
+ \Put@Line(200,-186)(3,1){343}% % 2 to 3
+\else \if\member c%
+ \Put@Line(603,-70)(3,-1){190}% % 3 to 4
+\else \if\member d%
+ \Put@Line(780,-141)(-3,4){110}% % 4 to 5
+\else \if\member e%
+ \Put@Line(661,6)(-3,-1){343}% % 5 to 6
+\else \if\member f%
+ \Put@Line(75,-50)(3,-1){170}% % 1 to 6
+\fi\fi\fi\fi\fi\fi\fi}%
+% setting substituents
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chaira}% subst. on 1
+% \@chaira% subst. on 1
+ \or\setBScolor{\@chairb}% subst. on 2
+% \@chairb% subst. on 2
+ \or\setBScolor{\@chairc}% subst. on 3
+% \@chairc% subst. on 3
+ \or\setBScolor{\@chaird}% subst. on 4
+% \@chaird% subst. on 4
+ \or\setBScolor{\@chaire}% subst. on 5
+% \@chaire% subst. on 5
+ \or\setBScolor{\@chairf}% subst. on 6
+% \@chairf% subst. on 6
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \chair macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylchairposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New ommands for setting substituents}
+%
+% \begin{macro}{\ylchairposition}
+% \begin{macrocode}
+\def\ylchairposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-170}\gdef\@yli{226}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-573}\gdef\@yli{91}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-843}\gdef\@yli{181}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-673}\gdef\@yli{-46}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-270}\gdef\@yli{90}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Inverse chair-form cyclohexanes}
+% \subsection{Macros for setting substituents}
+%
+% Macros |\@chairia| to |\@chairif| are used to set substituents
+% on each position of cyclohexane. Note that they corresopond to
+% the counterparts of chair-form cyclohexanes described above.
+%
+% \begin{macro}{\@chairia}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/6/15}{Adding wavy bonds}
+% \begin{macrocode}
+% ********************************************************
+% * treatment of the chair form (inverse) of cyclohexane *
+% * added March 05, 1994 by Shinsaku Fujita *
+% ********************************************************
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@chairia{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 1 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=90\relax
+ \putlatom{-130}{-210}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(-10,10)(-1,-1){120}% double bond at 1
+ \Put@Line(10,-10)(-1,-1){120}% double bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairif}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@chairif{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ \putratom{40}{316}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(170,226)(0,1){168}% single bond at 6 axial
+ \putlratom{138}{406}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 6 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \putratom{40}{316}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(160,216)(-1,1){120}% double bond at 6
+ \Put@Line(180,236)(-1,1){120}% double bond at 6
+ \putlatom{40}{316}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ \putlatom{40}{316}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairie}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@chairie{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-101}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \putratom{753}{-101}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=96
+ \Put@Line(563,83)(5,-4){170}% double bond at 5
+ \Put@Line(583,99)(5,-4){170}% double bond at 5
+ \putratom{733}{-141}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-121}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairid}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@chairid{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-11
+ \Put@Line(843,181)(0,1){168}% single bond at 4 axial
+ \putlratom{801}{360}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 4 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putratom{953}{271}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(833,191)(1,1){120}% double bond at 4
+ \Put@Line(853,171)(1,1){120}% double bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairic}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@chairic{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \Put@Line(673,-46)(1,-1){120}% single bond at 3
+ \putratom{803}{-258}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=110
+ \Put@Line(673,-46)(0,-1){168}% single bond at 3 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 3 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \putratom{803}{-258}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(673,-46)(1,-1){120}% single bond at 3
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-5
+ \yl@ydiff=96
+ \Put@Line(663,-53)(1,-1){120}% double bond at 3
+ \Put@Line(683,-38)(1,-1){120}% double bond at 3
+ \putratom{803}{-258}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(673,-46)(5,-4){170}% single bond at 3
+ \putratom{853}{-258}{\@memberb}% right type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairib}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.04}{2009/06/15}{Adding wavy bonds}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@chairib{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ \putlatom{100}{180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(270,90)(0,1){168}% single bond at 2 axial
+ \putlratom{238}{270}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=94
+ \Put@Line(270,90)(-5,-3){144}% single bond at 2 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \fi\fi\fi%
+%2009/06/15
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \putlatom{100}{180}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ }%
+%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \Put@Line(260,80)(-5,4){170}% double bond at 2
+ \Put@Line(280,100)(-5,4){170}% double bond at 2
+ \putlatom{100}{200}{\@memberb}% left or right type
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ \putlatom{100}{200}{\@memberb}% left type
+ \fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Drawing of inverse chair-form cyclohexanes}
+%
+% The standard skeleton of an inverse chair form of cyclohexane is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ***************************
+% * cyclohexane derivatives *
+% * (inverse chair type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 6 4
+% * ` 5 *
+% 1 * 2 *
+% ` 3
+%
+% \end{verbatim}
+%
+% The macro |\chairi| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \chairi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : cyclohexane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 8 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% nSa : axial single bond at n-atom
+% nSe : equatorial single bond at n-atom
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+%
+% \begin{verbatim}
+% e.g.
+%
+% \chairi[eb]{1D==O;4Se==MeO;4Sa==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\@chairi| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macros |\@chairia| to |\@chairif| described above.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylchairiposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\@chairi}
+% \begin{macro}{\chairi}
+% \begin{macrocode}
+\def\chairi{\@ifnextchar[{\@chairi}{\@chairi[r]}}
+\def\@chairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+% \@chairia% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+% \@chairib% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+% \@chairic% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+% \@chairid% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+% \@chairie% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+% \@chairif% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \chairi macro
+% End of addition 1994/03/05 SF
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylchairiposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New ommands for setting substituents}
+%
+% \begin{macro}{\ylchairiposition}
+% \begin{macrocode}
+\def\ylchairiposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-270}\gdef\@yli{-90}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-673}\gdef\@yli{46}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-843}\gdef\@yli{-181}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-573}\gdef\@yli{-91}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-170}\gdef\@yli{-226}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Bicycloheptanes}
+% \subsection{Drawing of a flat and vertical type}
+%
+% The flat-and-vertical-type skeleton of bicycloheptanes is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% *************************************
+% * bicyclo[2.2.1]heptane derivatives *
+% * (flat, vertical type) *
+% *************************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% *
+% 6 * * 2
+% | 7 |
+% | |
+% 5 * * 3
+% *
+% 4 <===== the original point
+% \end{verbatim}
+%
+% The macro |\bicyclohepv| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \bicychepv[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% In order to put dimethyl subsitutents on the top position (7),
+% the character `7' is used in the |BONDLIST|. The delocalization
+% of $\pi$-electron can be described with the character `A' written in
+% the |BONDLIST|.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : bicyclo[2.2.1]heptane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% 7 : 7,7-dimethyl
+% \end{verbatim}
+%
+% The |SUBSLIST| argument takes the standard format of \XyMTeX{}, in which
+% more substitution descriptors are separated from each other
+% by a semicolon.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 12 substitution positions)
+%
+% for n = 1 to 7
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+%
+% \begin{verbatim}
+% e.g.
+%
+% \bicychepv{1==Cl;2==F}
+% \bicychepv[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bicychepv[eb]{1D==O;4==Me;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\@bicyclohepv| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macro |\setsixringv| defined in chemstr.sty of \XyMTeX{} system.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\@bicyclohepv}
+% \begin{macro}{\bicyclohepv}
+% \begin{macrocode}
+\def\bicychepv{\@ifnextchar[{\@bicychepv}{\@bicychepv[r]}}
+\def\@bicychepv[#1]#2{%
+\@reset@ylsw%
+\ylposition{#2}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-400,-240){bicychepv}%
+(400,240)%2002/4/30 by S. Fujita
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \Put@Line(171,103)(0,1){200}% %bond 3-2
+ \Put@Line(-171,103)(0,1){200}% %bond 5-6
+{\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(1,4){51}% %bond 4-7
+ \Put@Line(0,406)(1,-4){51}}% %bond 1-7
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+\else \if\member b%
+ \Put@Line(138,129)(0,1){148}% %double bond 3-2
+\else \if\member c%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(-138,129)(0,1){148}% %double bond 5-6
+\else \if\member f%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+\else \if\member 7%
+ {\thicklines%
+ \Put@Line(51,204)(-1,0){70}% %7,7-dimethyl
+ \Put@Line(51,204)(1,0){70}}%
+\else \if\member A%aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\setsixringv{#2}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+}% %end of \bicychepv macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Drawing of a flat and horizontal type}
+%
+% The flat-and-horizontal-type skeleton of bicycloheptanes is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% *************************************
+% * bicyclo[2.2.1]heptane derivatives *
+% * (flat, horizontal type) *
+% *************************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+% -----
+% * *
+% the original point ===> 1 * 7 * 4
+% (0,0) * *
+% -----
+% 6 5
+% \end{verbatim}
+%
+% The macro |\bicycloheph| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \bicycheph[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% In order to put dimethyl subsitutents on the top position (7),
+% the character `7' is used in the |BONDLIST|. The delocalization
+% of $\pi$-electron can be described with the character `A' written in
+% the |BONDLIST|.
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : bicyclo[2.2.1]heptane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% 7 : 7,7-dimethyl
+% \end{verbatim}
+%
+% The |SUBSLIST| argument takes the standard format of \XyMTeX{}, in which
+% more substitution descriptors are separated from each other
+% by a semicolon.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 8 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specifed) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+%
+% \begin{verbatim}
+% e.g.
+%
+% \bicycheph{1==Cl;2==F}
+% \bicycheph[c]{1==Cl;4==F;2==CH$_{3}$}
+% \bicycheph[eb]{1D==O;4==Me;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\@bicycloheph| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macro |\setsixringh| defined in chemstr.sty of \XyMTeX{} system.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\@bicycloheph}
+% \begin{macro}{\bicycloheph}
+% \begin{macrocode}
+\def\bicycheph{\@ifnextchar[{\@bicycheph}{\@bicycheph[r]}}
+\def\@bicycheph[#1]#2{%
+\@reset@ylsw%
+\ylpositionh{#2}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){bicycheph}%
+(240,400)%2002/4/30 by S. Fujita
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \Put@Line(0,0)(3,-5){103}% %bond 1-6
+ \Put@Line(406,0)(-3,5){103}% %bond 4-3
+ \Put@Line(406,0)(-3,-5){103}% %bond 4-3
+ \Put@Line(103,171)(1,0){200}% %bond 2-3
+ \Put@Line(103,-171)(1,0){200}% %bond 6-5
+{\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(4,1){203}% %bond 4-7
+ \Put@Line(406,0)(-4,1){203}}% %bond 1-7
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(42,6)(3,5){78}% %double bond 1-2
+\else \if\member b%
+ \Put@Line(129,138)(1,0){148}% %double bond 2-3
+\else \if\member c%
+ \Put@Line(364,6)(-3,5){78}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(364,-6)(-3,-5){78}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(129,-138)(1,0){148}% %double bond 6-5
+\else \if\member f%
+ \Put@Line(42,-6)(3,-5){78}% %double bond 1-6
+\else \if\member 7%
+ {\thicklines%
+ \Put@Line(204,51)(0,-1){70}% %7,7-dimethyl
+ \Put@Line(204,51)(0,1){70}}%
+\else \if\member A%aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\setsixringh{#2}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+}% %end of \bicycheph macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Drawing of a stereo type}
+%
+% \subsubsection{Macros for setting substituents}
+%
+% Macros |\@borna| to |\@borng| are used to set substituents
+% on each position of bornane.
+%
+% \begin{macro}{\@borna}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Adding A, B}
+% \begin{macrocode}
+% ***********************************************
+% * setting bonds and substituents for bornanes *
+% * (bicycloe[2.2.1]heptane derivatives) *
+% ***********************************************
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@borna{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \fi\fi\fi%
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ {%
+ \WaveBonds%
+ \Put@Line(318,247)(2,5){40}% % wavy bond at 1
+ }%
+ \putratom{350}{360}{\@memberb}% % right type
+%2013/06/26
+ \else\if\@tmpb A%(A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ \dotorline(318,247)(2,5){40}/(318,247)(358,347)%
+ \putratom{350}{360}{\@memberb}% % right type
+%2013/06/26
+ \else\if\@tmpb B%(B) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ {%
+ \thicklines%
+ \Put@Line(318,247)(2,5){40}% % wavy bond at 1
+ }%
+ \putratom{350}{360}{\@memberb}% % right type
+%
+ \else%
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \fi\fi\fi\fi
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@bornb}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Bug fix exchange A and B}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@bornb{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=-5
+ {%
+ \thicklines%
+ \Put@Line(0,0)(4,3){140}% % endo (a)
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(5,-2){140}/(0,0)(140,-56)%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,-2){140}% % endo (a)
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(4,3){140}% % exo (b)
+ \putratom{140}{115}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(-10,-15)(5,2){160}%
+ \Put@Line(-5,15)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,2){160}%
+ }%
+ \putratom{170}{44}{\@memberb}% % right type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \dotorline(0,0)(5,2){160}/(0,0)(160,64)%
+ \putratom{170}{44}{\@memberb}% % right type
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,2){160}% % wavy bond at 2
+ }%
+ \putratom{170}{44}{\@memberb}% % left type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@bornc}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Bug fix exchange A and B}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@bornc{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,-2){140}%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,2){140}% % endo (a)
+ }%
+ \putratom{150}{26}{\@memberb}% % right type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \dotorline(0,0)(4,-3){140}/(0,0)(140,-105)%% exo (b)
+ \putratom{140}{-145}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \Put@Line(0,0)(4,-3){140}% % endo (a)
+ \putratom{140}{-145}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,2){140}% % exo (b)
+ \putratom{150}{26}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=50
+ \Put@Line(10,15)(5,-2){160}%
+ \Put@Line(5,-15)(5,-2){160}%
+ \putratom{170}{-124}{\@memberb}% % right type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,-2){140}% % endo (a)
+ }%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \dotorline(0,0)(5,-2){140}/(0,0)(140,-56)% exo (b)
+ \putratom{150}{-86}{\@memberb}% % right type
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,2){160}% % wavy bond at 3
+ }%
+ \putratom{170}{44}{\@memberb}% % left type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi%
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@bornd}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Adding A, B}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@bornd{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \fi\fi\fi%
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha, beta undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ {%
+ \WaveBonds%
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ }%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+%2013/06/26
+ \else\if\@tmpb A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ \dotorline(237,47)(-2,-5){40}/(237,47)(197,-53)%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+%2013/06/26
+ \else\if\@tmpb B%(B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ {%
+ \thicklines%
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ }%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+%
+ \else%
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \fi\fi\fi\fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@borne}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Bug fix exchange A and B}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@borne{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,-2){140}%
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,2){140}% % endo (a)
+ }%
+ \putlatom{-150}{26}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \dotorline(0,0)(-4,-3){140}/(0,0)(-140,-105)%% exo (b)
+ \putlatom{-140}{-145}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \Put@Line(0,0)(-4,-3){140}% % endo (a)
+ \putlatom{-140}{-145}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,2){140}% % exo (b)
+ \putlatom{-150}{26}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=64
+ \Put@Line(-10,15)(-5,-2){160}%
+ \Put@Line(-5,-15)(-5,-2){160}%
+ \putlatom{-170}{-124}{\@memberb}% % left type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-2){140}% % endo (a)
+ }%
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,-2){140}/(0,0)(-140,-56)%% exo (b)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,2){160}% wavy bond at 5
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=20
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi%
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@bornf}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Bug fix exchange A and B}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@bornf{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=-10
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-4,3){140}% % endo (a)
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,-2){140}/(0,0)(-140,-56)%% exo (b)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,-2){140}% % endo (a)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(-4,3){140}% % exo (b)
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=20
+ \Put@Line(10,-15)(-5,2){160}%
+ \Put@Line(5,15)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,2){160}%
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,2){160}/(0,0)(-160,64)%
+ \putlatom{-170}{44}{\@memberb}% % left type
+%2013/04/01
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,2){160}% wavy bond at 6
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=20
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@borng}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.01}{2013/06/26}{Adding SU, SV, SA, SB, Su, Sd}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 7 %
+% %%%%%%%%%%%%%%%
+\def\@borng{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(0,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \else\if\@tmpc a%(a) left
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(-4,3){140}% % left (a)
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) right
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(4,3){140}% % right (b)
+ \putratom{140}{115}{\@memberb}% % right type
+%2013/06/25
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-4,3){140}% % left (U)
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+%2013/06/25
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(4,3){140}% % right (V)
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+%2013/06/26
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(-4,3){140}/(0,0)(-140,105)%
+ \putlatom{-140}{115}{\@memberb}% % left type
+%2013/06/26
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(4,3){140}% %
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+%2013/06/26
+ \else\if\@tmpc u%(u) beta alternative
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-4,3){140}% %
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+%2013/06/26
+ \else\if\@tmpc d%(d) alpha alternative
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(4,3){140}/(0,0)(140,105)%
+ \putratom{140}{115}{\@memberb}% % right type
+%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi
+ %\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(-10,0)(0,1){160}%
+ \Put@Line(10,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \else%
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(0,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \fi\fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Drawing of borane derivatives}
+%
+% The stereo-type skeleton of bicycloheptanes is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ***********************************************
+% * bornane derivatives *
+% * (bicycloe[2.2.1]heptane derivatives) *
+% ***********************************************
+% The following numbering is adopted in this macro.
+%
+% 7 g
+% f / `
+% _ / - 1_ a
+% e 6 / h - 2
+% * / *
+% 5 - 4 * b
+% d c` 3
+%
+% \end{verbatim}
+%
+% The macro |\bornane| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \bornane[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to h, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : bicyclo[2.2.1]heptane
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% g : 1,7-double bond
+% h : 4,7-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument takes the standard format of \XyMTeX{}, in which
+% more substitution descriptors are separated from each other
+% by a semicolon.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 7 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+% \end{verbatim}
+%
+% The 7-position of a bornane skeleton cannot be specified by
+% capital characters `A' and `B'.
+% \begin{verbatim}
+% for n = 7 (bridge position)
+%
+% nD : exocyclic double bond at 7-atom
+% n or nS : exocyclic single bond at 7-atom
+% nSa : left single bond at 7-atom
+% nSb : right single bond at 7-atom
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+%
+% \begin{verbatim}
+% e.g.
+%
+% \bornane{1==N}{1==Cl;2==F}
+% \bornane[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \bornane[eb]{1==N}{1D==O;4==MeO;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\@bicycloheph| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macro |\@borna| to |\@borng| defined in chemstr.sty of \XyMTeX{}
+% system.
+%
+% \changes{v1.01b}{1998/10/08}{The drawing are of \cs{bornane}
+% has been changed by SF.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylbornaneposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \changes{v5.01}{2013/06/24}{bornane front-to-back crossing}
+%
+% \begin{macro}{\@bornane}
+% \begin{macro}{\iffrontthicktothin}
+% \begin{macro}{\bornane}
+% \begin{macrocode}
+\def\BackGroundColor{\color{white}}%default color for background 2013/07/23
+\newif\iffrontthicktothin \frontthicktothinfalse%default front thickline2013/06/24
+\def\bornane{\@ifnextchar[{\@bornane}{\@bornane[r]}}
+\def\@bornane[#1]#2{%
+\@reset@ylsw%
+\ylbornaneposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1000,1000)(-200,-240){bornane}%
+(200,240)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+ \Put@Line(462,-43)(2,5){80}% % bond 3 to 2 (b)
+ \Put@Line(543,157)(-5,2){225}% % bond 2 to 1 (a)
+ \Put@Line(318,247)(-5,-1){237}% % bond 1 to 6 (f)
+ \Put@Line(80,200)(-2,-5){80}% % bond 6 to 5 (e)
+ \Put@Line(318,247)(-2,5){80}% % back part of bridge (g)
+ {\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue
+ \Put@Line(0,0)(5,1){237}% % bond 5 to 4 (d)
+ \Put@Line(237,47)(5,-2){225}% % bond 4 to 3 (c)
+ {\def\thinLineWidth{5pt}\BackGroundColor% front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(237,200)(0,1){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(237,47)(0,1){400}% % front part of bridge (h)
+ }%
+% inner double bond
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member a%%%%
+ \Put@Line(513,127)(-5,2){180}% % bond 2 to 1
+\else \if\member b%%%%
+ \Put@Line(446,-3)(2,5){60}% % bond 3 to 2
+\else \if\member c%%%%
+ \Put@Line(267,77)(5,-2){180}% % bond 4 to 3
+\else \if\member d%%%%
+ \Put@Line(40,42)(5,1){180}% % double bond 5 to 4
+\else \if\member e%%%
+ \Put@Line(100,180)(-2,-5){60}% % bond 6 to 5
+\else \if\member f%
+ \Put@Line(288,207)(-5,-1){180}% % bond 1 to 6
+\else \if\member g%
+ \Put@Line(288,260)(-2,5){40}% % back part of bridge (g)
+\else \if\member h%
+ \Put@Line(257,77)(0,1){290}% % front part of bridge (h)
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@borna}% subst. on 1
+% \@borna% subst. on 1
+ \or\setBScolor{\Put@Direct(543,157){\@bornb}}% subst. on 2
+% \Put@Direct(543,157){\@bornb}% subst. on 2
+ \or\setBScolor{\Put@Direct(462,-43){\@bornc}}% subst. on 3
+% \Put@Direct(462,-43){\@bornc}% subst. on 3
+ \or\setBScolor{\@bornd}% subst. on 4
+% \@bornd% subst. on 4
+ \or\setBScolor{\Put@Direct(0,0){\@borne}}% subst. on 5
+% \Put@Direct(0,0){\@borne}% subst. on 5
+ \or\setBScolor{\Put@Direct(80,200){\@bornf}}% subst. on 6
+% \Put@Direct(80,200){\@bornf}% subst. on 6
+ \or\setBScolor{\Put@Direct(237,440){\@borng}}% subst. on 7
+% \Put@Direct(237,440){\@borng}% subst. on 7
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \bornane macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylbornaneposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New ommands for setting substituents}
+%
+% \begin{macro}{\ylbornaneposition}
+% \begin{macrocode}
+\def\ylbornaneposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-318}\gdef\@yli{-247}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-543}\gdef\@yli{-157}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-462}\gdef\@yli{43}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-237}\gdef\@yli{-47}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-80}\gdef\@yli{-200}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{-237}\gdef\@yli{-440}\global\@ylswtrue% subst. on 7
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Adamantanes}
+%
+% \subsection{Vertical drawing}
+%
+% The macros |\@adamanea| to |\@adamanej| are used to
+% set substituents on each edge of an adamantane skeleton
+% drawn by the |\adamantane| commands.
+% \changes{v1.02}{1998/10/24}{The macros \cs{@adamanea} to \cs{@adamanej}
+% are separated from the original definition of \cs{adamantane}.}
+%
+% \begin{macro}{\@adamanea}
+% \begin{macro}{\@adamaneb}
+% \begin{macro}{\@adamanec}
+% \begin{macro}{\@adamaned}
+% \begin{macro}{\@adamanee}
+% \begin{macro}{\@adamanef}
+% \begin{macro}{\@adamaneg}
+% \begin{macro}{\@adamaneh}
+% \begin{macro}{\@adamanei}
+% \begin{macro}{\@adamanej}
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@adamanea{%
+ \yl@xdiff=12
+ \yl@ydiff=21
+ \Put@Direct(-360,720){\hbox to0pt{\hss \@memberb}}% %atom 1
+ \if\@tmpb a%
+ \Put@Line(-240,660)(-4,3){108}% %bond 1
+ \else \ifx\@tmpb\empty%
+ \Put@Line(-240,660)(-4,3){108}% %bond 1
+ \fi\fi}%
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@adamaneb{%
+ \if\@tmpb a%
+ \yl@xdiff=6
+ \yl@ydiff=-16
+ \Put@Line(0,780)(1,4){26}% %bond 2-ax
+ \Put@Direct(20,900){\hbox to0pt{\@memberb \hss}}% %atom 2-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-6
+ \yl@ydiff=-16
+ \Put@Line(0,780)(-1,4){26}% %bond 2-eq
+ \Put@Direct(-20,900){\hbox to0pt{\hss \@memberb}}% %atom 2-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-22
+ \Put@Direct(-42,910){\hbox to0pt{\hss \@memberb}}% %atom 2
+ \Put@Line(0,780)(0,1){108}% %bond 2
+ \else \if\@tmpb D%
+ \yl@xdiff=42
+ \yl@ydiff=-22
+ \putlratom{-42}{910}{\@memberb}% %atom 2
+ \Put@Line(-12,780)(0,1){108}% %double bond 2
+ \Put@Line(12,780)(0,1){108}% %double bond 2
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@adamanec{%
+ \yl@xdiff=-12
+ \yl@ydiff=21
+ \Put@Direct(360,720){\hbox to0pt{\@memberb \hss}}% %atom 3
+% \if\@tmpb S%
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(240,660)(4,3){108}% %bond 3
+ \else \ifx\@tmpb\empty%
+ \Put@Line(240,660)(4,3){108}% %bond 3
+ \fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@adamaned{%
+ \if\@tmpb a%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(300,420)(4,-3){103}% %bond 4-ax
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=26
+ \yl@ydiff=-26
+ \Put@Line(300,420)(1,4){26}% %bond 4-eq
+ \Put@Direct(300,540){\hbox to0pt{\@memberb \hss}}% %atom 4-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(300,420)(4,-3){103}% %bond 4
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4
+ \else \if\@tmpb D%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(296,432)(5,-3){103}% %double bond 4
+ \Put@Line(292,408)(5,-3){103}% %double bond 4
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@adamanee{%
+ \yl@xdiff=20
+ \yl@ydiff=110
+% \if\@tmpb S%
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(60,240)(1,-5){30}% %bond 5
+ \Put@Direct(70,-20){\hbox to0pt{\@memberb \hss}}% %atom 5
+ \else \ifx\@tmpb\empty%
+ \Put@Line(60,240)(1,-5){30}% %bond 5
+ \Put@Direct(70,-20){\hbox to0pt{\@memberb \hss}}% %atom 5
+ \fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@adamanef{%
+ \if\@tmpb a%
+ \yl@xdiff=33
+ \yl@ydiff=103
+ \Put@Line(0,0)(4,-3){103}% %bond 6-ax
+ \Put@Direct(70,-180){\hbox to0pt{\@memberb \hss}}% %atom 6-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-33
+ \yl@ydiff=103
+ \Put@Line(0,0)(-4,-3){103}% %bond 6-eq
+ \Put@Direct(-70,-180){\hbox to0pt{\hss \@memberb}}% %atom 6-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=22
+ \yl@ydiff=94
+ \Put@Line(0,0)(0,-1){108}% %bond 6
+ \Put@Direct(-22,-202){\hbox to0pt{\hss \@memberb}}% %atom 6
+ \else \if\@tmpb D%
+ \yl@xdiff=42
+ \yl@ydiff=94
+ \Put@Line(-12,0)(0,-1){108}% %double bond 6
+ \Put@Line(12,0)(0,-1){108}% %double bond 6
+ \putlratom{-42}{-202}{\@memberb}% %atom 6
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 7 %
+% %%%%%%%%%%%%%%%
+\def\@adamaneg{%
+ \yl@xdiff=-20
+ \yl@ydiff=110
+% \if\@tmpb S%
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(-60,240)(-1,-5){30}% %bond 7
+ \Put@Direct(-70,-20){\hbox to0pt{\hss \@memberb}}% %atom 7
+ \else \ifx\@tmpb\empty%
+ \Put@Line(-60,240)(-1,-5){30}% %bond 7
+ \Put@Direct(-70,-20){\hbox to0pt{\hss \@memberb}}% %atom 7-eq
+ \fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 8 %
+% %%%%%%%%%%%%%%%
+\def\@adamaneh{%
+ \if\@tmpb a%
+ \yl@xdiff=17
+ \yl@ydiff=33
+ \Put@Line(-300,420)(-4,-3){103}% %bond 8-ax
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-26
+ \yl@ydiff=-16
+ \Put@Line(-300,420)(-1,4){26}% %bond 8-eq
+ \Put@Direct(-300,540){\hbox to0pt{\hss \@memberb}}% %atom 8-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=17
+ \yl@ydiff=33
+ \Put@Line(-300,420)(-4,-3){103}% %bond 8
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8
+ \else \if\@tmpb D%
+ \yl@xdiff=17
+ \yl@ydiff=50
+ \Put@Line(-300,432)(-5,-3){103}% %double bond 8
+ \Put@Line(-303,408)(-5,-3){103}% %double bond 8
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 9 %
+% %%%%%%%%%%%%%%%
+\def\@adamanei{%
+ \if\@tmpb a%
+ \yl@xdiff=-43
+ \yl@ydiff=93
+ \Put@Line(-180,420)(-4,-3){103}% %bond 9-ax
+ \Put@Direct(-240,250){\hbox to0pt{\hss \@memberb}}% %atom 9-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=26
+ \yl@ydiff=-16
+ \Put@Line(-180,420)(1,4){26}% %bond 9-eq
+ \Put@Direct(-180,540){\hbox to0pt{\@memberb \hss}}% %atom 9-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=17
+ \yl@ydiff=93
+ \Put@Line(-180,420)(-4,-3){103}% %bond 9
+ \Put@Direct(-300,250){\hbox to0pt{\hss \@memberb}}% %atom 9
+ \else \if\@tmpb D%
+ \yl@xdiff=17
+ \yl@ydiff=113
+ \Put@Line(-183,432)(-5,-3){103}% %double bond 9
+ \Put@Line(-180,408)(-5,-3){103}% %double bond 9
+ \Put@Direct(-300,250){\hbox to0pt{\hss \@memberb}}% %atom 9
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/24}{A new command for setting substituents}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%
+% % subst. on 10 %
+% %%%%%%%%%%%%%%%%
+\def\@adamanej{%
+ \if\@tmpb a%
+ \yl@xdiff=43
+ \yl@ydiff=92
+ \Put@Line(180,420)(4,-3){103}% %bond 10-ax
+ \Put@Direct(240,250){\hbox to0pt{\@memberb \hss}}% %atom 10-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-26
+ \yl@ydiff=-16
+ \Put@Line(180,420)(-1,4){26}% %bond 10-eq
+ \Put@Direct(180,540){\hbox to0pt{\hss \@memberb}}% %atom 10-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=43
+ \yl@ydiff=92
+ \Put@Line(180,420)(4,-3){103}% %bond 10
+ \Put@Direct(240,250){\hbox to0pt{\@memberb \hss}}% %atom 10
+ \else \if\@tmpb D%
+ \yl@xdiff=3
+ \yl@ydiff=112
+ \Put@Line(176,432)(5,-3){103}% %double bond 10
+ \Put@Line(172,408)(5,-3){103}% %double bond 10
+ \Put@Direct(280,250){\hbox to0pt{\@memberb \hss}}% %atom 10
+ \fi\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The stereo-type skeleton of adamantane is selected
+% to have the following specification. The |\adamantane|
+% command prints a vertical-type formula in which two bridge carbons
+% are placed at the top and the bottom.
+%
+% \begin{verbatim}
+% *************************************************
+% * For preparing adamantane derivatives *
+% * with 4 substituents on bridgehead positions *
+% * (1, 3, 5 and 7) *
+% * with 12 substituents on bridge positions *
+% * (2, 4, 6, 8, 9, 10) *
+% *************************************************
+% \end{verbatim}
+%
+% The macro |\adamantane| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \adamantane[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The adamantane skeleton scarcely takes an inner (endcyclic) double bond.
+% Hence we have
+% \begin{verbatim}
+% BONDLIST: not effective
+% \end{verbatim}
+%
+% The |SUBSLIST| argument takes the standard format of \XyMTeX{}, in which
+% more substitution descriptors are separated from each other
+% by a semicolon.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 10 substitution positions)
+%
+% for n = 1, 3, 5, and 7 (bridgeheads)
+%
+% n or na : exocyclic single bond at n-atom
+%
+% for n = 2, 4, 6, 8, 9, and 10 (bridges)
+%
+% na : exocyclic single bond at n-atom (axial)
+% nb : exocyclic single bond at n-atom (equatorial)
+% nD : exocyclic double bond at n-atom (2 and 6)
+%
+% \end{verbatim}
+%
+% For numbers larger than 9 (two digits), you should designate
+% the |SUBSLIST| as, e.g.,
+% \begin{verbatim}
+% {{10}a}==Cl; ...
+% \end{verbatim}
+%
+% The definition of |\@adamantane| uses a picture environment, in which
+% both bonds are substituents are put directly.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yladamanposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \changes{v5.01}{2013/06/24}{adamantane front-to-back crossing}
+%
+% \begin{macro}{\@adamantane}
+% \begin{macro}{\adamantane}
+% \begin{macrocode}
+% \changes{v1.02}{1998/10/24}{The macros \cs{@adamanea} to \cs{@adamanej}
+% are separated from the original definition of \cs{adamantane}.}
+\def\adamantane{\@ifnextchar[{\@mantane}{\@damantane[Z]}}
+\def\@damantane[#1]#2{%
+\@reset@ylsw%
+\yladamanposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,1300)(-550,-300){adamantane}%
+(550,300)%2002/4/30 by S. Fujita
+%bonds for an adamantane skeleton
+ \Put@Line(0,0)(-1,4){60}% %bond 6-7
+ \Put@Line(0,780)(2,-1){240}% %bond 2-3
+ \Put@Line(0,780)(-2,-1){240}% %bond 2-1
+ \Put@Line(-60,240)(-4,3){240}% %bond 7-8
+ \Put@Line(-300,420)(1,4){60}% %bond 8-1
+ \Put@Line(240,660)(-1,-4){60}% %bond 3-10
+ \Put@Line(-60,240)(4,3){240}% %bond 10-7
+{\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue%added for v4.02 (2004/12/20)
+ \Put@Line(300,420)(-1,4){60}% %bond 4-3
+ \Put@Line(-240,660)(1,-4){60}% %bond 1-9
+ \Put@Line(0,0)(1,4){60}% %bond 6-5
+ \Put@Line(60,240)(4,3){240}% %bond 5-4
+ {\def\thinLineWidth{5pt}\BackGroundColor% % front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(40,255)(-4,3){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(60,240)(-4,3){240}% %bond 5-9
+}%
+%substituents
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+\or\setBScolor{\@adamanea}% subst. on 1
+%\@adamanea% subst. on 1
+\or\setBScolor{\@adamaneb}% subst. on 2
+%\@adamaneb% subst. on 2
+\or\setBScolor{\@adamanec}% subst. on 3
+%\@adamanec% subst. on 3
+\or\setBScolor{\@adamaned}% subst. on 4
+%\@adamaned% subst. on 4
+\or\setBScolor{\@adamanee}% subst. on 5
+%\@adamanee% subst. on 5
+\or\setBScolor{\@adamanef}% subst. on 6
+%\@adamanef% subst. on 6
+\or\setBScolor{\@adamaneg}% subst. on 7
+%\@adamaneg% subst. on 7
+\or\setBScolor{\@adamaneh}% subst. on 8
+%\@adamaneh% subst. on 8
+\or\setBScolor{\@adamanei}% subst. on 9
+%\@adamanei% subst. on 9
+\or\setBScolor{\@adamanej}% subst. on 10
+%\@adamanej% subst. on 10
+\fi%the end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}% %end of \adamantane macro%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\yladamanposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New commands for setting substituents}
+%
+% \begin{macro}{\yladamanposition}
+% \begin{macrocode}
+\def\yladamanposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{240}\gdef\@yli{-660}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{0}\gdef\@yli{-780}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-240}\gdef\@yli{-660}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-300}\gdef\@yli{-420}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-60}\gdef\@yli{-240}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{60}\gdef\@yli{-240}\global\@ylswtrue% subst. on 7
+ \or\gdef\@ylii{300}\gdef\@yli{-420}\global\@ylswtrue% subst. on 8
+ \or\gdef\@ylii{180}\gdef\@yli{-420}\global\@ylswtrue% subst. on 9
+ \or\gdef\@ylii{-180}\gdef\@yli{-420}\global\@ylswtrue% subst. on 10
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Horizontal drawing}
+%
+% The stereo-type skeleton of adamantane is selected
+% to have the following specification. The |\hadamantane|
+% command prints a horizontal-type formula in which one bridge-head carbon
+% is put at the top position and a chair-form cyclohexane moiety is
+% placed at the bottom position.
+%
+% \begin{verbatim}
+% ********************************************
+% * adamantane derivatives (horizontal type) *
+% ********************************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% h // `
+% //i ` a
+% 89 `
+% g|| 2
+% ||j | b
+% f 7| l k 3
+% * | ` 10 *
+% 6 * 5 * c
+% e d` 4
+% \end{verbatim}
+%
+% \begin{verbatim}
+% *************************************************
+% * For preparing adamantane derivatives *
+% * with 4 substituents on bridgehead positions *
+% * (1, 3, 5 and 7) *
+% * with 12 substituents on bridge positions *
+% * (2, 4, 6, 8, 9, 10) *
+% *************************************************
+% \end{verbatim}
+%
+% The macro |\hadamantane| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \hadamantane[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The adamantane skeleton scarcely takes an inner (endcyclic) double bond.
+% However, we can designate |BONDLIST|. (This point is different from the
+% specification of the |\adamantane| command.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : adamantane skeleton
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,4-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,7-double bond
+% g : 7,8-double bond
+% h : 8,1-double bond
+% i : 9,1-double bond
+% j : 5,9-double bond
+% k : 3,10-double bond
+% l : 7,10-double bond
+%
+% \end{verbatim}
+%
+% The |SUBSLIST| argument takes the standard format of \XyMTeX{}, in which
+% more substitution descriptors are separated from each other
+% by a semicolon.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 10 substitution positions)
+%
+% for n = 1, 3, 5, and 7 (bridgeheads)
+%
+% n or na : exocyclic single bond at n-atom
+%
+% for n = 2, 4, 6, 8, 9, and 10 (bridges)
+%
+% na : exocyclic single bond at n-atom (axial)
+% nb : exocyclic single bond at n-atom (equatorial)
+% nD : exocyclic double bond at n-atom (2 and 6)
+%
+% \end{verbatim}
+%
+% Moreover, bond modifieer used for chair-form cyclohexanes
+% such as $n$Sa and $n$Se (see above) can be also used in the |SUBSLIST|
+% of the |\hdadamantane| command.
+%
+% For numbers larger than 9 (two digits), you should designate
+% the |SUBSLIST| as, e.g.,
+% \begin{verbatim}
+% {{10}a}==Cl; ...
+% \end{verbatim}
+%
+% The definition of |\@hadamantane| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macro |\@chairiI| to |\@chairX| defined below.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylhadamanposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \changes{v5.01}{2013/06/24}{hadamantane front-to-back crossing}
+%
+% \begin{macro}{\@hadamantane}
+% \begin{macro}{\hadamantane}
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\def\hadamantane{\@ifnextchar[{\@hadamantane}{\@hadamantane[H]}}
+\def\@hadamantane[#1]#2{%
+\@reset@ylsw%
+\ylhadamanposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,1400)(-400,-319){hadamantane}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+ \Put@Line(0,0)(3,4){170}% % bond 6 to 7
+ \Put@Line(170,226)(3,-1){403}% % 7 to 10
+ \Put@Line(573,91)(3,1){270}% % 10 to 3
+% %%%
+ \Put@Line(170,226)(0,1){360}% % 7 to 8
+ \Put@Line(170,586)(3,1){270}% % 8 to 1
+ \Put@Line(843,181)(0,1){360}% % 3 to 2
+ \Put@Line(843,541)(-3,1){403}% % 2 to 1
+ {\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue
+ \Put@Line(843,181)(-3,-4){170}% % 3 to 4
+ \Put@Line(673,-46)(-3,1){403}% % 4 to 5
+ \Put@Line(0,0)(3,1){270}% % 6 to 5
+% %%%
+ {\def\thinLineWidth{5pt}\BackGroundColor% front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(270,150)(0,1){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(270,90)(0,1){360}% % 5 to 9
+ \Put@Line(270,450)(3,4){170}% % 9 to 1
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endocyclic bonds
+\else \if\member a%
+ \Put@Line(450,636)(3,-1){373}% % double bond 1 to 2
+\else \if\member b%
+ \Put@Line(803,206)(0,1){320}% % 3 to 2
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % 3 to 4
+\else \if\member d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member g%
+ \Put@Line(200,246)(0,1){320}% % 7 to 8
+\else \if\member h%
+ \Put@Line(400,626)(-3,-1){190}% % 8 to 1
+\else \if\member i%
+ \Put@Line(450,636)(-3,-4){150}% % 9 to 1
+\else \if\member j%
+ \Put@Line(300,110)(0,1){320}% % 5 to 9
+\else \if\member k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 3 to 10
+\else \if\member l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa% %0 omit
+ \or\setBScolor{\Put@Direct(440,676){\@chairiI}}% %subst. on 1%%%9
+% \Put@Direct(440,676){\@chairiI}% %subst. on 1%%%9
+ \or\setBScolor{\Put@Direct(843,541){\@chairiII}}% %subst. on 2%%10
+% \Put@Direct(843,541){\@chairiII}% %subst. on 2%%10
+ \or\setBScolor{\@chairiIII}% %subst. on 3%%%4
+% \@chairiIII% %subst. on 3%%%4
+ \or\setBScolor{\@chairiIV}% %subst. on 4%%%3
+% \@chairiIV% %subst. on 4%%%3
+ \or\setBScolor{\@chairiV}% %subst. on 5%%%2
+% \@chairiV% %subst. on 5%%%2
+ \or
+ \setBScolor{\@chairiVI}% %subst. on 6%%%1
+% \@chairiVI% %subst. on 6%%%1
+ \or\setBScolor{\@chairiVII}% %subst. on 7%%%6
+% \@chairiVII% %subst. on 7%%%6
+ \or\setBScolor{\Put@Direct(170,586){\@chairiVIII}}%subst. on 8%%%8
+% \Put@Direct(170,586){\@chairiVIII}%subst. on 8%%%8
+ \or\setBScolor{\Put@Direct(270,450){\@chairiIX}}% %subst. on 9%%%7
+% \Put@Direct(270,450){\@chairiIX}% %subst. on 9%%%7
+ \or\setBScolor{\@chairiX}% %subst. on 10%%5
+% \@chairiX% %subst. on 10%%5
+\fi %end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \hadamantane macro
+% End of addition 1994/03/05 SF
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylhadamanposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New commands for setting substituents}
+%
+% \begin{macro}{\ylhadamanposition}
+% \begin{macrocode}
+\def\ylhadamanposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-440}\gdef\@yli{-676}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-843}\gdef\@yli{-541}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-843}\gdef\@yli{-181}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-673}\gdef\@yli{46}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-270}\gdef\@yli{-90}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{-170}\gdef\@yli{-226}\global\@ylswtrue% subst. on 7
+ \or\gdef\@ylii{-170}\gdef\@yli{-586}\global\@ylswtrue% subst. on 8
+ \or\gdef\@ylii{-270}\gdef\@yli{-450}\global\@ylswtrue% subst. on 9
+ \or\gdef\@ylii{-573}\gdef\@yli{-91}\global\@ylswtrue% subst. on 10
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% Hereafter, the definitions of the commands |\@chairiI| to |\@chairiX|
+% are described. Each of the commands can treat $n$a-type bond modifiers
+% as well as $n$Sa-type bond modifiers.
+%
+% \begin{macro}{\@chairiVI}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% ********************************************************
+% * treatment of the chair form (inverse) of cyclohexane *
+% * added March 05, 1994 by Shinsaku Fujita *
+% ********************************************************
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@chairiVI{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 6 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 6 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 6
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 6 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 6 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \Put@Line(-10,10)(-1,-1){120}% double bond at 6
+ \Put@Line(10,-10)(-1,-1){120}% double bond at 6
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \Put@Line(0,0)(-1,-1){120}% single bond at 6
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiVII}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 7 %
+% %%%%%%%%%%%%%%%
+\def\@chairiVII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 7
+ \putratom{40}{316}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=12
+ \Put@Line(170,226)(0,1){168}% single bond at 7 axial
+ \putlratom{138}{406}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putlatom{40}{316}{\@memberb}% left type
+ \Put@Line(160,216)(-1,1){120}% double bond at 7
+ \Put@Line(180,236)(-1,1){120}% double bond at 7
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putlatom{40}{316}{\@memberb}% left type
+ \Put@Line(170,226)(-1,1){120}% single bond at 7
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiX}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%
+% % subst. on 10 %
+% %%%%%%%%%%%%%%%%
+\def\@chairiX{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=56
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-101}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=86
+ \putratom{733}{-141}{\@memberb}% right type
+ \Put@Line(563,83)(5,-4){170}% double bond at 5
+ \Put@Line(583,99)(5,-4){170}% double bond at 5
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-121}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiIII}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@chairiIII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 3
+ \putratom{953}{271}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=11
+ \Put@Line(843,181)(0,1){168}% single bond at 3 axial
+ \putlratom{801}{360}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \putratom{953}{271}{\@memberb}% right type
+ \Put@Line(833,191)(1,1){120}% double bond at 3
+ \Put@Line(853,171)(1,1){120}% double bond at 3
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 3
+ \putratom{953}{271}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiIV}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@chairiIV{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(673,-46)(0,-1){168}% single bond at 4 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 4 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \Put@Line(673,-46)(1,-1){120}% single bond at 4
+ \putratom{803}{-258}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(673,-46)(0,-1){168}% single bond at 4 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 4 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \putratom{803}{-258}{\@memberb}% right type
+ \Put@Line(663,-53)(1,-1){120}% double bond at 4
+ \Put@Line(683,-38)(1,-1){120}% double bond at 4
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(673,-46)(5,-4){170}% single bond at 4
+ \putratom{853}{-258}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiV}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@chairiV{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=26
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=26
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \Put@Line(270,90)(-5,4){170}% single bond at 5
+ \putlatom{100}{180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=12
+ \Put@Line(270,90)(0,1){168}% single bond at 5 axial
+ \putlratom{238}{270}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=36
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=36
+ \putlatom{100}{200}{\@memberb}% left or right type
+ \Put@Line(260,80)(-5,4){170}% double bond at 5
+ \Put@Line(280,100)(-5,4){170}% double bond at 5
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \putlatom{100}{200}{\@memberb}% left type
+ \Put@Line(270,90)(-5,4){170}% single bond at 5
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@chairiI}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@chairiI{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\ifx\@tmpb\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiII}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%%
+\def\@chairiII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=13
+ \Put@Line(0,0)(3,1){190}% single bond at 6 equatorial
+ \putratom{200}{50}{\@memberb}% right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{130}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-10
+ \yl@ydiff=13
+ \Put@Line(0,0)(3,1){190}% single bond at 6 equatorial
+ \putratom{200}{50}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \putratom{130}{130}{\@memberb}% left type
+ \Put@Line(-10,10)(1,1){120}% double bond at 1
+ \Put@Line(10,-10)(1,1){120}% double bond at 1
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \putratom{130}{130}{\@memberb}% left type
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairigVIII}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 8 %
+% %%%%%%%%%%%%%%%
+\def\@chairiVIII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \else\if\@tmpc e% right-hand
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpc a% left-hand
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=4
+ \yl@ydiff=26
+ \putlatom{-140}{60}{\@memberb}% left type
+ \Put@Line(10,10)(-5,3){144}% single bond at 1 equatorial
+ \Put@Line(0,-10)(-5,3){144}% single bond at 1 equatorial
+ \else%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \fi\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chairiIX}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 9 %
+% %%%%%%%%%%%%%%%
+\def\@chairiIX{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=36
+ \Put@Line(0,0)(5,3){144}% single bond at 6 equatorial
+ \putratom{160}{50}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \else\if\@tmpc e% right-hand
+ \yl@xdiff=-16
+ \yl@ydiff=36
+ \Put@Line(0,0)(5,3){144}% single bond at 6 equatorial
+ \putratom{160}{50}{\@memberb}% left type
+ \else\if\@tmpc a% left-hand
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \putlatom{-140}{50}{\@memberb}% left type
+ \Put@Line(10,10)(-5,3){144}% single bond at 1 equatorial
+ \Put@Line(0,-10)(-5,3){144}% single bond at 1 equatorial
+ \else%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \fi\fi\fi\fi}%
+%</ccycle>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/ccycle.ins b/macros/latex/contrib/xymtex/base/ccycle.ins
new file mode 100644
index 0000000000..ee9cc61926
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/ccycle.ins
@@ -0,0 +1,59 @@
+\def\batchfile{ccycle.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996,1998,2001,2002, 2004, 2009, 2010, 2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+Version 4.02 Released on December 20, 2004
+Version 4.04 Released on June 15, 2009
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on April 01, 2013
+Version 5.01bb Released on June 26, 2013
+
+The Present Version:
+Version 5.01 Released on July 23, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files ccycle.dtx and ccycle.ins
+and the derived file ccycle.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{ccycle.drv}{t}{%
+ \from{ccycle.dtx}{driver}}
+
+\generateFile{ccycle.sty}{t}{%
+ \from{ccycle.dtx}{ccycle}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/ccycle.sty b/macros/latex/contrib/xymtex/base/ccycle.sty
new file mode 100644
index 0000000000..54ead8ab35
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/ccycle.sty
@@ -0,0 +1,2007 @@
+%%
+%% This is file `ccycle.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ccycle.dtx (with options: `ccycle')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996,1998,2001,2002, 2004, 2009, 2010, 2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%% Version 4.02 Released on December 20, 2004
+%% Version 4.04 Released on June 15, 2009
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on April 01, 2013
+%% Version 5.01bb Released on June 26, 2013
+%%
+%% The Present Version:
+%% Version 5.01 Released on July 23, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files ccycle.dtx and ccycle.ins
+%% and the derived file ccycle.sty.
+%%
+%% =======================================
+%%
+%% File: ccycle.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 23, 2013 by Shinsaku Fujita}
+\def\j@urnalname{ccycle}
+\def\versi@ndate{July 23, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\def\@chaira{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{180}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=44
+ \Put@Line(0,0)(-5,-3){144}% single bond at 1 equatorial
+ \putlatom{-160}{-130}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \putlatom{-130}{110}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(-10,-10)(-1,1){120}% double bond at 1
+ \Put@Line(10,10)(-1,1){120}% double bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\@chairb{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=92
+ \Put@Line(170,-226)(0,-1){168}% single bond at 2 axial
+ \putlratom{138}{-486}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=34
+ \Put@Line(170,-226)(-5,3){144}% single bond at 2 equatorial
+ \putlatom{10}{-174}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \putlatom{40}{-416}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(160,-216)(-1,-1){120}% double bond at 2
+ \Put@Line(180,-236)(-1,-1){120}% double bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(170,-226)(-1,-1){120}% single bond at 2
+ \putlatom{40}{-416}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\@chairc{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ \putratom{753}{21}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=-24
+ \Put@Line(573,-91)(0,1){168}% single bond at 3 axial
+ \putlratom{533}{101}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=83
+ \Put@Line(573,-91)(5,-3){144}% single bond at 3 equatorial
+ \putlatom{753}{-260}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \putratom{753}{21}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=0
+ \Put@Line(563,-83)(5,4){170}% double bond at 3
+ \Put@Line(583,-99)(5,4){170}% double bond at 3
+ \putratom{733}{41}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(573,-91)(5,4){170}% single bond at 3
+ \putratom{753}{21}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chaird{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=91
+ \Put@Line(843,-181)(0,-1){168}% single bond at 4 axial
+ \putlratom{801}{-440}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=16
+ \Put@Line(843,-181)(5,3){144}% single bond at 4 equatorial
+ \putratom{1003}{-111}{\@memberb}% right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \putratom{953}{-371}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(833,-191)(1,-1){120}% double bond at 4
+ \Put@Line(853,-171)(1,-1){120}% double bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=70
+ \Put@Line(843,-181)(1,-1){120}% single bond at 4
+ \putratom{953}{-371}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chaire{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(673,46)(1,1){120}% single bond at 5
+ \putratom{803}{158}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=-24
+ \Put@Line(673,46)(0,1){168}% single bond at 5 axial
+ \putlratom{633}{238}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=63
+ \Put@Line(673,46)(5,-3){144}% single bond at 5 equatorial
+ \putratom{823}{-103}{\@memberb}% right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \putratom{803}{158}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(673,46)(1,1){120}% single bond at 5
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(663,53)(1,1){120}% double bond at 5
+ \Put@Line(683,38)(1,1){120}% double bond at 5
+ \putratom{803}{158}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=24
+ \Put@Line(673,46)(5,4){170}% single bond at 5
+ \putratom{853}{158}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chairf{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 6
+ \putlatom{100}{-280}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=92
+ \Put@Line(270,-90)(0,-1){168}% single bond at 6 axial
+ \putlratom{238}{-350}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=-14
+ \Put@Line(270,-90)(-5,3){144}% single bond at 6 equatorial
+ \putratom{100}{18}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \putlatom{100}{-280}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 6
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(260,-80)(-5,-4){170}% double bond at 2
+ \Put@Line(280,-100)(-5,-4){170}% double bond at 2
+ \putlatom{100}{-280}{\@memberb}% left or right type
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=54
+ \Put@Line(270,-90)(-5,-4){170}% single bond at 2
+ \putlatom{100}{-280}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\chair{\@ifnextchar[{\@chair}{\@chair[r]}}
+\def\@chair[#1]#2{%
+\@reset@ylsw%
+\ylchairposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-500){chair}%
+(400,500)%2002/4/30 by S. Fujita
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(3,-4){170}% % bond 1 to 2
+ \Put@Line(170,-226)(3,1){403}% % 2 to 3
+ \Put@Line(573,-91)(3,-1){270}% % 3 to 4
+ }%
+ \thinlines%
+ \Put@Line(843,-181)(-3,4){170}% % 4 to 5
+ \Put@Line(673,46)(-3,-1){403}% % 5 to 6
+ \Put@Line(0,0)(3,-1){270}% % 1 to 6
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member a%
+ \Put@Line(76,-42)(3,-4){110}% % double bond 1 to 2
+\else \if\member b%
+ \Put@Line(200,-186)(3,1){343}% % 2 to 3
+\else \if\member c%
+ \Put@Line(603,-70)(3,-1){190}% % 3 to 4
+\else \if\member d%
+ \Put@Line(780,-141)(-3,4){110}% % 4 to 5
+\else \if\member e%
+ \Put@Line(661,6)(-3,-1){343}% % 5 to 6
+\else \if\member f%
+ \Put@Line(75,-50)(3,-1){170}% % 1 to 6
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chaira}% subst. on 1
+ \or\setBScolor{\@chairb}% subst. on 2
+ \or\setBScolor{\@chairc}% subst. on 3
+ \or\setBScolor{\@chaird}% subst. on 4
+ \or\setBScolor{\@chaire}% subst. on 5
+ \or\setBScolor{\@chairf}% subst. on 6
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \chair macro
+\def\ylchairposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-170}\gdef\@yli{226}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-573}\gdef\@yli{91}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-843}\gdef\@yli{181}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-673}\gdef\@yli{-46}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-270}\gdef\@yli{90}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\@chairia{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 1 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=90\relax
+ \putlatom{-130}{-210}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(-10,10)(-1,-1){120}% double bond at 1
+ \Put@Line(10,-10)(-1,-1){120}% double bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\@chairif{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ \putratom{40}{316}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(170,226)(0,1){168}% single bond at 6 axial
+ \putlratom{138}{406}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 6 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \putratom{40}{316}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(160,216)(-1,1){120}% double bond at 6
+ \Put@Line(180,236)(-1,1){120}% double bond at 6
+ \putlatom{40}{316}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 6
+ \putlatom{40}{316}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\@chairie{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-101}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \putratom{753}{-101}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=96
+ \Put@Line(563,83)(5,-4){170}% double bond at 5
+ \Put@Line(583,99)(5,-4){170}% double bond at 5
+ \putratom{733}{-141}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-121}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chairid{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-11
+ \Put@Line(843,181)(0,1){168}% single bond at 4 axial
+ \putlratom{801}{360}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 4 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putratom{953}{271}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(833,191)(1,1){120}% double bond at 4
+ \Put@Line(853,171)(1,1){120}% double bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 4
+ \putratom{953}{271}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chairic{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \Put@Line(673,-46)(1,-1){120}% single bond at 3
+ \putratom{803}{-258}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=110
+ \Put@Line(673,-46)(0,-1){168}% single bond at 3 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 3 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \putratom{803}{-258}{\@memberb}% right type
+ {%
+ \WaveBonds%
+ \Put@Line(673,-46)(1,-1){120}% single bond at 3
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-5
+ \yl@ydiff=96
+ \Put@Line(663,-53)(1,-1){120}% double bond at 3
+ \Put@Line(683,-38)(1,-1){120}% double bond at 3
+ \putratom{803}{-258}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(673,-46)(5,-4){170}% single bond at 3
+ \putratom{853}{-258}{\@memberb}% right type
+ \fi\fi\fi}%
+\def\@chairib{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ \putlatom{100}{180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(270,90)(0,1){168}% single bond at 2 axial
+ \putlratom{238}{270}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=94
+ \Put@Line(270,90)(-5,-3){144}% single bond at 2 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \putlatom{100}{180}{\@memberb}% left type
+ {%
+ \WaveBonds%
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ }%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \Put@Line(260,80)(-5,4){170}% double bond at 2
+ \Put@Line(280,100)(-5,4){170}% double bond at 2
+ \putlatom{100}{200}{\@memberb}% left or right type
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \Put@Line(270,90)(-5,4){170}% single bond at 2
+ \putlatom{100}{200}{\@memberb}% left type
+ \fi\fi\fi}%
+\def\chairi{\@ifnextchar[{\@chairi}{\@chairi[r]}}
+\def\@chairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \chairi macro
+\def\ylchairiposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-270}\gdef\@yli{-90}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-673}\gdef\@yli{46}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-843}\gdef\@yli{-181}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-573}\gdef\@yli{-91}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-170}\gdef\@yli{-226}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\bicychepv{\@ifnextchar[{\@bicychepv}{\@bicychepv[r]}}
+\def\@bicychepv[#1]#2{%
+\@reset@ylsw%
+\ylposition{#2}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-400,-240){bicychepv}%
+(400,240)%2002/4/30 by S. Fujita
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \Put@Line(171,103)(0,1){200}% %bond 3-2
+ \Put@Line(-171,103)(0,1){200}% %bond 5-6
+{\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(1,4){51}% %bond 4-7
+ \Put@Line(0,406)(1,-4){51}}% %bond 1-7
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+\else \if\member b%
+ \Put@Line(138,129)(0,1){148}% %double bond 3-2
+\else \if\member c%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(-138,129)(0,1){148}% %double bond 5-6
+\else \if\member f%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+\else \if\member 7%
+ {\thicklines%
+ \Put@Line(51,204)(-1,0){70}% %7,7-dimethyl
+ \Put@Line(51,204)(1,0){70}}%
+\else \if\member A%aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\setsixringv{#2}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+}% %end of \bicychepv macro
+\def\bicycheph{\@ifnextchar[{\@bicycheph}{\@bicycheph[r]}}
+\def\@bicycheph[#1]#2{%
+\@reset@ylsw%
+\ylpositionh{#2}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){bicycheph}%
+(240,400)%2002/4/30 by S. Fujita
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \Put@Line(0,0)(3,-5){103}% %bond 1-6
+ \Put@Line(406,0)(-3,5){103}% %bond 4-3
+ \Put@Line(406,0)(-3,-5){103}% %bond 4-3
+ \Put@Line(103,171)(1,0){200}% %bond 2-3
+ \Put@Line(103,-171)(1,0){200}% %bond 6-5
+{\thicklines%
+ \molfronttrue%
+ \Put@Line(0,0)(4,1){203}% %bond 4-7
+ \Put@Line(406,0)(-4,1){203}}% %bond 1-7
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(42,6)(3,5){78}% %double bond 1-2
+\else \if\member b%
+ \Put@Line(129,138)(1,0){148}% %double bond 2-3
+\else \if\member c%
+ \Put@Line(364,6)(-3,5){78}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(364,-6)(-3,-5){78}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(129,-138)(1,0){148}% %double bond 6-5
+\else \if\member f%
+ \Put@Line(42,-6)(3,-5){78}% %double bond 1-6
+\else \if\member 7%
+ {\thicklines%
+ \Put@Line(204,51)(0,-1){70}% %7,7-dimethyl
+ \Put@Line(204,51)(0,1){70}}%
+\else \if\member A%aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\setsixringh{#2}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+}% %end of \bicycheph macro
+\def\@borna{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ {%
+ \WaveBonds%
+ \Put@Line(318,247)(2,5){40}% % wavy bond at 1
+ }%
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpb A%(A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ \dotorline(318,247)(2,5){40}/(318,247)(358,347)%
+ \putratom{350}{360}{\@memberb}% % right type
+ \else\if\@tmpb B%(B) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=3\relax
+ {%
+ \thicklines%
+ \Put@Line(318,247)(2,5){40}% % wavy bond at 1
+ }%
+ \putratom{350}{360}{\@memberb}% % right type
+ \else%
+ \yl@xdiff=8
+ \yl@ydiff=3
+ \Put@Line(318,247)(2,5){40}% % single bond 1
+ \putratom{350}{360}{\@memberb}% % right type
+ \fi\fi\fi\fi
+ }%
+\def\@bornb{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=-5
+ {%
+ \thicklines%
+ \Put@Line(0,0)(4,3){140}% % endo (a)
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(5,-2){140}/(0,0)(140,-56)%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,-2){140}% % endo (a)
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(4,3){140}% % exo (b)
+ \putratom{140}{115}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(-10,-15)(5,2){160}%
+ \Put@Line(-5,15)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,2){160}%
+ }%
+ \putratom{170}{44}{\@memberb}% % right type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \dotorline(0,0)(5,2){160}/(0,0)(160,64)%
+ \putratom{170}{44}{\@memberb}% % right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,2){160}% % wavy bond at 2
+ }%
+ \putratom{170}{44}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi\end{sfpicture}}%
+\def\@bornc{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,-2){140}%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,2){140}% % endo (a)
+ }%
+ \putratom{150}{26}{\@memberb}% % right type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \dotorline(0,0)(4,-3){140}/(0,0)(140,-105)%% exo (b)
+ \putratom{140}{-145}{\@memberb}% % right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \Put@Line(0,0)(4,-3){140}% % endo (a)
+ \putratom{140}{-145}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(5,2){140}% % exo (b)
+ \putratom{150}{26}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=50
+ \Put@Line(10,15)(5,-2){160}%
+ \Put@Line(5,-15)(5,-2){160}%
+ \putratom{170}{-124}{\@memberb}% % right type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,-2){140}% % endo (a)
+ }%
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \dotorline(0,0)(5,-2){140}/(0,0)(140,-56)% exo (b)
+ \putratom{150}{-86}{\@memberb}% % right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,2){160}% % wavy bond at 3
+ }%
+ \putratom{170}{44}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=20
+ \Put@Line(0,0)(5,2){160}%
+ \putratom{170}{44}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi%
+\end{sfpicture}}%
+\def\@bornd{%
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \fi\fi\fi%
+ \else\if\@tmpb U%(U) alpha, beta undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ {%
+ \WaveBonds%
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ }%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpb A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ \dotorline(237,47)(-2,-5){40}/(237,47)(197,-53)%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else\if\@tmpb B%(B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=87\relax
+ {%
+ \thicklines%
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ }%
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \else%
+ \yl@xdiff=30
+ \yl@ydiff=87
+ \Put@Line(237,47)(-2,-5){40}% % single bond 4
+ \putlratom{167}{-150}{\@memberb}% % left & right type
+ \fi\fi\fi\fi%
+ }%
+\def\@borne{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,-2){140}%
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,2){140}% % endo (a)
+ }%
+ \putlatom{-150}{26}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=40
+ \dotorline(0,0)(-4,-3){140}/(0,0)(-140,-105)%% exo (b)
+ \putlatom{-140}{-145}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \Put@Line(0,0)(-4,-3){140}% % endo (a)
+ \putlatom{-140}{-145}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,2){140}% % exo (b)
+ \putlatom{-150}{26}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=64
+ \Put@Line(-10,15)(-5,-2){160}%
+ \Put@Line(-5,-15)(-5,-2){160}%
+ \putlatom{-170}{-124}{\@memberb}% % left type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-2){140}% % endo (a)
+ }%
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,-2){140}/(0,0)(-140,-56)%% exo (b)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,2){160}% wavy bond at 5
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=20
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi%
+\end{sfpicture}}%
+\def\@bornf{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=-10
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-4,3){140}% % endo (a)
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha%bug fix 2013/06/26
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,-2){140}/(0,0)(-140,-56)%% exo (b)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-5,-2){140}% % endo (a)
+ \putlatom{-150}{-86}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(-4,3){140}% % exo (b)
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=20
+ \Put@Line(10,-15)(-5,2){160}%
+ \Put@Line(5,15)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else \if\@tmpb B%beta single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,2){160}%
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else \if\@tmpb A%alpha single bond%bug fix 2013/06/26
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \dotorline(0,0)(-5,2){160}/(0,0)(-160,64)%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=20\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,2){160}% wavy bond at 6
+ }%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=20
+ \Put@Line(0,0)(-5,2){160}%
+ \putlatom{-170}{44}{\@memberb}% % left type
+ \fi\fi\fi\fi\fi\end{sfpicture}}%
+\def\@borng{%
+ \begin{sfpicture}(200,200)(0,0)
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(0,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \else\if\@tmpc a%(a) left
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(-4,3){140}% % left (a)
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc b%(b) right
+ \yl@xdiff=0
+ \yl@ydiff=-10
+ \Put@Line(0,0)(4,3){140}% % right (b)
+ \putratom{140}{115}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-4,3){140}% % left (U)
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(4,3){140}% % right (V)
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(-4,3){140}/(0,0)(-140,105)%
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(4,3){140}% %
+ }%
+ \putratom{140}{115}{\@memberb}% % right type
+ \else\if\@tmpc u%(u) beta alternative
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-4,3){140}% %
+ }%
+ \putlatom{-140}{115}{\@memberb}% % left type
+ \else\if\@tmpc d%(d) alpha alternative
+ \yl@xdiff=0\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(4,3){140}/(0,0)(140,105)%
+ \putratom{140}{115}{\@memberb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi
+ %\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(-10,0)(0,1){160}%
+ \Put@Line(10,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \else%
+ \yl@xdiff=40
+ \yl@ydiff=-20
+ \Put@Line(0,0)(0,1){160}%
+ \putlratom{-40}{180}{\@memberb}% % left & right type
+ \fi\fi\end{sfpicture}}%
+\def\BackGroundColor{\color{white}}%default color for background 2013/07/23
+\newif\iffrontthicktothin \frontthicktothinfalse%default front thickline2013/06/24
+\def\bornane{\@ifnextchar[{\@bornane}{\@bornane[r]}}
+\def\@bornane[#1]#2{%
+\@reset@ylsw%
+\ylbornaneposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1000,1000)(-200,-240){bornane}%
+(200,240)%2002/4/30 by S. Fujita
+ \thinlines%
+ \Put@Line(462,-43)(2,5){80}% % bond 3 to 2 (b)
+ \Put@Line(543,157)(-5,2){225}% % bond 2 to 1 (a)
+ \Put@Line(318,247)(-5,-1){237}% % bond 1 to 6 (f)
+ \Put@Line(80,200)(-2,-5){80}% % bond 6 to 5 (e)
+ \Put@Line(318,247)(-2,5){80}% % back part of bridge (g)
+ {\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue
+ \Put@Line(0,0)(5,1){237}% % bond 5 to 4 (d)
+ \Put@Line(237,47)(5,-2){225}% % bond 4 to 3 (c)
+ {\def\thinLineWidth{5pt}\BackGroundColor% front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(237,200)(0,1){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(237,47)(0,1){400}% % front part of bridge (h)
+ }%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member a%%%%
+ \Put@Line(513,127)(-5,2){180}% % bond 2 to 1
+\else \if\member b%%%%
+ \Put@Line(446,-3)(2,5){60}% % bond 3 to 2
+\else \if\member c%%%%
+ \Put@Line(267,77)(5,-2){180}% % bond 4 to 3
+\else \if\member d%%%%
+ \Put@Line(40,42)(5,1){180}% % double bond 5 to 4
+\else \if\member e%%%
+ \Put@Line(100,180)(-2,-5){60}% % bond 6 to 5
+\else \if\member f%
+ \Put@Line(288,207)(-5,-1){180}% % bond 1 to 6
+\else \if\member g%
+ \Put@Line(288,260)(-2,5){40}% % back part of bridge (g)
+\else \if\member h%
+ \Put@Line(257,77)(0,1){290}% % front part of bridge (h)
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@borna}% subst. on 1
+ \or\setBScolor{\Put@Direct(543,157){\@bornb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(462,-43){\@bornc}}% subst. on 3
+ \or\setBScolor{\@bornd}% subst. on 4
+ \or\setBScolor{\Put@Direct(0,0){\@borne}}% subst. on 5
+ \or\setBScolor{\Put@Direct(80,200){\@bornf}}% subst. on 6
+ \or\setBScolor{\Put@Direct(237,440){\@borng}}% subst. on 7
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \bornane macro
+\def\ylbornaneposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-318}\gdef\@yli{-247}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-543}\gdef\@yli{-157}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-462}\gdef\@yli{43}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-237}\gdef\@yli{-47}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-80}\gdef\@yli{-200}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{-237}\gdef\@yli{-440}\global\@ylswtrue% subst. on 7
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\@adamanea{%
+ \yl@xdiff=12
+ \yl@ydiff=21
+ \Put@Direct(-360,720){\hbox to0pt{\hss \@memberb}}% %atom 1
+ \if\@tmpb a%
+ \Put@Line(-240,660)(-4,3){108}% %bond 1
+ \else \ifx\@tmpb\empty%
+ \Put@Line(-240,660)(-4,3){108}% %bond 1
+ \fi\fi}%
+\def\@adamaneb{%
+ \if\@tmpb a%
+ \yl@xdiff=6
+ \yl@ydiff=-16
+ \Put@Line(0,780)(1,4){26}% %bond 2-ax
+ \Put@Direct(20,900){\hbox to0pt{\@memberb \hss}}% %atom 2-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-6
+ \yl@ydiff=-16
+ \Put@Line(0,780)(-1,4){26}% %bond 2-eq
+ \Put@Direct(-20,900){\hbox to0pt{\hss \@memberb}}% %atom 2-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-22
+ \Put@Direct(-42,910){\hbox to0pt{\hss \@memberb}}% %atom 2
+ \Put@Line(0,780)(0,1){108}% %bond 2
+ \else \if\@tmpb D%
+ \yl@xdiff=42
+ \yl@ydiff=-22
+ \putlratom{-42}{910}{\@memberb}% %atom 2
+ \Put@Line(-12,780)(0,1){108}% %double bond 2
+ \Put@Line(12,780)(0,1){108}% %double bond 2
+ \fi\fi\fi\fi}
+\def\@adamanec{%
+ \yl@xdiff=-12
+ \yl@ydiff=21
+ \Put@Direct(360,720){\hbox to0pt{\@memberb \hss}}% %atom 3
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(240,660)(4,3){108}% %bond 3
+ \else \ifx\@tmpb\empty%
+ \Put@Line(240,660)(4,3){108}% %bond 3
+ \fi\fi}
+\def\@adamaned{%
+ \if\@tmpb a%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(300,420)(4,-3){103}% %bond 4-ax
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=26
+ \yl@ydiff=-26
+ \Put@Line(300,420)(1,4){26}% %bond 4-eq
+ \Put@Direct(300,540){\hbox to0pt{\@memberb \hss}}% %atom 4-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(300,420)(4,-3){103}% %bond 4
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4
+ \else \if\@tmpb D%
+ \yl@xdiff=-17
+ \yl@ydiff=33
+ \Put@Line(296,432)(5,-3){103}% %double bond 4
+ \Put@Line(292,408)(5,-3){103}% %double bond 4
+ \Put@Direct(420,310){\hbox to0pt{\@memberb \hss}}% %atom 4
+ \fi\fi\fi\fi}
+\def\@adamanee{%
+ \yl@xdiff=20
+ \yl@ydiff=110
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(60,240)(1,-5){30}% %bond 5
+ \Put@Direct(70,-20){\hbox to0pt{\@memberb \hss}}% %atom 5
+ \else \ifx\@tmpb\empty%
+ \Put@Line(60,240)(1,-5){30}% %bond 5
+ \Put@Direct(70,-20){\hbox to0pt{\@memberb \hss}}% %atom 5
+ \fi\fi}
+\def\@adamanef{%
+ \if\@tmpb a%
+ \yl@xdiff=33
+ \yl@ydiff=103
+ \Put@Line(0,0)(4,-3){103}% %bond 6-ax
+ \Put@Direct(70,-180){\hbox to0pt{\@memberb \hss}}% %atom 6-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-33
+ \yl@ydiff=103
+ \Put@Line(0,0)(-4,-3){103}% %bond 6-eq
+ \Put@Direct(-70,-180){\hbox to0pt{\hss \@memberb}}% %atom 6-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=22
+ \yl@ydiff=94
+ \Put@Line(0,0)(0,-1){108}% %bond 6
+ \Put@Direct(-22,-202){\hbox to0pt{\hss \@memberb}}% %atom 6
+ \else \if\@tmpb D%
+ \yl@xdiff=42
+ \yl@ydiff=94
+ \Put@Line(-12,0)(0,-1){108}% %double bond 6
+ \Put@Line(12,0)(0,-1){108}% %double bond 6
+ \putlratom{-42}{-202}{\@memberb}% %atom 6
+ \fi\fi\fi\fi}
+\def\@adamaneg{%
+ \yl@xdiff=-20
+ \yl@ydiff=110
+ \if\@tmpb a%1998/10/24 by SF
+ \Put@Line(-60,240)(-1,-5){30}% %bond 7
+ \Put@Direct(-70,-20){\hbox to0pt{\hss \@memberb}}% %atom 7
+ \else \ifx\@tmpb\empty%
+ \Put@Line(-60,240)(-1,-5){30}% %bond 7
+ \Put@Direct(-70,-20){\hbox to0pt{\hss \@memberb}}% %atom 7-eq
+ \fi\fi}
+\def\@adamaneh{%
+ \if\@tmpb a%
+ \yl@xdiff=17
+ \yl@ydiff=33
+ \Put@Line(-300,420)(-4,-3){103}% %bond 8-ax
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-26
+ \yl@ydiff=-16
+ \Put@Line(-300,420)(-1,4){26}% %bond 8-eq
+ \Put@Direct(-300,540){\hbox to0pt{\hss \@memberb}}% %atom 8-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=17
+ \yl@ydiff=33
+ \Put@Line(-300,420)(-4,-3){103}% %bond 8
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8
+ \else \if\@tmpb D%
+ \yl@xdiff=17
+ \yl@ydiff=50
+ \Put@Line(-300,432)(-5,-3){103}% %double bond 8
+ \Put@Line(-303,408)(-5,-3){103}% %double bond 8
+ \Put@Direct(-420,310){\hbox to0pt{\hss \@memberb}}% %atom 8
+ \fi\fi\fi\fi}
+\def\@adamanei{%
+ \if\@tmpb a%
+ \yl@xdiff=-43
+ \yl@ydiff=93
+ \Put@Line(-180,420)(-4,-3){103}% %bond 9-ax
+ \Put@Direct(-240,250){\hbox to0pt{\hss \@memberb}}% %atom 9-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=26
+ \yl@ydiff=-16
+ \Put@Line(-180,420)(1,4){26}% %bond 9-eq
+ \Put@Direct(-180,540){\hbox to0pt{\@memberb \hss}}% %atom 9-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=17
+ \yl@ydiff=93
+ \Put@Line(-180,420)(-4,-3){103}% %bond 9
+ \Put@Direct(-300,250){\hbox to0pt{\hss \@memberb}}% %atom 9
+ \else \if\@tmpb D%
+ \yl@xdiff=17
+ \yl@ydiff=113
+ \Put@Line(-183,432)(-5,-3){103}% %double bond 9
+ \Put@Line(-180,408)(-5,-3){103}% %double bond 9
+ \Put@Direct(-300,250){\hbox to0pt{\hss \@memberb}}% %atom 9
+ \fi\fi\fi\fi}
+\def\@adamanej{%
+ \if\@tmpb a%
+ \yl@xdiff=43
+ \yl@ydiff=92
+ \Put@Line(180,420)(4,-3){103}% %bond 10-ax
+ \Put@Direct(240,250){\hbox to0pt{\@memberb \hss}}% %atom 10-ax
+ \else \if\@tmpb b%
+ \yl@xdiff=-26
+ \yl@ydiff=-16
+ \Put@Line(180,420)(-1,4){26}% %bond 10-eq
+ \Put@Direct(180,540){\hbox to0pt{\hss \@memberb}}% %atom 10-eq
+ \else \ifx\@tmpb\empty%
+ \yl@xdiff=43
+ \yl@ydiff=92
+ \Put@Line(180,420)(4,-3){103}% %bond 10
+ \Put@Direct(240,250){\hbox to0pt{\@memberb \hss}}% %atom 10
+ \else \if\@tmpb D%
+ \yl@xdiff=3
+ \yl@ydiff=112
+ \Put@Line(176,432)(5,-3){103}% %double bond 10
+ \Put@Line(172,408)(5,-3){103}% %double bond 10
+ \Put@Direct(280,250){\hbox to0pt{\@memberb \hss}}% %atom 10
+ \fi\fi\fi\fi}
+\def\adamantane{\@ifnextchar[{\@mantane}{\@damantane[Z]}}
+\def\@damantane[#1]#2{%
+\@reset@ylsw%
+\yladamanposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,1300)(-550,-300){adamantane}%
+(550,300)%2002/4/30 by S. Fujita
+ \Put@Line(0,0)(-1,4){60}% %bond 6-7
+ \Put@Line(0,780)(2,-1){240}% %bond 2-3
+ \Put@Line(0,780)(-2,-1){240}% %bond 2-1
+ \Put@Line(-60,240)(-4,3){240}% %bond 7-8
+ \Put@Line(-300,420)(1,4){60}% %bond 8-1
+ \Put@Line(240,660)(-1,-4){60}% %bond 3-10
+ \Put@Line(-60,240)(4,3){240}% %bond 10-7
+{\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue%added for v4.02 (2004/12/20)
+ \Put@Line(300,420)(-1,4){60}% %bond 4-3
+ \Put@Line(-240,660)(1,-4){60}% %bond 1-9
+ \Put@Line(0,0)(1,4){60}% %bond 6-5
+ \Put@Line(60,240)(4,3){240}% %bond 5-4
+ {\def\thinLineWidth{5pt}\BackGroundColor% % front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(40,255)(-4,3){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(60,240)(-4,3){240}% %bond 5-9
+}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+\or\setBScolor{\@adamanea}% subst. on 1
+\or\setBScolor{\@adamaneb}% subst. on 2
+\or\setBScolor{\@adamanec}% subst. on 3
+\or\setBScolor{\@adamaned}% subst. on 4
+\or\setBScolor{\@adamanee}% subst. on 5
+\or\setBScolor{\@adamanef}% subst. on 6
+\or\setBScolor{\@adamaneg}% subst. on 7
+\or\setBScolor{\@adamaneh}% subst. on 8
+\or\setBScolor{\@adamanei}% subst. on 9
+\or\setBScolor{\@adamanej}% subst. on 10
+\fi%the end of ifcase
+\fi\fi}%
+\end{ShiftPicEnvB}%
+}% %end of \adamantane macro%
+\def\yladamanposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{240}\gdef\@yli{-660}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{0}\gdef\@yli{-780}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-240}\gdef\@yli{-660}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-300}\gdef\@yli{-420}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-60}\gdef\@yli{-240}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{60}\gdef\@yli{-240}\global\@ylswtrue% subst. on 7
+ \or\gdef\@ylii{300}\gdef\@yli{-420}\global\@ylswtrue% subst. on 8
+ \or\gdef\@ylii{180}\gdef\@yli{-420}\global\@ylswtrue% subst. on 9
+ \or\gdef\@ylii{-180}\gdef\@yli{-420}\global\@ylswtrue% subst. on 10
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\hadamantane{\@ifnextchar[{\@hadamantane}{\@hadamantane[H]}}
+\def\@hadamantane[#1]#2{%
+\@reset@ylsw%
+\ylhadamanposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,1400)(-400,-319){hadamantane}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+ \Put@Line(0,0)(3,4){170}% % bond 6 to 7
+ \Put@Line(170,226)(3,-1){403}% % 7 to 10
+ \Put@Line(573,91)(3,1){270}% % 10 to 3
+ \Put@Line(170,226)(0,1){360}% % 7 to 8
+ \Put@Line(170,586)(3,1){270}% % 8 to 1
+ \Put@Line(843,181)(0,1){360}% % 3 to 2
+ \Put@Line(843,541)(-3,1){403}% % 2 to 1
+ {\iffrontthicktothin\thinlines\else\thicklines\fi%2013/06/24
+ \molfronttrue
+ \Put@Line(843,181)(-3,-4){170}% % 3 to 4
+ \Put@Line(673,-46)(-3,1){403}% % 4 to 5
+ \Put@Line(0,0)(3,1){270}% % 6 to 5
+ {\def\thinLineWidth{5pt}\BackGroundColor% front-to-back crossing2013/06/24-07/23
+ \thinlines% %
+ \Put@Line(270,150)(0,1){80}}% % front-to-back crossing2013/06/24-07/23
+ \Put@Line(270,90)(0,1){360}% % 5 to 9
+ \Put@Line(270,450)(3,4){170}% % 9 to 1
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endocyclic bonds
+\else \if\member a%
+ \Put@Line(450,636)(3,-1){373}% % double bond 1 to 2
+\else \if\member b%
+ \Put@Line(803,206)(0,1){320}% % 3 to 2
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % 3 to 4
+\else \if\member d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member g%
+ \Put@Line(200,246)(0,1){320}% % 7 to 8
+\else \if\member h%
+ \Put@Line(400,626)(-3,-1){190}% % 8 to 1
+\else \if\member i%
+ \Put@Line(450,636)(-3,-4){150}% % 9 to 1
+\else \if\member j%
+ \Put@Line(300,110)(0,1){320}% % 5 to 9
+\else \if\member k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 3 to 10
+\else \if\member l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa% %0 omit
+ \or\setBScolor{\Put@Direct(440,676){\@chairiI}}% %subst. on 1%%%9
+ \or\setBScolor{\Put@Direct(843,541){\@chairiII}}% %subst. on 2%%10
+ \or\setBScolor{\@chairiIII}% %subst. on 3%%%4
+ \or\setBScolor{\@chairiIV}% %subst. on 4%%%3
+ \or\setBScolor{\@chairiV}% %subst. on 5%%%2
+ \or
+ \setBScolor{\@chairiVI}% %subst. on 6%%%1
+ \or\setBScolor{\@chairiVII}% %subst. on 7%%%6
+ \or\setBScolor{\Put@Direct(170,586){\@chairiVIII}}%subst. on 8%%%8
+ \or\setBScolor{\Put@Direct(270,450){\@chairiIX}}% %subst. on 9%%%7
+ \or\setBScolor{\@chairiX}% %subst. on 10%%5
+\fi %end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \hadamantane macro
+\def\ylhadamanposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-440}\gdef\@yli{-676}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-843}\gdef\@yli{-541}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-843}\gdef\@yli{-181}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{-673}\gdef\@yli{46}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-270}\gdef\@yli{-90}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 6
+ \or\gdef\@ylii{-170}\gdef\@yli{-226}\global\@ylswtrue% subst. on 7
+ \or\gdef\@ylii{-170}\gdef\@yli{-586}\global\@ylswtrue% subst. on 8
+ \or\gdef\@ylii{-270}\gdef\@yli{-450}\global\@ylswtrue% subst. on 9
+ \or\gdef\@ylii{-573}\gdef\@yli{-91}\global\@ylswtrue% subst. on 10
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\@chairiVI{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 6 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 6 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \Put@Line(0,0)(-1,-1){120}% single bond at 6
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=92
+ \Put@Line(0,0)(0,-1){168}% single bond at 6 axial
+ \putlratom{-42}{-260}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 6 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \Put@Line(-10,10)(-1,-1){120}% double bond at 6
+ \Put@Line(10,-10)(-1,-1){120}% double bond at 6
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=90
+ \putlatom{-130}{-210}{\@memberb}% left type
+ \Put@Line(0,0)(-1,-1){120}% single bond at 6
+ \fi\fi\fi\fi}%
+\def\@chairiVII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(170,226)(-1,1){120}% single bond at 7
+ \putratom{40}{316}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=12
+ \Put@Line(170,226)(0,1){168}% single bond at 7 axial
+ \putlratom{138}{406}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=26
+ \yl@ydiff=46
+ \Put@Line(170,226)(-5,-3){144}% single bond at 7 equatorial
+ \putlatom{10}{94}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putlatom{40}{316}{\@memberb}% left type
+ \Put@Line(160,216)(-1,1){120}% double bond at 7
+ \Put@Line(180,236)(-1,1){120}% double bond at 7
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \putlatom{40}{316}{\@memberb}% left type
+ \Put@Line(170,226)(-1,1){120}% single bond at 7
+ \fi\fi\fi\fi}%
+\def\@chairiX{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=56
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-101}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(573,91)(0,-1){168}% single bond at 5 axial
+ \putlratom{533}{-181}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-36
+ \yl@ydiff=3
+ \Put@Line(573,91)(5,3){144}% single bond at 5 equatorial
+ \putlatom{753}{180}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=86
+ \putratom{733}{-141}{\@memberb}% right type
+ \Put@Line(563,83)(5,-4){170}% double bond at 5
+ \Put@Line(583,99)(5,-4){170}% double bond at 5
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(573,91)(5,-4){170}% single bond at 5
+ \putratom{753}{-121}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+\def\@chairiIII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 3
+ \putratom{953}{271}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=11
+ \Put@Line(843,181)(0,1){168}% single bond at 3 axial
+ \putlratom{801}{360}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-16
+ \yl@ydiff=64
+ \Put@Line(843,181)(5,-3){144}% single bond at 3 equatorial
+ \putratom{1003}{31}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=30
+ \putratom{953}{271}{\@memberb}% right type
+ \Put@Line(833,191)(1,1){120}% double bond at 3
+ \Put@Line(853,171)(1,1){120}% double bond at 3
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(843,181)(1,1){120}% single bond at 3
+ \putratom{953}{271}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+\def\@chairiIV{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(673,-46)(0,-1){168}% single bond at 4 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 4 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \Put@Line(673,-46)(1,-1){120}% single bond at 4
+ \putratom{803}{-258}{\@memberb}% right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=40
+ \yl@ydiff=104
+ \Put@Line(673,-46)(0,-1){168}% single bond at 4 axial
+ \putlratom{633}{-318}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-6
+ \yl@ydiff=17
+ \Put@Line(673,-46)(5,3){144}% single bond at 4 equatorial
+ \putratom{823}{23}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=92
+ \putratom{803}{-258}{\@memberb}% right type
+ \Put@Line(663,-53)(1,-1){120}% double bond at 4
+ \Put@Line(683,-38)(1,-1){120}% double bond at 4
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=76
+ \Put@Line(673,-46)(5,-4){170}% single bond at 4
+ \putratom{853}{-258}{\@memberb}% right type
+ \fi\fi\fi\fi}%
+\def\@chairiV{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=26
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \else\ifx\@tmpb\empty%single bond
+ \yl@xdiff=26
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=0
+ \yl@ydiff=46
+ \Put@Line(270,90)(-5,4){170}% single bond at 5
+ \putlatom{100}{180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=32
+ \yl@ydiff=12
+ \Put@Line(270,90)(0,1){168}% single bond at 5 axial
+ \putlratom{238}{270}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=36
+ \yl@ydiff=102
+ \Put@Line(270,90)(-5,-3){144}% single bond at 5 equatorial
+ \putratom{100}{-98}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=0
+ \yl@ydiff=36
+ \putlatom{100}{200}{\@memberb}% left or right type
+ \Put@Line(260,80)(-5,4){170}% double bond at 5
+ \Put@Line(280,100)(-5,4){170}% double bond at 5
+ \else%
+ \yl@xdiff=0
+ \yl@ydiff=26
+ \putlatom{100}{200}{\@memberb}% left type
+ \Put@Line(270,90)(-5,4){170}% single bond at 5
+ \fi\fi\fi\fi}%
+\def\@chairiI{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\ifx\@tmpb\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \else%
+ \yl@xdiff=42
+ \yl@ydiff=-10
+ \Put@Line(0,0)(0,1){168}% single bond at 1 axial
+ \putlratom{-42}{178}{\@memberb}% left & right type
+ \fi\fi\fi\fi}%
+\def\@chairiII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=13
+ \Put@Line(0,0)(3,1){190}% single bond at 6 equatorial
+ \putratom{200}{50}{\@memberb}% right type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{130}{\@memberb}% left type
+ \else\if\@tmpc a%(a) axial
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpc e%(e) beta
+ \yl@xdiff=-10
+ \yl@ydiff=13
+ \Put@Line(0,0)(3,1){190}% single bond at 6 equatorial
+ \putratom{200}{50}{\@memberb}% right type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \putratom{130}{130}{\@memberb}% left type
+ \Put@Line(-10,10)(1,1){120}% double bond at 1
+ \Put@Line(10,-10)(1,1){120}% double bond at 1
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=-10
+ \putratom{130}{130}{\@memberb}% left type
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \fi\fi\fi\fi}%
+\def\@chairiVIII{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \else\if\@tmpc e% right-hand
+ \yl@xdiff=-10
+ \yl@ydiff=0
+ \Put@Line(0,0)(3,4){120}% % bond 1 to 6
+ \putratom{130}{160}{\@memberb}% left type
+ \else\if\@tmpc a% left-hand
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=4
+ \yl@ydiff=26
+ \putlatom{-140}{60}{\@memberb}% left type
+ \Put@Line(10,10)(-5,3){144}% single bond at 1 equatorial
+ \Put@Line(0,-10)(-5,3){144}% single bond at 1 equatorial
+ \else%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \fi\fi\fi\fi}%
+\def\@chairiIX{%
+ \if\@tmpb a%single bond
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \else\if\@tmpb b%single bond
+ \yl@xdiff=-16
+ \yl@ydiff=36
+ \Put@Line(0,0)(5,3){144}% single bond at 6 equatorial
+ \putratom{160}{50}{\@memberb}% left type
+ \else\if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \else\if\@tmpc e% right-hand
+ \yl@xdiff=-16
+ \yl@ydiff=36
+ \Put@Line(0,0)(5,3){144}% single bond at 6 equatorial
+ \putratom{160}{50}{\@memberb}% left type
+ \else\if\@tmpc a% left-hand
+ \yl@xdiff=16
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-160}{50}{\@memberb}% left type
+ \fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \putlatom{-140}{50}{\@memberb}% left type
+ \Put@Line(10,10)(-5,3){144}% single bond at 1 equatorial
+ \Put@Line(0,-10)(-5,3){144}% single bond at 1 equatorial
+ \else%
+ \yl@xdiff=4
+ \yl@ydiff=36
+ \Put@Line(0,0)(-5,3){144}% single bond at 1 equatorial
+ \putlatom{-140}{50}{\@memberb}% left type
+ \fi\fi\fi\fi}%
+\endinput
+%%
+%% End of file `ccycle.sty'.
diff --git a/macros/latex/contrib/xymtex/base/chemstr.dtx b/macros/latex/contrib/xymtex/base/chemstr.dtx
new file mode 100644
index 0000000000..6e437826b8
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/chemstr.dtx
@@ -0,0 +1,9531 @@
+% \iffalse meta-comment
+%% File: chemstr.dtx
+%
+% Copyright 1993,1996,1998,2001,2002, 2004, 2005, 2006, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% chemstr.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files chemstr.dtx and chemstr.ins
+% and the derived file chemstr.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Bug Fix:
+% 1993/11/14 S. Fujita
+% A and B are interchanged.
+% a and b are interchanged.
+%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% (No Distribution)
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{November 11, 2004}
+% \def\versi@nno{ver4.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{July 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{September 5, 2006}
+% \def\versi@nno{ver4.03b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{July 7, 2009}
+% \def\versi@nno{ver4.04a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 25, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemstr}
+% \def\versi@ndate{February 24, 2011}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{14811}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v3.00}{2002/04/30}{picture to sfpicture, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv environment}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.01a}{2004/11/11}{Bug fix}
+% \changes{v4.02}{2004/12/20}{Adjustment for \cs{setbondatom..}}
+% \changes{v4.02a}{2004/12/27}{Bug fix: change \cs{ggg} to \cs{gggA}}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry}
+% \changes{v4.03b}{2006/9/5}{\cs{ggg} to \cs{gggA} in \cs{test@vertix}}
+% \changes{v4.04}{2009/7/7}{Bug fix for the \cs{XyMTeX} logo}
+% \changes{v4.05}{2009/10/25}{Bug fix for the \cs{XyMTeX} logo}
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+% \changes{v5.01b}{2011/02/24}{added commands for bond coloring of the PostScript Mode}
+% \changes{v5.01}{2011/03/22}{\cs{SetTwoAtoms} added}
+% \changes{v5.01}{2011/04/06}{bug fix}
+% \changes{v5.01}{2011/06/19}{bug fix: \cs{ylposition}}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+ \ProvidesFile{chemstr.dtx}[2013/03/22 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{chemstr.dtx}
+%
+% %%XyMTeX Logo: Definition 4%%%
+\makeatletter
+\def\select@@Upsionfont{%
+\edef\test@rm{\rmdefault}%
+\edef\test@sf{\sfdefault}%
+\edef\test@tt{\ttdefault}%
+\ifx\f@family \test@rm\relax
+{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@sf\relax
+{\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@tt\relax
+{\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname
+\char'7}\fi\fi\fi%
+}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
+\hss}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+\makeatother
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Basic Commands for Drawing Chemical Structures
+by {\sffamily chemstr.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa, \\
+258-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% % (old old address)
+% % Ashigara Research Laboratories,
+% % Fuji Photo Film Co., Ltd., \\
+% % Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{chemstr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{chemstr:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% chemstr & chemstr.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*chemstr>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released June 19, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{chemstr}
+\def\versi@ndate{June 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for chemstr.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * chemstr.sty: list of commands *
+% *********************************
+%
+% <For separating an augument list to each argument>
+%
+% \@forsemicol
+% \@forl@@p
+% \@iforl@@p
+% \@m@mb@r
+% \twoch@r
+% \twoCH@R (terminater //)
+% \twoch@@r
+% \twoCH@@R (terminater //)
+% \threech@r
+%
+% <For designating coordinates for drawing round arrows>
+%
+% \@forendparenthesis
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <Convention>
+%
+% \rmoiety
+% \lmoiety
+% \putlatom
+% \putratom
+% \putlratom
+% \Putlratom
+%
+% \dotorline
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <Treatment of substitution positions>
+%
+% \if@clip \@clipfalse \@cliptrue
+% \if@aclip \@aclipfalse \@acliptrue
+% \if@bclip \@bclipfalse \@bcliptrue
+% \if@cclip \@cclipfalse \@ccliptrue
+% \if@eclip \@eclipfalse \@ecliptrue
+% \if@fclip \@fclipfalse \@fcliptrue
+% \iforigpt \origptfalse \origpttrue
+% \@tmpaa (counter)
+%
+% \clipinfo \storeclipinfo \developclipinfo
+%
+% <Structures as substituents>
+% \@yl
+% \yl@xdiff \yl@ydiff
+% \yl@shiftii
+% \yl@shifti
+% \@ylii
+% \@yli
+% \@@ylii
+% \@@yli
+%
+% <Fused positions check>
+% \fuseAx \fuseAy
+% \fuseBx \fuseBy
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <VERTICAL SETTING>
+% Substitution
+%
+% \@substa
+% \@substb
+% \@substc
+% \@substd
+% \@subste
+% \@substf
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% Setting of atoms and bonds
+%
+% \setsixringv (on a vertical six-membered ring)
+% \setdecaringv (on a decaline (six-six) ring)
+% \setfusedbond (at fused bond positions)
+% \if@clipfuse \@clipfusefalse \@clipfusetrue
+% \setatombond (at an appropiate position)
+%
+% Placing structures as substituents
+% \ylposition
+% \ylfusedpostion
+% \ylatombondposition
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <HORIZONTAL SETTING>
+% Substitution
+%
+% \@hsubsta
+% \@hsubstb
+% \@hsubstc
+% \@hsubstd
+% \@hsubste
+% \@hsubstf
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% Setting of atoms and bonds
+%
+% \setsixringh (on a horizontal six-membered ring)
+%
+% Placing structures as substituents
+%
+% \ylpositionh
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <Linking units>
+%
+% \ryl (right linking unit)
+% \lyl (left linking unit)
+
+
+% <Minor Linking Units>
+%
+% \ayl
+%
+% \upnobond
+% \downnobond
+%
+% \BiFunc
+%
+% <Setting fused rings>
+%
+% \set@fusionadd@sixv \set@fusion@sixv
+% \set@fusionadd@sixvi \set@fusion@sixvi
+% \set@fusionadd@sixh \set@fusion@sixh
+% \set@fusionadd@sixhi \set@fusion@sixhi
+%
+% \set@fusion@decav
+% \set@fusion@decavb
+% \set@fusion@decavt
+% \set@fusion@decah
+%
+% \set@fusion@hanthrav
+% \set@fusion@hphenanv
+%
+% \set@fusionadd@fivev \set@fusion@fivev
+% \set@fusionadd@fivevi \set@fusion@fivevi
+% \set@fusionadd@fiveh \set@fusion@fiveh
+% \set@fusionadd@fivehi \set@fusion@fivehi
+%
+% \set@fusion@nonav \set@fusion@nonavi
+% \set@fusion@nonah \set@fusion@nonahi
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+% <For PostScript output>
+%
+% \let\Put@Direct=\put
+% \let\Multiput@Direct=\multiput
+% \Put@@@Line
+% \Put@@@sCircle
+% \Put@@@oCircle
+%
+% <ShiftPicEnv environments>
+%
+% ShiftPicEnv
+% ShiftPicEnvB
+% \let\sfpicture=\picture
+% \let\endsfpicture=\endpicture
+%
+% <Wave bonds for stereochemistry>
+% \ifwavebond, \WaveBonds
+%
+% <Bond coloring>
+% \addbscolor,
+% \setbscolor, \setBScolor
+% \bscolorswON, \bscolorswOFF
+% \defineXyMcolor
+% \XyMcolor
+%
+% <Truncation for two or more atoms>
+% \SetTwoAtoms
+% \SetTwoAtomx
+% \end{verbatim}
+%
+% \section{Initialization and conventions}
+% \subsection{Logos}
+%
+% The logo of \XyMTeX{} is defined in two ways. The first definition uses
+% the \verb/\fam/ command, which sometimes shows unusual behavior. The
+% second definition is adopted in the present version of \XyMTeX{}, since
+% this aims at the compatibility to \LaTeXe{}.
+%
+% \begin{macro}{\XyMTeX}
+% \begin{macrocode}
+% ***************
+% * XyMTeX Logo *
+% ***************
+% %%XyMTeX Logo: Definition 1%%%
+% \newcount\TestCount
+% \def\XyM{\ifnum\fam=-1\relax\fam=0\relax\fi\TestCount=\fam%
+% X\kern-.30em\smash{\raise.50ex\hbox{$\fam\TestCount\Upsilon$}}%
+% \kern-.30em{M}}
+% \def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%XyMTeX Logo: Definition 2%%%
+% \def\UPSILON{\char'7}
+% \def\XyM{X\kern-.30em\smash{\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+% \def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%XyMTeX Logo: Definition 3%%%2009/07/07
+% \edef\test@it{\itdefault}
+% \edef\test@sf{\sfdefault}
+% \edef\test@tt{\ttdefault}
+% \edef\test@sl{\sldefault}
+% \edef\test@bx{\bfdefault}
+% \def\XyM{X\kern-.30em\smash{%
+% \raise.50ex\hbox to0.8em{\hss%
+% \ifx\f@series \test@bx\relax
+% $\mathbf{\Upsilon}$%
+% \else\ifx\f@shape \test@it\relax
+% $\mathit{\Upsilon}$%
+% \else\ifx\f@family \test@sf\relax
+% $\mathsf{\Upsilon}$%
+% \else\ifx\f@family \test@tt\relax
+% $\mathtt{\Upsilon}$%
+% \else\ifx\f@shape \test@sl\relax
+% $\mathit{\Upsilon}$%
+% \else
+% $\Upsilon$\fi\fi\fi\fi\fi%
+% \hss}}\kern-.30em{M}}
+% \def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % \end{macrocode}
+%
+% \begin{macrocode}
+% %%XyMTeX Logo: Definition 4%%%2009/10/25
+\def\select@@Upsionfont{%
+\edef\test@rm{\rmdefault}%
+\edef\test@sf{\sfdefault}%
+\edef\test@tt{\ttdefault}%
+\ifx\f@family \test@rm\relax
+{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@sf\relax
+{\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@tt\relax
+{\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname
+\char'7}\fi\fi\fi%
+}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
+\hss}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Switches for Three Modes}
+%
+% Switches for determining three modes
+% are added in the \XyMTeX{} system (Version 5.00).
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+%
+% \begin{macro}{\ifPSmode etc.}
+% \begin{macrocode}
+\newif\ifPSmode \PSmodefalse
+\newif\ifPDFmode \PDFmodefalse
+\newif\ifTeXLaTeXmode \TeXLaTeXmodetrue%default TeX/LaTeX mode.
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Temporary Counters and Dimentions}
+%
+% The following counter registers are used to draw wavy bonds
+% by Bezier technique.
+%
+% \begin{macro}{\@tempcntXa etc.}
+% \begin{macrocode}
+\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
+\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
+\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
+\newcount\@tempcntXd \newcount\@tempcntYd \newcount\@tempcntzzzz
+% \end{macrocode}
+% \end{macro}
+%
+% The following dimension registers can be used temporarily
+% in addition to |\@tempdima| and |\@tempdimb| of LaTeX
+% utility.
+%
+% \begin{macro}{\@dimtempa etc.}
+% \begin{macrocode}
+\newdimen\@dimtempa
+\newdimen\@tempdimd
+\newdimen\@tempdime
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Wavy Bonds}
+%
+% Wavy bonds that represent unspecified stereochemistry are supported by using
+% PostScript technique. To assure compatibility, the non-PostScript mode
+% is revised to support wavy bonds.
+% \changes{v4.03}{2005/07/20}{Wavy Bonds}
+%
+%
+% \begin{macro}{\waveunitA}
+% \begin{macrocode}
+\def\waveunitA(#1,#2)#3{%
+\@tempcntz=#1\relax
+\@tempcntzz=#2\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%middle point parameters%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntz=3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax%
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax%
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=-10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=-10 \@tempcntYa=-16\relax
+ \@tempcntXd=10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=10 \@tempcntYa=-16\relax
+ \@tempcntXd=-10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=20\relax
+ \@tempcntXd=0 \@tempcntYd=-20\relax
+ \fi
+\else\ifnum\@tempcntz=-1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=-20\relax
+ \@tempcntXd=0 \@tempcntYd=20\relax
+ \fi
+\else\ifnum\@tempcntz=0\relax
+ \ifnum\@tempcntzz=1\relax
+ \@tempcntXa=-20 \@tempcntYa=0\relax
+ \@tempcntXd=20 \@tempcntYd=0\relax
+ \fi
+\fi\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%%%%%%%%%%%
+% start and ending %
+%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntzz=0\relax%(1,0) (-1,0)
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXb=#3\relax
+ \else
+ \@tempcntXb=-#3\relax
+ \fi
+ \@tempcntYb=0
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXa=#3\relax
+ \else
+ \@tempcntXa=-#3\relax
+ \fi
+ \divide\@tempcntXa by2\relax
+ \@tempcntXd=\@tempcntXa
+\else\ifnum\@tempcntz=0\relax%(0,1) (0,-1)
+ \@tempcntXb=0\relax
+ \ifnum\@tempcntzz>0\relax
+ \@tempcntYb=#3\relax
+ \@tempcntYa=#3\relax
+ \else
+ \@tempcntYb=-#3\relax
+ \@tempcntYa=-#3\relax
+ \fi
+ \divide\@tempcntYa by2\relax
+ \@tempcntYd=\@tempcntYa
+\else
+\ifnum\@tempcntz>0\relax
+\@tempcntXb=#3\relax
+\else
+\@tempcntXb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntYb=#3\relax
+\else
+\@tempcntYb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntzzzz=#2\relax
+\else
+\@tempcntzzzz=-#2\relax
+\fi
+\multiply\@tempcntYb by10\relax
+\multiply\@tempcntYb by\@tempcntzzzz\relax
+\ifnum\@tempcntz>0\relax
+\@tempcntzzzz=#1\relax
+\else
+\@tempcntzzzz=-#1\relax
+\fi
+\divide\@tempcntYb by\@tempcntzzzz\relax
+\divide\@tempcntYb by10\relax
+\@tempcntzzzz=\@tempcntXb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntXa by\@tempcntzzzz
+\advance\@tempcntXd by\@tempcntzzzz
+\@tempcntzzzz=\@tempcntYb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntYa by\@tempcntzzzz
+\advance\@tempcntYd by\@tempcntzzzz
+\fi\fi
+%%%%%%%%%%%%%%%%%
+% Bezier curves %
+%%%%%%%%%%%%%%%%%
+\@tempcntXc=\@tempcntXb
+\multiply\@tempcntXc by2\relax
+\@tempcntYc=\@tempcntYb
+\multiply\@tempcntYc by2\relax
+\begin{picture}(0,0)(0,0)%
+\multiput(0,0)(\@tempcntXc,\@tempcntYc){3}{%
+\qbezier(0,0)(\@tempcntXa,\@tempcntYa)(\@tempcntXb,\@tempcntYb)}%
+\multiput(\@tempcntXb,\@tempcntYb)(\@tempcntXc,\@tempcntYc){2}{%
+\qbezier(0,0)(\@tempcntXd,\@tempcntYd)(\@tempcntXb,\@tempcntYb)}%
+\end{picture}%
+}%end of \waveunitA
+% \end{macrocode}
+% \end{macro}
+%
+% A new switch for wave bonds for stereochemistry is
+% added: |\ifwavebond|.
+% \changes{v4.03}{2005/07/20}{New switch: \cs{ifwavebond}}
+%
+% \begin{macro}{\ifwavebond}
+% \begin{macro}{\WaveBonds}
+% \begin{macro}{\NormalBonds}
+% \begin{macrocode}
+\newif\ifwavebond \wavebondfalse
+\def\WaveBonds{\wavebondtrue}
+\def\NormalBonds{\wavebondfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v4.03}{2005/07/20}{Renewed command: \cs{Put@@Line}}
+% \begin{macro}{\Put@@Line}
+% \begin{macrocode}
+\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){%
+\ifwavebond \@tempcnta=#5\relax
+\divide\@tempcnta by5\relax
+\waveunitA(#3,#4){\@tempcnta}\else
+\line(#3,#4){#5}\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Conventions for PostScript}
+%
+% The picture environment is switched to be acceptable
+% to another system such as PostScript.
+%
+% \changes{v4.00}{2002/5/30}{New commands: \cs{Put@@Line},
+% \cs{Put@@sCircle}, and \cs{Put@@oCircle}}
+% \begin{macro}{\Put@@Line}
+% \begin{macro}{\Put@@sCircle}
+% \begin{macro}{\Put@@oCircle}
+% \begin{macrocode}
+\global\let\@ldline=\line%store the oridinal line command of picture enviroment
+\global\let\@ldthicklines=\thicklines
+\global\let\@ldthinlines=\thinlines
+%%\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){\line(#3,#4){#5}}}
+\def\Put@@sCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle*{#3}}}
+\def\Put@@oCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% The initial setting is the original LaTeX picture environment.
+% To switch the size-reduction meachism and the pstricks mechanism,
+% we can use a switching command such as |\originalpicture|.
+% \changes{v3.00}{2002/4/30}{New environment: sfpicture}
+% \changes{v3.00}{2002/5/30}{New command: \cs{originalpicture}}
+%
+% \begin{macro}{\originalpicture}
+% \begin{macro}{\sfpicture}
+% \begin{macro}{\Put@Direct}
+% \begin{macrocode}
+\newif\ifxymtexpssw\xymtexpsswfalse
+\def\originalpicture{%
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\Put@Direct=\put
+\let\Multiput@Direct=\multiput
+\let\line=\@ldline
+\let\dotorline=\d@t@rline
+\let\thicklines=\@ldthicklines
+\let\thinlines=\@ldthinlines
+\thinlines
+\let\Put@Line=\Put@@Line
+\let\Put@sCircle=\Put@@sCircle
+\let\Put@oCircle=\Put@@oCircle
+\xymtexpsswfalse
+\@ifundefined{@changeunitlength}{}{%
+\let\changeunitlength=\@changeunitlength}%
+\unitlength=0.1pt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% To switch from XyMTeX to XyMTeX with pstricks, we use the following command:
+% \begin{macro}{\changexymtextops}
+% \begin{macrocode}
+\def\changexymtextops{\xymtexpsswtrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SlopetoXY}
+% \changes{v5.00}{2010/10/01}{New command: \cs{SlopetoXY}}
+% This command is extracted from |\Put@@@Line}| of the \textsf{xymtx-ps} package
+% so as to be a common code for defining |\Put@@@Line}| (\textsf{xymtx-ps} package),
+% |\Color@@@Line| (\textsf{xymtx-ps} package), |\Color@@@@Line| (\textsf{xymtx-pdf} package),
+% and so on. This command changes a set of line specifiers (a starting point, a slope, and
+% a line length of the \LaTeX{} picture environment) into another set
+% (a starting point and a terminal point (|\@tempcntXa|,|\@tempcntYa|)).
+%
+% \begin{macrocode}
+\def\SlopetoXY(#1,#2)(#3,#4)#5{%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Macros for treating argumets}
+%
+% For separating each argument (BONDLIST, SUBSLIST or ATOMLIST) into
+% components (descriptors), we define several useful macros.
+%
+% \begin{macro}{\@forsemicol}
+% \begin{macro}{\@forl@@p}
+% \begin{macro}{\@iforl@@p}
+%
+% The macro |\@forsemicol| resembles the |\@for| macro that is
+% the \LaTeX{} original macro; however a semicolon is used as
+% a separating key in place of a comma.
+%
+% \changes{v1.01}{1996/07/06}{\cs{@forsemicol}: \cs{edef}
+% to \cs{expandafter}}
+% \changes{v1.01}{1996/07/06}{\cs{@iforl@@p} replaced by
+% a LaTeX2e-like definitiion}
+%
+% \begin{macrocode}
+% ****************************************************
+% * For separating an augument list to each argument *
+% ****************************************************
+%
+\def\@forsemicol#1:=#2\do#3{%
+% \edef\@fortmp{#2}%1996/07/06 by S. Fujita
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
+\long\def\@forl@@p#1;#2;#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforl@@p #3\@@#4{#5}\fi\fi}
+\long\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforl@@p\fi#2\@@#3{#4}}
+%\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+% \let\@nextwhile=\@fornoop \else%
+% #4\relax\let\@nextwhile=\@iforl@@p\fi\@nextwhile#2\@@#3{#4}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\@m@mb@r| separates a character string into to portions
+% by using a double equality symbol (|==|) and a semicolon as delimiters.
+% The first potion consists of a locant number and a bond modifier (stored
+% in |\@membera|), which are further separated by the macro |\twoch@r|,
+% |\twoch@@r| or |\threech@r|.
+% The second potion shows a substituent (stored in |\@memberb|),
+% which is printed by means of an appropiate command.
+%
+% \begin{macro}{\@m@mb@r}
+% \begin{macro}{\twoch@r}
+% \begin{macro}{\twoch@@r}
+% \begin{macro}{\threech@r}
+% \begin{macrocode}
+%\def\@m@mb@r#1==#2;{\gdef\@membera{#1}\gdef\@memberb{#2}}
+\def\@m@mb@r#1==#2;{\def\@membera{#1}\def\@memberb{#2}}
+\def\twoch@r#1#2{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
+\def\twoch@@r#1#2{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
+%\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}}%redefined
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\threech@r| is redefined by using |\@get@first@char|
+% in order to give a warning of a two-digit number.
+% \changes{v4.00}{2002/05/30}{\cs{@get@first@char} has been added.}
+%
+% \begin{macro}{\@get@first@char}
+% \begin{macrocode}
+\newif\ifdrawsamesubst\drawsamesubstfalse
+\def\@get@first@char#1{\if\noexpand#1\relax\else
+\@cnttempa=`#1\relax
+\ifnum\@cnttempa>47\relax
+\ifnum\@cnttempa<58\relax
+\XyMTeXWarning{The second number (\@tmpb) of a two-digit number (\@tmpa\@tmpb)
+is missed. ^^J\space This should be written in braces,
+^^J\space e.g. `{\@tmpa\@tmpb}D==substituent' and `{{\@tmpa\@tmpb}}==substituent'.}
+\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v4.00}{2002/05/30}{\cs{threech@r} has been redefined.}
+%
+% \begin{macro}{\threech@r}
+% \begin{macrocode}
+\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}%
+\begingroup
+\ifdrawsamesubst\ifx\@tmpa\empty\relax\else\ifx\@tmpb\empty\relax\else
+\setbox0=\hbox{\@get@first@char#2\relax}\fi\fi\fi
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The following two commands are added to treat spiro fusion.
+% \changes{v2.00}{1998/11/15}{Added for spiro fusion}
+% To avoid the bugs in drawing multi-nested fused compounds, |\gdef| is
+% changed to |\def| in the definitions of |\twoCH@@R| and |\twoCH@R|.
+% \changes{v4.00}{2002/05/30}{Bug fix for \cs{twoCH@@R} and \cs{twoCH@R}}
+%
+% \begin{macro}{\twoCH@R}
+% \begin{macro}{\twoCH@@R}
+% \begin{macrocode}
+%\def\twoCH@@R#1#2//{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
+\def\twoCH@@R#1#2//{\def\@@tmpa{#1}\def\@@tmpb{#2}}
+%\def\twoCH@R#1#2//{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
+\def\twoCH@R#1#2//{\def\@tmpa{#1}\def\@tmpb{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+
+% \begin{macro}{\@forendparenthesis}
+%
+% The macro |\@forendparenthesis| resembles the |\@for| macro that is
+% the \LaTeX{} original macro; however a close parenthesis is used as
+% a separating key in place of a comma.
+%
+% \changes{v5.00}{2010/10/01}{for drawing round arrows}
+%
+% \begin{macrocode}
+% ************************************
+% * For coordinates for round arrows *
+% ************************************
+%
+\def\@forendparenthesis#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forL@@P#2)\@nil)\@nil\@@#1{#3}\fi}
+\long\def\@forL@@P#1)#2)#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforL@@P #3\@@#4{#5}\fi\fi}
+\long\def\@iforL@@P#1)#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforL@@P\fi#2\@@#3{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Conventions}
+%
+% Switches for characterizing substitution sites as
+% left, right or left-right boxes become effective in
+% the commands |\putlatom|, |\putratom| and |\putlratom|.
+% They are used for warning wrong or unnecessary usages of
+% |\lmoiety| or |\rmoiety|.
+%
+% \changes{v1.02}{1998/10/20}{Switches \cs{@leftput} added}
+%
+% \begin{macro}{\if@leftput}
+% \begin{macro}{\if@rightput}
+% \begin{macro}{\if@leftrightput}
+% \begin{macro}{\resetlrput}
+% \begin{macrocode}
+\newif\if@rightput \@rightputfalse
+\newif\if@leftput \@leftputfalse
+\newif\if@leftrightput \@leftrightputfalse
+\def\resetlrput{\@rightputfalse\@leftputfalse
+\@leftrightputfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% We can use the macro |\rmoiety| for drawing a right-hand substituent
+% and the macro |\lmoiety| for drawing a left-hand substituent.
+%
+% \changes{v1.02}{1998/10/20}{The definitions of \cs{rmoiety} and
+% \cs{lmoiety} are changed. Warning function is added.}
+%
+% When you use a |\rmoiety| command in a left box produced by
+% a |\putlatom| command, the warning ``Wrong |\rmoiety|'' is reported.
+% When you use a |\lmoiety| command in a right box produced by
+% a |\putratom| command, the warning ``Wrong |\lmoiety|'' is reported.
+% If the ``draft'' option is effective, these cases are designated by
+% solid squares at the corresponding positions on pages.
+%
+% \begin{macro}{\rmoiety}
+% \begin{macro}{\lmoiety}
+% \begin{macrocode}
+% **************
+% * Convention *
+% **************
+% %\def\rmoiety#1{#1 \hss}
+% %\def\lmoiety#1{\hss #1}
+\def\rmoiety#1{\if@leftput
+\XyMTeXWarning{Wrong \string\rmoiety\space used in a left box}%
+\hbox to0pt{%
+\hbox to0pt{\hss\vrule width\overfullrule height\overfullrule}#1\hss}%
+\else\if@rightput\XyMTeXWarning{Unnecessary \string\rmoiety\space
+used in a right box}\hbox to0pt{#1\hss}%
+\else\if@leftrightput\hbox to0pt{#1\hss}%
+\fi\fi\fi\resetlrput}
+\def\lmoiety#1{\if@rightput
+\XyMTeXWarning{Wrong \string\lmoiety\space used in a right box}%
+\hbox to0pt{\hss#1\kern-.72em%
+\hbox to0pt{\vrule width\overfullrule height\overfullrule\hss}}\else
+\if@leftput\XyMTeXWarning{Unnecessary \string\lmoiety\space
+used in a left box}\hbox to0pt{\hss#1}%
+\else\if@leftrightput\hbox to0pt{\hss#1\kern-.72em}%
+\else\hbox to0pt{\hss#1\kern-.72em}\fi\fi\fi\resetlrput}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Warnings from \XyMTeX{} are concerned with commands
+% |\rmoiety| and |\lmoiety|.
+% \changes{v5.00}{2010/10/01}{\cs{if@dbondcolor} added for bondcolor package}
+%
+% \begin{macro}{\XyMTeXWarning}
+% \begin{macrocode}
+\newif\if@dbondcolor \@dbondcolorfalse
+\def\XyMTeXWarning#1{%
+\begingroup
+\if@dbondcolor\else
+ \let\protect\string
+ \immediate\write\@unused{^^IXyMTeX Warning: #1\space
+ on input line \the\inputlineno^^I}%
+\fi
+\endgroup%
+\global\@dbondcolorfalse%2010/10/01 for bond coloring
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Warnings concerned with ring fusion are based on
+% the command |\FuseWarning| of \XyMTeX{}.
+% \changes{v2.00}{1998/11/15}{Warning function is added.}
+% \changes{v5.00}{2010/10/01}{\cs{futileFuseWarning} added for bondcolor package}
+%
+% \begin{macro}{\@cnttempa}
+% \begin{macro}{\@cnttempb}
+% \begin{macro}{\FuseWarning}
+% \begin{macrocode}
+\newcount\@cnttempa
+\newcount\@cnttempb
+\def\FuseW@rning#1#2#3#4#5#6#7{%
+\@tempcnta=#1 \@tempcntb=#2
+\@cnttempa=#3 \advance\@cnttempa-#5
+\@cnttempb=#4 \advance\@cnttempb-#6
+\ifnum\@tempcnta=\@cnttempa
+ \ifnum\@tempcntb=\@cnttempb\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+ \fi
+\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+\fi}
+\def\futileFuseWarning#1#2#3#4#5#6#7{}
+\let\FuseWarning=\FuseW@rning
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The font of a substituent and its size are designated explicitly.
+% \changes{v4.00}{2002/5/30}{%
+% The comands \cs{substfont} and \cs{substfontsize} are added to
+% \cs{putlatom}, etc.}
+%
+% \begin{macro}{\substfont}
+% \begin{macro}{\substfontsize}
+% \begin{macrocode}
+\let\substfont=\normalfont
+\let\substfontsize=\normalsize
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The original \LaTeX{} command |\put| is changed into macros suitable to
+% more specific uses as follows.
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{rmoiety} is added.}
+%
+% \begin{macro}{\putlatom}
+% \begin{macrocode}
+\def\putlatom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftputtrue\substfont\substfontsize
+\hbox to0pt{\hss #3}\@leftputfalse}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{lmoiety} is added.}
+%
+% \begin{macro}{\putratom}
+% \begin{macrocode}
+%\def\putratom#1#2#3{\Put@Direct(#1,#2){\hbox to0pt{#3 \hss}}}
+\def\putratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@rightputtrue\substfont\substfontsize
+\hbox to0pt{#3 \hss}\@rightputfalse}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v4.00}{2002/5/30}{The mechanism of centering the
+% first letter of a substituent by \cs{@getcharwidthput} is added to
+% \cs{putlratom}.}
+%
+% \changes{v4.01a}{2004/11/11}{The mechanism of \cs{@getcharwidthput}
+% is altered (one argument to two arguments). Treatments of \$ and commands are added.}
+%
+% \begin{macro}{\@getcharwidthput}
+% \begin{macrocode}
+\newif\ifspecial@ylcs \special@ylcsfalse
+\def\@getcharwidthput#1#2\owari{%
+\global\special@ylcsfalse
+\if\noexpand#1\relax \global\special@ylcstrue \else%\if the category #1 is 'command'
+\ifcat#1$\relax \global\special@ylcstrue\else%if the category of #1 is 'special letter'
+\ifcat#1a\relax%if the category of #1 is 'letter'
+\setbox0=\hbox{#1}%
+\global\@dimtempa=0.7em
+\global\advance\@dimtempa by-\wd0\relax
+\global\divide\@dimtempa by2\relax
+\else\global\@dimtempa=0em\relax\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{The definition is changed. Warning function
+% for \cs{lmoiety} and \cs{rmoiety|} is added.}
+% \changes{v4.01a}{2004/11/11}{The mechanism of \cs{@getcharwidthput}
+% is altered (one argument to two arguments).}
+%
+% \begin{macro}{\putlratom}
+% \begin{macrocode}
+\def\putlratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftrightputtrue\substfont\substfontsize
+\setbox1=\hbox{%
+\expandafter\@getcharwidthput#3\relax\owari}%the centering mechanism
+\@tempdima=\@dimtempa%global to local
+\ifspecial@ylcs\hbox to.72em{#3\hss}\else
+\hbox to0.72em{\kern\@tempdima #3\hss}\kern-\@tempdima
+\fi}%
+\@leftrightputfalse\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.01b}{1998/10/06}{\cs{putlratom}: delete \sc{setbox0}}
+% \changes{v1.02}{1998/10/20}{The old definition is
+% totally replaced by the new definition}
+%
+% \begin{verbatim}
+% % old definitions
+% % \begin{macrocode}
+% % changed to avoid Overfull warnings 1993/11/11/S.Fujita
+% % \newif\if@moiety \@moietyfalse
+% % \def\putlratom#1#2#3{%
+% % \def\lmoiety##1{\global\@moietytrue}%
+% % \setbox0=\hbox{#3}%deleted by S. Fujita
+% % \if@moiety\def\lmoiety##1{\hss ##1}%
+% % \Put@Direct(#1,#2){\hbox to.72em{#3}}\global\@moietyfalse
+% % \else\Put@Direct(#1,#2){\hbox to.6em{#3\hss}}\fi}%
+% % \def\putlratom#1#2#3{\Put@Direct(#1,#2){\hbox to.6em{#3}}}
+% % \end{macrocode}
+% \end{verbatim}
+%
+% \begin{macro}{\Putlratom}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{macrocode}
+\def\Putlratom#1#2#3{\Put@Direct(#1,#2){\substfont\substfontsize
+\hbox to.8em{#3}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.01}{2000/6/20}{New command: \cs{dotorline}}
+% \begin{macro}{\dotorline}
+% \begin{macrocode}
+\def\d@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+ \@ifundefined{dottedline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \ifdim\unitlength>0.08pt
+ \dottedline{20}(#6,#7)(#8,#9)%
+ \else
+ \dottedline{30}(#6,#7)(#8,#9)\fi}}}
+\let\dotorline=\d@t@rline
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Parameters}
+%
+% The original point for drawing a structural formula is shifted to an
+% appropriate position, which is designated by the following parmeters
+% (counters) for coordinates.
+%
+%
+% \begin{macro}{\noshift}
+% \begin{macro}{\shifti}
+% \begin{macro}{\shiftii}
+% \begin{macro}{\shiftiii}
+% \begin{macrocode}
+% *******************************
+% * Parameters for Coordinates *
+% *******************************
+\newcount\noshift \noshift=0\relax%
+\newcount\shifti \shifti=240\relax%
+\newcount\shiftii \shiftii=400\relax%
+\newcount\shiftiii \shiftiii=800\relax%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The unit length for \XyMTeX{} is selected to be 0.1pt. This value
+% should not be maintained as possible as you can. A smaller value
+% may disapper a sloped line of short length.
+% \begin{macrocode}
+\unitlength.1pt%
+% \end{macrocode}
+%
+% Parameters for ring fusion are used in fusering.sty.
+% \changes{v2.00}{1999/2/16}{This has been added to process the old XyMTeX
+% manual for Version 1.01}
+%
+% \begin{macro}{\fuseAx}
+% \begin{macro}{\fuseBx}
+% \begin{macro}{\fuseAy}
+% \begin{macro}{\fuseBy}
+% \begin{macrocode}
+\def\fuseAx{0}
+\def\fuseBx{0}
+\def\fuseAy{0}
+\def\fuseBy{0}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Various switchs}
+%
+% These macros are used for clipping spaces at substitution positions.
+% Note that |\if@clip| is used in place of |\if@dclip|.
+%
+% \changes{v3.00}{2002/4/30}{New Command: \cs{originoutput}}
+%
+% \begin{macro}{\if@clip}
+% \begin{macro}{\if@aclip}
+% \begin{macro}{\if@bclip}
+% \begin{macro}{\if@cclip}
+% \begin{macro}{\if@eclip}
+% \begin{macro}{\if@fclip}
+% \begin{macro}{\iforigpt}
+% \begin{macro}{\@tmpaa}
+% \begin{macro}{\oriptoutput}
+% \begin{macro}{\OriptOutput}
+% \begin{macro}{\OriptOutputA}
+% \begin{macrocode}
+% ***************************************
+% * various flags (switches) *
+% * treatment of substitution positions *
+% ***************************************
+%
+% for 6- or lower-membered cycles
+%
+\newif\if@clip \@clipfalse% % switch for clipping at 4
+\newif\if@aclip \@aclipfalse% % switch for clipping at 1
+\newif\if@bclip \@bclipfalse% % switch for clipping at 2
+\newif\if@cclip \@cclipfalse% % switch for clipping at 3
+\newif\if@eclip \@eclipfalse% % switch for clipping at 5
+\newif\if@fclip \@fclipfalse% % switch for clipping at 6
+\newif\iforigpt \origptfalse% % switch for showing the original point
+\newcount\@tmpaa%to use as a local counter
+\def\@rigpt@utput#1{\iforigpt
+ \Put@sCircle(-\shiftii,-\shifti){50}%
+ \Put@oCircle(-\noshift,-\noshift){50}%
+ \typeout{command `#1' origin: %
+ (\the\noshift,\the\noshift) ---> (\the\shiftii,\the\shifti)}\fi}
+\def\OrigptOutput(#1,#2)#3{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(0,0){50}%
+ \typeout{command `#3' origin: (0,0) ---> (#1,#2)}\fi}
+\def\OrigptOutputA(#1,#2)(#3,#4)#5{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(-#3,-#4){50}%
+ \typeout{command `#5' origin: (#3,#4) ---> (#1,#2)}\fi}
+\def\origptoutput{\@ifnextchar({\@origptoutput}{\@origptoutput(,)}}
+\def\@origptoutput(#1){%
+\@ifnextchar({\@@origptoutput(#1)}{\@@origptoutput(#1)(,)}}
+\def\@@origptoutput(#1,#2)(#3,#4)#5{%
+\def\TEMParga{#1}\def\TEMPargb{#3}%
+\ifx\TEMParga\empty\relax
+\@rigpt@utput{#5}\else\ifx\TEMPargb\empty\relax
+\OrigptOutput(#1,#2){#5}\else
+\OrigptOutputA(#1,#2)(#3,#4){#5}\fi\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@gclip}
+% \begin{macro}{\if@hclip}
+% \begin{macro}{\if@iclip}
+% \begin{macro}{\if@jclip}
+% \begin{macro}{\if@xclip}
+% \begin{macrocode}
+%
+% for further-membered cycles
+%
+\newif\if@gclip \@gclipfalse%
+\newif\if@hclip \@hclipfalse%
+\newif\if@iclip \@iclipfalse%
+\newif\if@jclip \@jclipfalse%
+\newif\if@xclip \@xclipfalse%added for temp. 2013/03/24
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% The yl-function provides some difficulties in carrying
+% out an |\if@aclip| switch etc. if |\@acliptrue| etc. are
+% declared globally. In Version 2.01, |\@acliptrue| etc. are
+% declared locally by the grouping mechanism of \TeX. In order to
+% communicate information on |\@acliptrue| etc. outside the grouping,
+% the command |\clipinfo| (globally declared) stores tentatively
+% information on |@acliptrue| etc. in the form of a,b,c,$\ldots$.
+% Out side the grouping, the command |\developclipinfo| is
+% declared to reset |\@acliptrue| etc.
+%
+% \changes{v2.01}{2001/06/20}{Newly defined to communicate clipping
+% information.}
+% \changes{v5.01}{2013/3/24}{\cs{if@xclip} added}
+% \begin{macro}{\clipinfo}
+% \begin{macro}{\storeclipinfo}
+% \begin{macrocode}
+\def\clipinfo{}
+\def\storeclipinfo{%
+\if@aclip \xdef\clipinfo{\clipinfo a,}\fi
+\if@bclip \xdef\clipinfo{\clipinfo b,}\fi
+\if@cclip \xdef\clipinfo{\clipinfo c,}\fi
+\if@clip \xdef\clipinfo{\clipinfo d,}\fi
+\if@eclip \xdef\clipinfo{\clipinfo e,}\fi
+\if@fclip \xdef\clipinfo{\clipinfo f,}\fi
+\if@gclip \xdef\clipinfo{\clipinfo g,}\fi
+\if@hclip \xdef\clipinfo{\clipinfo h,}\fi
+\if@iclip \xdef\clipinfo{\clipinfo i,}\fi
+\if@jclip \xdef\clipinfo{\clipinfo j,}\fi
+\if@xclip \xdef\clipinfo{\clipinfo x,}\fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% locally declared
+%
+% \begin{macro}{\developclipinfo}
+% \begin{macrocode}
+\def\developclipinfo{%
+\expandafter\@tfor\expandafter\MEMBER\expandafter:%
+\expandafter=\clipinfo\do{%
+\if\MEMBER a\relax \@acliptrue\fi
+\if\MEMBER b\relax \@bcliptrue\fi
+\if\MEMBER c\relax \@ccliptrue\fi
+\if\MEMBER d\relax \@cliptrue\fi
+\if\MEMBER e\relax \@ecliptrue\fi
+\if\MEMBER f\relax \@fcliptrue\fi
+\if\MEMBER g\relax \@gcliptrue\fi
+\if\MEMBER h\relax \@hcliptrue\fi
+\if\MEMBER i\relax \@icliptrue\fi
+\if\MEMBER j\relax \@jcliptrue\fi}%
+\gdef\clipinfo{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Various commands and switchs for using substituents}
+%
+% For drawing a structure as a substituent, the argument (yl) can
+% be used. The following commands and counters are used for shifting
+% the substituent.
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+% \changes{v2.00}{1998/12/25}{Added: \cs{reset@yl@xydiff}}
+%
+% \begin{macro}{\@yl}
+% \begin{macro}{\yl@xdiff}
+% \begin{macro}{\yl@ydiff}
+% \begin{macro}{\yl@shiftii}
+% \begin{macro}{\yl@shifti}
+% \begin{macro}{\@ylii}
+% \begin{macro}{\@yli}
+% \begin{macro}{\@@ylii}
+% \begin{macro}{\@@yli}
+% \begin{macrocode}
+\def\@yl{(yl)}
+\newcount\yl@xdiff
+\newcount\yl@ydiff
+\newcount\yl@shiftii
+\newcount\yl@shifti
+\def\@ylii{0}\def\@yli{0}
+\def\@@ylii{}\def\@@yli{}
+\def\reset@@yl{\gdef\@@ylii{}\gdef\@@yli{}}
+\def\reset@yl@xydiff{\yl@xdiff=0 \yl@ydiff=0\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The following switches are used for shifting the substituent.
+% The locant flags such as |\@ylatrue| have been stoped to use.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+%
+% Old definition:
+% \begin{macrocode}
+% %%%%% \newif\if@yla \@ylafalse
+% %%%%% \newif\if@ylb \@ylbfalse
+% %%%%% \newif\if@ylc \@ylcfalse
+% %%%%% \newif\if@yld \@yldfalse
+% %%%%% \newif\if@yle \@ylefalse
+% %%%%% \newif\if@ylf \@ylffalse
+% \end{macrocode}
+%
+% \begin{macro}{\if@ylsw}
+% \begin{macro}{\if@@ylsw}
+% \begin{macrocode}
+\newif\if@ylsw \@ylswfalse
+\newif\if@@ylsw \@@ylswfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{verbatim}
+% Old definition:
+% % \begin{macrocode}
+% %%%%% \def\@reset@ylsw{\@ylafalse\@ylbfalse\@ylcfalse
+% %%%%% \@yldfalse\@ylefalse\@ylffalse\@ylswfalse}
+% % \end{macrocode}
+% \end{verbatim}
+%
+% \begin{macro}{\@reset@ylsw}
+% \begin{macrocode}
+\def\@reset@ylsw{\@ylswfalse\@@ylswfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{ShiftPicEnv and ShiftPicEnvB}
+%
+% For supporting the yl-function of the XyM notation system,
+% the mechanism for sifting the original point of each picture
+% enviroment is encapsulated so as to create the ShiftPicEnv and
+% the ShiftPicEnvB environments.
+%
+% \changes{v3.01}{2002/4/30}{Commands for shift of picture environment}
+% \changes{v4.00}{2002/5/30}{New environment: ShiftPicEnv}
+%
+% The original point and the size of a picture environment is shifted
+% due to whether a yl-function is declared or not. The first set of
+% coordinates is usually set as (0,0), which means that the subsituent
+% produced by a yl-funtions has no dimensions.
+%
+% Old definition for fused rings:
+% \begin{verbatim}
+% \if@sixfuseposv
+% \yl@shiftii=-\fuseAx
+% \yl@shifti=-\fuseAy
+% \advance\yl@shiftii\yl@xdiff
+% \advance\yl@shifti\yl@ydiff
+% \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+% \reset@yl@xydiff%1999/1/6 by S. Fujita
+% \else
+% \begin{sfpicture}(800,880)(-\shiftii,-\shifti)%
+% \origptoutput{sixfusev}%
+% \fi
+% \end{verbatim}
+%
+% For monocyclic compounds:
+% \begin{verbatim}
+% \ShiftPicEnv[1]%%[0] not for a fusion unit, [1] for a fusion usit
+% (0,0)(xshift,yshift)/%%picture after the action of yl function
+% %%no dimension
+% (x_size,y_size)(xshift,yshift)%%orginal picture
+% {name}%%name of control sequence
+% (xx_size,yy_size)(xxshift,yyshift)%%option to typeout abnormal shifts
+% \end{verbatim}
+%
+% \begin{macro}{\ShiftPicEnv}
+% \begin{macrocode}
+\newif\ifshiftpicsw\shiftpicswfalse
+\newif\if@sixfuseposv\@sixfuseposvfalse
+\def\ShiftPicEnv{%
+\@ifnextchar[{\ShiftPicEnv@}{\ShiftPicEnv@[0]}}
+\def\ShiftPicEnv@[#1](#2)(#3)/(#4)(#5)#6{%
+\@ifnextchar({\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}}%
+{\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(,)}}
+\def\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7){%
+\@ifnextchar({\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)}%
+{\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)(,)}}
+\def\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7)(#8){%
+\shiftpicswfalse%initialize
+\ifcase#1\relax%%%non-fused ring
+\if@ylsw \shiftpicswtrue
+\yl@shiftii=\@ylii
+\yl@shifti=\@yli
+\fi
+\or%%%fused ring
+\if@sixfuseposv \shiftpicswtrue
+ \yl@shiftii=-\fuseAx
+ \yl@shifti=-\fuseAy
+\fi
+\fi
+\ifshiftpicsw
+\advance\yl@shiftii\yl@xdiff
+\advance\yl@shifti\yl@ydiff
+\begin{sfpicture}(#2)(#3)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+\begin{sfpicture}(#4)(#5)%
+ \origptoutput(#7)(#8){#6}%
+\fi}
+\def\endShiftPicEnv{\end{sfpicture}}
+% \end{macrocode}
+% \end{macro}
+%
+% Old definition for bicyclic rings:
+% \begin{verbatim}
+% \if@ylsw
+% \yl@shiftii=\@ylii
+% \yl@shifti=\@yli
+% \advance\yl@shiftii\@@ylii
+% \advance\yl@shifti\@@yli
+% \advance\yl@shiftii\yl@xdiff
+% \advance\yl@shifti\yl@ydiff
+% \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)
+% \reset@yl@xydiff%1999/1/6 by S. Fujita
+% \else
+% \begin{sfpicture}(1200,880)(-\shiftii,-\shifti)%
+% \origptoutput{nonaheterov}%
+% \fi
+% \end{verbatim}
+%
+% For bicyclic compounds or others:
+% \begin{verbatim}
+% \ShiftPicEnvB(0,0)(xshift,yshift)/%%picture after the action of yl function
+% (x_size,y_size)(xshift,yshift)%%orginal picture
+% {name}%%name of control sequence
+% (xx_size,yy_size)(xxshift,yyshift)%%option to typeout abnormal shifts
+% \end{verbatim}
+%
+% \begin{macro}{\ShiftPicEnvB}
+% \begin{macrocode}
+\def\ShiftPicEnvB(#1)(#2)/(#3)(#4)#5{%
+\@ifnextchar({\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}}%
+{\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(,)}}
+\def\@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6){%
+\@ifnextchar({\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)}%
+{\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)(,)}}
+\def\@@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6)(#7){%
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \yl@shifti=\@yli
+ \advance\yl@shiftii\@@ylii
+ \advance\yl@shifti\@@yli
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(#1)(#2)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(#3)(#4)%
+ \origptoutput(#6)(#7){#5}%
+\fi}
+\def\endShiftPicEnvB{\end{sfpicture}}
+% \end{macrocode}
+% \end{macro}
+%
+% The further fusion of a three- or four-membered ring at a center bond
+% of a six-six or six-five ring is permitted, while that of a five-
+% or more-membered ring is not permitted. The macro |\@smallringsw|
+% is used for such switching (fusering.sty).
+%
+% \begin{macro}{\if@smallringsw}
+% \begin{macrocode}
+\newif\if@smallringsw \@smallringswfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Initialization}
+%
+% The |\iniflag| command initializes all of the clipping flags.
+% The |\iniatom| command initializes all of the strings of temporary use
+% such as |\aaa| and |\bbb|, which are associated with respective
+% atom positions.
+% The |\resetbdsw| command resets all of the strings of temporary use
+% such as |\@aaa| and |\@bbb|, which are associated with respective
+% bond positions.
+%
+% \begin{macro}{\iniflag}
+% \begin{macro}{\iniatom}
+% \begin{macro}{\resetbdsw}
+% \changes{v1.02}{1998/10/25}{Delete \sc{global}}
+% \changes{v4.02a}{2004/12/27}{Change \sc{ggg} to \sc{ggg}}
+%
+% \begin{macrocode}
+% %\def\iniflag{%
+% %\global\@aclipfalse\global\@bclipfalse%
+% %\global\@cclipfalse\global\@clipfalse\global\@eclipfalse%
+% %\global\@fclipfalse\global\@gclipfalse\global\@hclipfalse%
+% %\global\@iclipfalse\global\@jclipfalse%
+% %\global\@clipfusefalse}%
+% %\def\iniatom{%
+% %\gdef\aaa{}\gdef\bbb{}\gdef\ccc{}\gdef\ddd{}%
+% %\gdef\eee{}\gdef\fff{}%
+% %\gdef\gggA{}\gdef\hhh{}\gdef\iii{}\gdef\jjj{}%
+% %\gdef\@aaa{}\gdef\@bbb{}\gdef\@ccc{}\gdef\@ddd{}%
+% %\gdef\@eee{}\gdef\@fff{}%
+% %}%
+% %\def\resetbdsw{\gdef\@aaa{a}\gdef\@bbb{b}\gdef\@ccc{c}%
+% %\gdef\@ddd{d}\gdef\@eee{e}\gdef\@fff{f}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\iniflag{%
+\@aclipfalse\@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
+\@fclipfalse\@gclipfalse\@hclipfalse%
+\@iclipfalse\@jclipfalse\@clipfusefalse%
+\global\@smallringswfalse%
+}%
+\def\iniatom{%
+\def\aaa{}\def\bbb{}\def\ccc{}\gdef\ddd{}%
+\def\eee{}\def\fff{}%
+\def\gggA{}\def\hhh{}\def\iii{}\gdef\jjj{}%
+\def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}%
+\def\@eee{}\def\@fff{}%
+\def\@ggg{}\def\@hhh{}\def\@iii{}%
+\def\@jjj{}\def\@kkk{}%
+}%
+\def\resetbdsw{\def\@aaa{a}\def\@bbb{b}\def\@ccc{c}%
+\def\@ddd{d}\def\@eee{e}\def\@fff{f}%
+\def\@ggg{g}\def\@hhh{h}\def\@iii{i}%
+\def\@jjj{j}\def\@kkk{k}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% At the beginning of \XyMTeX\ processing, we initialize atom
+% information by the command |\iniatom|.
+%
+% \begin{macrocode}
+\iniatom
+% \end{macrocode}
+%
+%
+% \section{Macros for Vertical Formulas}
+% \subsection{Placing substituents for vertical formulas}
+%
+% Such a drawing command as |\setsixringv| uses several inner macros
+% for placing substituents with bonds. The first set of inner macros
+% are shown as follows.
+%
+% The command |\ylposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% The locant flags such as |\@ylatrue| have been stoped to use.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+% \changes{v5.01}{2013/06/19}{bug fix: initial setting of \cs{reset@@yl}}
+%
+% \begin{macro}{\ylposition}
+% \begin{macrocode}
+\def\ylposition#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The flags |\@lyatrue| etc are not used in a revised edition.
+%
+% \begin{macrocode}
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{171}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or\ifx\fff\empty
+ \gdef\@ylii{171}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substa| command is used for placing a substituent (|\@memberb|) at
+% the 1-position (top) of a vertical six-membered ring. The bond linking
+% between the substituent and the 1-position is drawn in the light of
+% the corresponding bond modifier (|\@tmpc| = Sa, Sb, SA, SB etc.).
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substa}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@substa{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=36\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \else\if\@tmpc u%(u) upper --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-31\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substa
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substb| command is used for placing a substituent (|\@memberb|) at
+% the 2-position (upper-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substb}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@substb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(201,303)(1,0){100}/(201,303)(301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \dotorline(201,358)(3,5){60}/(201,358)(261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alphau undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=18\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(194,331)(5,3){100}% % double bond at 2
+ \Put@Line(200,305)(5,3){100}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \dotorline(201,327)(5,3){100}/(201,327)(301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,327)(5,3){100}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else% %no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(171,303)(1,0){140}/(171,303)(311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \dotorline(171,303)(3,5){72}/(171,303)(243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=6\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(168,310)(5,3){120}% % double bond at 2
+ \Put@Line(174,284)(5,3){120}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \dotorline(171,303)(5,3){120}/(171,303)(291,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,3){120}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substb
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substc| command is used for placing a substituent (|\@memberb|) at
+% the 3-position (lower-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff|} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substc}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@substc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){110}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(201,103)(1,0){100}/(201,103)(301,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \dotorline(201,48)(3,-5){60}/(201,48)(261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(194,76)(5,-3){100}% % double bond at 3
+ \Put@Line(200,101)(5,-3){100}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \dotorline(201,79)(5,-3){100}/(201,79)(301,19)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,79)(5,-3){100}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(171,103)(1,0){140}/(171,103)(311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \dotorline(171,103)(3,-5){72}/(171,103)(243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=65\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(168,96)(5,-3){120}% % double bond at 3
+ \Put@Line(174,121)(5,-3){120}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \dotorline(171,103)(5,-3){120}/(171,103)(291,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(5,-3){120}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi
+}% end of \@substc
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substd| command is used for placing a substituent (|\@memberb|) at
+% the 4-position (bottom) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substd}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@substd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}%end of \@substd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@subste| command is used for placing a substituent (|\@memberb|) at
+% the 5-position (lower-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@subste}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@subste{%
+ \if@eclip%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){110}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \dotorline(-201,103)(-1,0){100}/(-201,103)(-301,103)%
+ \else\if\@tmpc u% (u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d% (d) down --- (A) alpha
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \dotorline(-201,48)(-3,-5){60}/(-201,48)(-261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-194,76)(-5,-3){100}% % double bond at 5
+ \Put@Line(-200,101)(-5,-3){100}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \dotorline(-201,79)(-5,-3){100}/(-201,79)(-301,21)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-220,79)(-5,-3){100}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \dotorline(-171,103)(-1,0){140}/(-171,103)(-311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \dotorline(-171,103)(-3,-5){72}/(-171,103)(-243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-168,96)(-5,-3){120}% % double bond at 5
+ \Put@Line(-174,121)(-5,-3){120}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \dotorline(-171,103)(-5,-3){120}/(-171,103)(-311,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-5,-3){120}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}%% single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}% end of \@subste
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@substf| command is used for placing a substituent (|\@memberb|) at
+% the 6-position (upper-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{New bond modifiers: FA, FB, GA, GB, Su, and Sd}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substf}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@substf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \dotorline(-201,303)(-1,0){100}/(-201,303)(-301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \dotorline(-201,358)(-3,5){60}/(-201,358)(-261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-194,331)(-5,3){100}% % double bond at 6
+ \Put@Line(-200,305)(-5,3){100}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \dotorline(-201,327)(-5,3){100}/(-201,327)(-301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-211,327)(-5,3){100}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \dotorline(-171,303)(-1,0){140}/(-171,303)(-311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \dotorline(-171,303)(-3,5){72}/(-171,303)(-243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-168,310)(-5,3){120}% % double bond at 6
+ \Put@Line(-174,284)(-5,3){120}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,3){120}/(-171,303)(-311,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,3){120}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\fi}% end of \@substf
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Coloring Atoms and Bonds}
+%
+% The \textsf{xcolor} package is loaded to color atoms and bonds.
+% \changes{v5.01}{2011/02/24}{Added}
+% \begin{macrocode}
+\RequirePackage{xcolor}
+% \end{macrocode}
+%
+% The command |\addbscolor| is defined to color substitution bonds.
+% \changes{v5.00}{2010/10/01}{Bond coloring}
+% \changes{v5.01}{2011/02/24}{Bond coloring: \cs{addbscolor} changed and
+% \cs{Addbscolor} added. But deleted.}
+%
+% \begin{verbatim}
+% e.g., \addbscolor{\cyan}{CH$_{3}$}
+% e.g., \Addbscolor{cyan}{CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\addbscolor}
+% \begin{macro}{\Addbscolor}
+% \begin{macro}{\setbscolor}
+% \begin{macrocode}
+\def\bondsubstcolor{}
+%\def\psbondsubstcolor{black}%added 2011/02/24
+\def\addbscolor#1#2{#2\gdef\bondsubstcolor{#1}}
+%\def\addbscolor#1#2{#2\gdef\bondsubstcolor{#1}%changed 2011/02/24
+%\gdef\psbondsubstcolor{\expandafter\@gobble\string #1}}
+%\def\Addbscolor#1#2{#2%added 2011/02/24
+%\expandafter\gdef\expandafter\bondsubstcolor\expandafter{\csname #1\endcsname}%
+%\gdef\psbondsubstcolor{#1}}
+\newif\ifbscolor
+\def\setbscolor{\addbscolor{}{}%
+\edef\@tmptmpb{\@tmpb}\edef\@tmptmpc{\@tmpc}%store original values
+\ifbscolor\setbox0=\hbox{\@memberb}\bondsubstcolor\setbox0=\hbox{}\fi
+\edef\@tmpb{\@tmptmpb}\edef\@tmpc{\@tmptmpc}%recover the original values
+}%
+\def\setBScolor#1{\begingroup\setbscolor#1\addbscolor{}{}\endgroup}%
+\def\bscolorswON{\bscolortrue}
+\def\bscolorswOFF{\bscolorfalse}
+\bscolorswON%default bond coloring
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% In addition to standard colors (e.g., \verb/\cyan/),
+% any colors can be created by using \verb/\defineXyMcolor/.
+% \changes{v5.01}{2011/02/24}{New color: \cs{defineXyMcolor}}
+%
+% \begin{verbatim}
+% \defineXyMcolor{My color name}{Color model}{Color value}
+% e.g.,
+% \defineXyMcolor{MyXyMcolor}{cmyk}{1,0,1,0}
+% \end{verbatim}
+% This defines a color named ``MyXyMcolor'' and the
+% corresponding control sequence \verb/MyXyMcolor/,
+% just as ``cyan'' corresponds to \verb/\cyan/.
+%
+% \begin{macro}{\defineXyMcolor}
+% \begin{macrocode}
+\def\defineXyMcolor#1#2#3{%
+\definecolor{#1}{#2}{#3}%
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% Pre-defined colors (e.g., olive) in the \textsf{xcolor} package
+% can be renamed to be applied to atom- and bond-coloring.
+% \changes{v5.01}{2011/02/24}{New color: \cs{XyMcolor}}
+%
+% \begin{verbatim}
+% \XyMcolor{new color_name}[color_model]{pre-defined color_name}
+% \end{verbatime}
+% e.g.,
+% \begin{verbatim}
+% \XyMcolor{XyMolive}{olive}
+% \end{verbatime}
+%
+% \begin{macro}{\XyMcolor}
+% \begin{macrocode}
+\def\XyMcolor#1{%
+\@ifnextchar[{\@XyMcolor{#1}}{\@XyMcolor{#1}[]}}
+\def\@XyMcolor#1[#2]#3{%
+\edef\tempColorModel{#2}%
+\ifx\tempColorModel\@empty\colorlet{#1}{#3}\else
+\colorlet{#1}[#2]{#3}\fi
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds on a six-membered ring}
+%
+% The |\setsixringv| takes 5 arguments.
+%
+% \begin{verbatim}
+% **************************************************************
+% * setting of atoms and bonds on a vertical six-membered ring *
+% **************************************************************
+%
+% \setsixringv{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The second argument |AD| is an adjustment value, which adjusts the original
+% set of locant numbers into the standard one between 1 to 6 for drawing
+% a six-membered ring.
+% The effective range of the standared set of locant numbers is
+% restricted by the auguments |LOWER| and |UPPER|. A minus value of
+% the last argument shows the anti-clockwise numbering, while zero or
+% a plus value represents the clockwise numbering.
+%
+% \begin{verbatim}
+%
+% AD : adjustment e.g. 0 for six-membered rings
+% LOWER : lower limit LOWER < effective range < UPPER
+% UPPER : upper limit
+% ORDER : >= 0 clockwise, <0 anti-clockwise
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding switches \cs{@yla} etc.}
+%
+% \begin{macro}{\setsixringv}
+% \begin{macrocode}
+\def\setsixringv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The following commands are not used in a revised version
+% because of the direct use of |\ifx\@memberb\@yl\else...\fi|.
+%
+% \begin{macrocode}
+% %\or \if@yla\else\@substa\fi% subst. on 1
+% %\or \if@ylb\else\@substb\fi% subst. on 2
+% %\or \if@ylc\else\@substc\fi% subst. on 3
+% %\or \if@yld\else\@substd\fi% subst. on 4
+% %\or \if@yle\else\@subste\fi% subst. on 5
+% %\or \if@ylf\else\@substf\fi% subst. on 6
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \or{\setbscolor\@substa\addbscolor{}{}}%% subst. on 1
+ \or{\setbscolor\@substb\addbscolor{}{}}%% subst. on 2
+ \or{\setbscolor\@substc\addbscolor{}{}}%% subst. on 3
+ \or{\setbscolor\@substd\addbscolor{}{}}%% subst. on 4
+ \or{\setbscolor\@subste\addbscolor{}{}}%% subst. on 5
+ \or{\setbscolor\@substf\addbscolor{}{}}%% subst. on 6
+\fi%end of ifcase
+\fi%
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds on a decaline ring}
+%
+% The command |\setdecaringv|
+% has been stopped to use and replaced by |\setsixringv|
+% (version 1.02).
+%
+% Definition of |\setdecaringv| has been deleted (version 2.01).
+%
+% \subsection{Setting-up substituents and bonds at fused positions}
+%
+% The command |\ylfusedposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% The locant flags such as |\@ylatrue| have been stopped to use.
+% \changes{v1.02}{1998/10/11}{Delete \cs{@ylatrue} etc.}
+% \changes{v1.02}{1998/10/13}{Adding \cs{@fused@link} condition}
+% \changes{v1.02}{1998/10/31}{Commands for setting substituents}
+%
+% \begin{macro}{\ylfusedposition}
+% \begin{macrocode}
+\def\ylfusedposition#1#2#3#4#5{%
+\@@ylswfalse%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax%
+\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 0
+ \else\if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylatrue% subst. on 0
+ \fi\fi%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1 F == (0,406), G == (171,303) for \@fused@linkfalse
+ % subst. on 1 G == (0,406), F == (171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\fi
+% %%%%%%%%%%%%%%%%
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\fi
+% %%%%%%%%%%%%%%%%%%
+\or %3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-303}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \else\if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-103}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}% end of \ylfusedposition
+% \end{macrocode}
+% \end{macro}
+%
+% The bond-setting commands |\GFbonda|, |\GFbondb|, |\GFbondc| and
+% |\GFbondd|, which are separated from the old |\setfusedbond| command,
+% are used to place a bond and a substituent at a fulsed position of
+% such a compound as a decaline.
+%
+% \changes{v1.02}{1998/10/12}{Separate \cs{GFbonda} etc.}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\GFbonda}
+% \begin{macro}{\GFbonda@a}
+% \begin{macro}{\GFbonda@b}
+% \begin{macrocode}
+\def\GFbonda{%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb F%single bond at F (fused position)
+ \GFbonda@a
+ \else\if\@tmpb G%single bond at G (fused position)
+ \GFbonda@b
+ \fi\fi%
+}%end of GFbonda
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbonda@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+% \Put@Direct(168,303){$\wr$}% unspecified single bond at F
+% \Put@Direct(168,353){$\wr$}%
+% \Put@Direct(168,403){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbonda@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \dotorline(171,103)(0,-1){140}/(171,103)(171,-37)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+% \Put@Direct(168,43){$\wr$}% unspecified single bond at G
+% \Put@Direct(168,-8){$\wr$}%
+% \Put@Direct(168,-57){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(0,-1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondb}
+% \begin{macro}{\GFbondb@a}
+% \begin{macro}{\GFbondb@b}
+% \begin{macrocode}
+\def\GFbondb{%
+% %%%%%%%%%%%%%%%%
+% subst. on 1 F == (0,406), G == (171,303) for \@fused@linkfalse
+% subst. on 1 G == (0,406), F == (171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+ \if@fused@link
+ \if\@tmpb G%single bond at G (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondb@b
+ \fi\fi%
+ \else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondb@b
+ \fi\fi%
+ \fi
+}% end of \GFbondb
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondb@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \dotorline(0,406)(-5,3){120}/(0,406)(-120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@a
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondb@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \dotorline(171,303)(5,-3){120}/(171,303)(291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@b
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondc}
+% \begin{macro}{\GFbondc@a}
+% \begin{macro}{\GFbondc@b}
+% \begin{macrocode}
+\def\GFbondc{%
+% %%%%%%%%%%%%%%%%
+% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+% subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondc@b
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondc@b
+ \fi\fi%
+\fi
+}% end of \GFbondc
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \def\GFbondc@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \dotorline(0,406)(5,3){120}/(0,406)(120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@a
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\GFbondc@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,-3){120}/(-171,303)(-291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ \dotorline(-171,303)(0,1){140}/(-171,303)(-171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@b
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GFbondd}
+% \begin{macrocode}
+\def\GFbondd{%
+% %%%%%%%%%%%%%%%%%%
+% 3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+ \if\@tmpb G%single bond at G (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \dotorline(303,171)(1,0){140}/(303,171)(443,171)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+% \Put@Direct(303,148){$\sim$}% unspecified single bond at G
+% \Put@Direct(353,148){$\sim$}%
+% \Put@Direct(403,148){$\sim$}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(1,0){140}% single bond at G
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb F%single bond at F (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+% \putlratom{-127}{140}{\@memberb}% % left or right type
+ \putlatom{-57}{140}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \dotorline(103,171)(-1,0){140}/(103,171)(-37,171)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+% \Put@Direct(40,148){$\sim$}% unspecified single bond at F
+% \Put@Direct(-13,148){$\sim$}%
+% \Put@Direct(-62,148){$\sim$}%
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-1,0){140}% single bond at F
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+ \fi\fi%
+}% end of \GFbondd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\setfusedbond| takes 5 arguments.
+%
+% \begin{verbatim}
+% ******************************************************
+% * setting of atoms and bonds at fused bond positions *
+% ******************************************************
+%
+% \setfusedbond{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+% Substituents at the fused positions (vertical bonds) are designated by
+% the number 0 and the following bond modifiers.
+% They are placed by means of the |\GFbonda| command.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 3 substitution positions)
+%
+% for 0 (vertical (0,1) fused positions)
+% F == (171,303) G == (171,103)
+%
+% 0FA : alpha single bond at F
+% 0FB : beta single bond at F
+% 0FU : unspecified single bond at F
+% 0GA : alpha single bond at G
+% 0GB : beta single bond at G
+% 0GU : unspecified single bond at G
+%
+% \end{verbatim}
+%
+% Substituents at the fused positions (diagonal bonds) are designated by
+% the number 1 and the following bond modifiers.
+% They are placed by means of the |\GFbondb| command.
+% \begin{verbatim}
+% for 1 (diagonal (5,-3) fused positions)
+% F == (0,406), G == (171,303)
+%
+% 1FA : alpha single bond at F
+% 1FB : beta single bond at F
+% 1FC : alpha single bond (downward) at F
+% 1FD : beta single bond (downward) at F
+% 1FU : unspecified single bond at F
+% 1GA : alpha single bond at G
+% 1GB : beta single bond at G
+% 1GC : alpha single bond (upward) at G
+% 1GD : beta single bond (upward) at G
+% 1GU : unspecified single bond at G
+%
+% \end{verbatim}
+%
+% Substituents at the fused positions (other diagonal bonds) are designated by
+% the number 2 and the following bond modifiers.
+% They are placed by means of the |\GFbondc| command.
+% \begin{verbatim}
+% for 2 (diagonal (-5,-3) fused positions)
+% F == (0,406), G == (-171,303)
+%
+% 2FA : alpha single bond at F
+% 2FB : beta single bond at F
+% 2FC : alpha single bond (upward) at F
+% 2FD : beta single bond (upward) at F
+% 2FU : unspecified single bond at F
+% 2GA : alpha single bond at G
+% 2GB : beta single bond at G
+% 2GC : alpha single bond (downward) at G
+% 2GD : beta single bond (downward) at G
+% 2GU : unspecified single bond at G
+%
+% \end{verbatim}
+%
+% Substituents at the fused positions (horizontal bonds) are designated by
+% the number 3 and the following bond modifiers.
+% They are placed by means of the |\GFbondd| command.
+% \begin{verbatim}
+% for 3 (horizontal (1,0) fused positions)
+% G == (303,171) F == (103,171)
+% %%%% F == (303,171) G == (103,171)
+%
+% 3FA : alpha single bond at F
+% 3FB : beta single bond at F
+% 3FU : unspecified single bond at F
+% 3GA : alpha single bond at G
+% 3GB : beta single bond at G
+% 3GU : unspecified single bond at G
+% \end{verbatim}
+%
+% The second argument |AD| is an adjustment value, which adjusts the original
+% set of locant numbers into the standard one between 0 to 3 for drawing
+% substituents on fused positions.
+% The effective range of the standared set of locant numbers is
+% restricted by the auguments |LOWER| and |UPPER|. A minus value of
+% the last argument shows the anti-clockwise numbering, while zero or
+% a plus value represents the clockwise numbering.
+%
+% \begin{verbatim}
+%
+% AD : adjustment e.g. 0 for six-membered rings
+% LOWER : lower limit LOWER < effective range < UPPER
+% UPPER : upper limit
+% ORDER : >= 0 clockwise, <0 anti-clockwise
+%
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding the \cs{\@memberb=\@y} condition}
+% \changes{v1.02}{1998/10/31}{Separate \cs{GFbonda} etc.}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \changes{v5.00}{2010/10/01}{Coloring Substitution Bond}
+%
+% \begin{macro}{\setfusedbond}
+% \begin{macrocode}
+\newif\if@fused@link \@fused@linkfalse
+\def\setfusedbond#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%%%
+% 0 fused positions % F == (171,303) G == (171,103)
+% %%%%%%%%%%%%%%%%%%
+{\setbscolor\GFbonda\addbscolor{}{}}%2010/10/01
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1 F == (0,406), G == (171,303)
+% %%%%%%%%%%%%%%%%
+{\setbscolor\GFbondb\addbscolor{}{}}%2010/10/01
+%\GFbondb
+% %%%%%%%%%%%%%%%%
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+% %%%%%%%%%%%%%%%%
+{\setbscolor\GFbondc\addbscolor{}{}}%2010/10/01
+%\GFbondc
+% %%%%%%%%%%%%%%%%%%
+\or %3 fused positions % G == (303,171) F == (103,171)
+% %%%%%%%%%%%%%%%%%%
+{\setbscolor\GFbondd\addbscolor{}{}}%2010/10/01
+%\GFbondd
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds at a given position}
+%
+% The |\setatombond| takes 3 arguments.
+%
+% \begin{verbatim}
+% ********************************************************
+% * setting of atoms and bonds at an appropiate position *
+% ********************************************************
+%
+% \setatombond{SUBSLIST}{AD}{SLOPE}
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+% Substituents at the fused positions (vertical bonds) are designated by
+% the number 0 and the following bond modifiers.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 3 substitution positions)
+% \end{verbatim}
+%
+% The second argument |AD| is an adjustment value, which adjusts the original
+% locant number into 1.
+%
+% \begin{verbatim}
+% AD : adjustment,
+% Set AD as being 1 = position number - AD
+% \end{verbatim}
+%
+% The argument |SLOPE| has the following meanings.
+% \begin{verbatim}
+% SLOPE
+%
+% 1 : (0,1) 7 : (0,-1)
+% 2 : (3,5) 8 : (-3,-5)
+% 3 : (5,3) 9 : (-5,-3)
+% 4 : (1,0) 10 : (-1,0)
+% 5 : (5,-3) 11 : (-5,3)
+% 6 : (3,-5) 12 : (-3,5)
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/14}{The bond-setting commands such as
+% \cs{setatombonda} ... \cs{setatombondh} are separated from
+% the original \cs{setatombond}.}
+%
+% \begin{macro}{\setatombond}
+% \begin{macrocode}
+\newif\if@clipfuse \@clipfusefalse
+\def\setatombond#1#2#3{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifx\@memberb\@yl\else
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1
+% %%%%%%%%%%%%%%%%
+%
+% (0,1)
+%
+ \ifnum#3=1\relax%(upward)
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01
+% \setatombonda
+%
+% (1,0)
+%
+ \else\ifnum#3=4\relax%(right)
+{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01
+% \setatombondb
+%
+% (0,-1)
+%
+ \else\ifnum#3=7\relax%(downward)
+{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01
+% \setatombondc
+%
+% (-5,3)
+%
+ \else\ifnum#3=11\relax%
+{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01
+% \setatombondd
+%
+% (5,-3)
+%
+ \else\ifnum#3=5\relax%
+{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01
+% \setatombonde
+%
+% (5,3)
+%
+ \else\ifnum#3=3\relax%
+{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01
+% \setatombondf
+%
+% (-5,-3)
+%
+ \else\ifnum#3=9\relax%
+{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01
+% \setatombondg
+%
+% (-1,0)
+%
+ \else\ifnum#3=10\relax%(left)
+{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01
+% \setatombondh
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\setatombond| uses the following bond-setting
+% commands.
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\setatombonda}
+% \begin{macro}{\setatombondb}
+% \begin{macro}{\setatombondc}
+% \begin{macro}{\setatombondd}
+% \begin{macro}{\setatombonde}
+% \begin{macro}{\setatombondf}
+% \begin{macro}{\setatombondg}
+% \begin{macro}{\setatombondh}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+\def\setatombonda{%upward (0,1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,40)(0,1){100}/(0,40)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+% \Put@Direct(-3,30){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,80){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,40)(0,1){100}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,40)(0,1){100}% % single bond at 1
+ \Put@Line(10,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb T%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,40)(0,1){100}% % single bond at 1
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \Put@Line(15,40)(0,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \else%no clip
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,0)(0,1){140}/(0,0)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+% \Put@Direct(-3,0){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,50){$\wr$}%
+% \Put@Direct(-3,100){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,1){140}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,0)(0,1){140}% % single bond at 1
+ \Put@Line(10,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,0)(0,1){140}% % single bond at 1
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \Put@Line(15,0)(0,1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombonda
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondb{%(right) (1,0)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(30,0)(1,0){110}/(30,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,10)(1,0){100}% % single bond at 1
+ \Put@Line(40,-10)(1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,15)(1,0){100}% % single bond at 1
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \Put@Line(40,-15)(1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \else%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(0,0)(1,0){140}/(0,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,10)(1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,-15)(1,0){140}% % single bond at 1
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \Put@Line(0,15)(1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \fi%
+}% end of \setatombondb
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondc{%(downward) (0,-1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,-40)(0,-1){100}/(0,-40)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+% \Put@Direct(-3,-90){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,-140){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-10,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-15,-40)(0,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+% \Put@Direct(-3,-60){$\wr$}% unspecified single bond at 1
+% \Put@Direct(-3,-110){$\wr$}%
+% \Put@Direct(-3,-160){$\wr$}%
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-10,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,0)(0,-1){140}% % single bond at 1
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-15,0)(0,-1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombondc
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondd{% (-5,3)
+ \if@clipfuse%
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-36,8)(-5,3){100}% % single bond at 1
+ \Put@Line(-24,24)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-39,3)(-5,3){100}% % single bond at 1
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \Put@Line(-21,33)(-5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,3){130}/(0,0)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,10)(-5,3){130}% % single bond at 1
+ \Put@Line(-6,-10)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,15)(-5,3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \Put@Line(-9,-15)(-5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondd
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombonde{%(5,-3)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-18)(5,-3){100}/(30,-18)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(36,-12)(5,-3){100}% % single bond at 1
+ \Put@Line(24,-28)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(39,-3)(5,-3){100}% % single bond at 1
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \Put@Line(21,-33)(5,-3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,-3){130}/(0,0)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(6,10)(5,-3){130}% % single bond at 1
+ \Put@Line(-6,-10)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(9,15)(5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \Put@Line(-9,-15)(5,-3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \fi%
+}% end of \setatombonde
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondf{%% (5,3)
+ \if@clipfuse%
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,18)(5,3){100}/(30,18)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(36,8)(5,3){100}% % single bond at 1
+ \Put@Line(24,24)(5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(39,3)(5,3){100}% % single bond at 1
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \Put@Line(21,33)(5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,3){120}/(0,0)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-10)(5,3){130}% % single bond at 1
+ \Put@Line(-6,10)(5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,-15)(5,3){130}% % single bond at 1
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \Put@Line(-9,15)(5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondf
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondg{%% (-5,-3)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \dotorline(-30,-18)(-5,-3){100}/(-20,-12)(-120,-72)%
+ \dotorline(-35,-21)(-5,-3){100}/(-35,-21)(-120,-72)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+% \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-36,-12)(-5,-3){100}% % single bond at 1
+ \Put@Line(-24,-28)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-39,-3)(-5,-3){100}% % single bond at 1
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-21,-33)(-5,-3){100}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+% \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=0\relax
+% \yl@ydiff=62\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,-3){130}/(0,0)(-130,-78)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-6,10)(-5,-3){130}% % single bond at 1
+ \Put@Line(6,-10)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-9,15)(-5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \Put@Line(9,-15)(-5,-3){130}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondg
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setatombondh{% (-1,0)
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-40,10)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-10)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-40,15)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-15)(-1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \else%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(0,10)(-1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(0,-15)(-1,0){140}% % single bond at 1
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \Put@Line(0,15)(-1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \fi%
+}% end of \setatombondh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ylatombondposition| is used to calculate the shift values
+% (|\@ylii| and |\@yli|) for applying the |\setatombond| command.
+% \changes{v1.02}{1998/10/15}{New command: \cs{ylatombondposition}
+% for setting substituents}
+%
+% \begin{macro}{\ylatombondposition}
+% \begin{macrocode}
+\def\ylatombondposition#1#2#3{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+% %%%%%%%%%%%%%%%%
+\or% subst. on 1
+% %%%%%%%%%%%%%%%%
+%
+% (0,1)
+%
+ \ifnum#3=1\relax%upward
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{-48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombonda
+%
+% (1,0)
+%
+ \else\ifnum#3=4\relax%(right)
+ \if@clipfuse%
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondb
+%
+% (0,-1)
+%
+ \else\ifnum#3=7\relax%(downward)
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondc
+%
+% (-5,3)
+%
+ \else\ifnum#3=11\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondd
+%
+% (5,-3)
+%
+ \else\ifnum#3=5\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombonde
+%
+% (5,3)
+%
+ \else\ifnum#3=3\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondf
+%
+% (-5,-3)
+%
+ \else\ifnum#3=9\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondg
+%
+% (-1,0)
+%
+ \else\ifnum#3=10\relax%(left)
+ \if@clipfuse%
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+% \setatombondh
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi%
+\fi}}% end of \ylatombondposition
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Macros for horizontal formulas}
+% \subsection{Placing substituents for horizontal formulas}
+%
+% Such a drawing command as |\setsixringh| uses several inner macros
+% for placing substituents with bonds. The first set of inner macros
+% are shown as follows.
+%
+% The command |\ylpositionh| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard point
+% of a substituent.
+% The locant flags such as |\@ylatrue| have been stopped to use.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}.
+% Commands for setting substituents}
+% \changes{v5.01}{2013/06/19}{bug fix: initial setting of \cs{reset@@yl}}
+%
+% \begin{macro}{\ylpositionh}
+% \begin{macrocode}
+\def\ylpositionh#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or \ifx\ccc\empty
+ \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or \ifx\fff\empty
+ \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+% The |\@hsubsta| command is used for placing a substituent (|\@memberb|) at
+% the 1-position (top) of a vertical six-membered ring. The bond linking
+% between the substituent and the 1-position is drawn in the light of
+% the corresponding bond modifier (|\@tmpc| = Sa, Sb, SA, SB etc.).
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubsta}
+% *************************************************************
+% * treatment of substitution positions for a horizontal type *
+% *************************************************************
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\def\@hsubsta{%
+\if@aclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(-30,-18)(-5,-3){100}/(-30,-18)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,-12)(-1,0){110}% % double bond at 1
+ \Put@Line(-30,12)(-1,0){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi
+ \fi\fi\fi%
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(0,0)(-5,-3){120}/(0,0)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(0,0)(-5,3){120}/(0,0)(-120,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,-12)(-1,0){140}% % double bond at 1
+ \Put@Line(0,12)(-1,0){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}%end of \@hsubsta
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstb| command is used for placing a substituent (|\@memberb|) at
+% the 2-position (upper-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstb}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putratom{73}{331}{\@memberb}% % right type
+ \dotorline(103,221)(0,1){100}/(103,221)(103,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \dotorline(59,201)(-5,3){100}/(59,201)(-41,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=-13\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(78,208)(-3,5){63}% % double bond at 2(62->63)
+ \Put@Line(100,219)(-3,5){63}% % double bond at 2(62->63)
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \dotorline(79,221)(-3,5){63}/(79,221)(16,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,221)(-3,5){63}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \dotorline(103,171)(0,1){140}/(103,171)(103,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \dotorline(103,171)(-5,3){120}/(103,171)(-7,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=64\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(96,168)(-3,5){72}% % double bond at 2
+ \Put@Line(121,174)(-3,5){72}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \dotorline(103,171)(-3,5){72}/(103,171)(31,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-3,5){72}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstb
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstc| command is used for placing a substituent (|\@memberb|) at
+% the 3-position (upper-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstc}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \dotorline(303,221)(0,1){110}/(303,221)(303,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(343,201)(5,3){100}/(343,201)(443,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-18\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(328,208)(3,5){63}% % double bond at 3
+ \Put@Line(303,214)(3,5){63}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \dotorline(343,221)(3,5){63}/(343,221)(406,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,221)(3,5){63}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \dotorline(303,171)(0,1){140}/(303,171)(303,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(303,171)(5,3){120}/(303,171)(423,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=6\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(310,168)(3,5){72}% % double bond at 3
+ \Put@Line(284,174)(3,5){72}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \dotorline(303,171)(3,5){72}/(303,171)(375,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(3,5){72}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstc
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstd| command is used for placing a substituent (|\@memberb|) at
+% the 4-position (right-hand) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@substd}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(436,-18)(5,-3){100}/(436,-18)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(436,18)(5,3){100}/(436,18)(536,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,-12)(1,0){110}% % double bond at 4
+ \Put@Line(436,12)(1,0){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(436,0)(1,0){110}/(436,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,0)(1,0){110}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(406,0)(5,-3){120}/(406,0)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(406,0)(5,3){120}/(406,0)(526,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,-12)(1,0){140}% % double bond at 4
+ \Put@Line(406,12)(1,0){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(406,0)(1,0){140}/(406,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(1,0){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstd
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubste| command is used for placing a substituent (|\@memberb|) at
+% the 5-position (lower-right) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.00}{2003/4/1}{Bug fix}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubste}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@hsubste{%
+ \if@eclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+% \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-321)%
+ \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(343,-201)(5,-3){100}/(343,-201)(443,-260)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=22\relax
+ \yl@xdiff=12\relax
+ \yl@ydiff=82\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(328,-208)(3,-5){63}% % double bond at 5 (62->63)
+ \Put@Line(306,-224)(3,-5){63}% % double bond at 5 (62->63)
+ \else\if\@tmpb B%beta single bond
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5(62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ \dotorline(343,-221)(3,-5){63}/(343,-221)(406,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,-221)(3,-5){63}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+% \yl@xdiff=43\relax
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}% % single bond at 5(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+% \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-321)%
+ \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-311)%2002/5/30
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(303,-171)(5,-3){120}/(303,-171)(423,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{283}{-402}{\@memberb}% % right type
+ \putratom{273}{-402}{\@memberb}% % right type
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=3\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+% \putratom{363}{-402}{\@memberb}%
+ \Put@Line(310,-168)(3,-5){72}% % double bond at 5
+ \Put@Line(284,-174)(3,-5){72}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+% \putratom{363}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \dotorline(303,-171)(3,-5){72}/(303,-171)(375,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(3,-5){72}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+ \yl@xdiff=9\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putratom{363}{-402}{\@memberb}%
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubste
+% \end{macrocode}
+% \end{macro}
+%
+% The |\@hsubstf| command is used for placing a substituent (|\@memberb|) at
+% the 6-position (lower-left) of a vertical six-membered ring.
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/15}{Added bond modifiers: FA, FB, GA, GB, Su, Sd}
+% \changes{v4.03}{2005/07/20}{Wave bonds for stereochemistry: U, FU, GU, SU, SV}
+% \begin{macro}{\@hsubstf}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@hsubstf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-221)(0,-1){100}/(103,-221)(103,-321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(59,-201)(-5,-3){100}/(59,-201)(-41,-261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putratom{73}{-402}{\@memberb}% % right type
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{73}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=49\relax
+ \yl@xdiff=59\relax
+ \yl@ydiff=82\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(78,-208)(-3,-5){63}% % double bond at 6 (62->63)
+ \Put@Line(106,-219)(-3,-5){63}% % double bond at 6 (62->63)
+ \else\if\@tmpb B%beta single bond
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \dotorline(79,-221)(-3,-5){63}/(79,-221)(16,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,-221)(-3,-5){63}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+% \yl@xdiff=43\relax
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+% \yl@xdiff=59\relax
+ \yl@xdiff=63\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+% \else\if\@tmpb B%beta single bond
+ \else\if\@tmpc B%beta single bond%1998/10/11 by S. Fujita
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-171)(0,-1){140}/(103,-171)(103,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(103,-171)(-5,-3){120}/(103,-171)(-17,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+% \yl@xdiff=20\relax
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+% \putratom{83}{-402}{\@memberb}% % right type
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=65\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(96,-168)(-3,-5){72}% % double bond at 6
+ \Put@Line(121,-174)(-3,-5){72}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=59\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ {%
+ \thicklines%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \dotorline(108,-171)(-3,-5){72}/(103,-171)(31,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(108,-171)(-3,-5){72}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+ \yl@xdiff=59\relax
+% \yl@ydiff=111\relax
+ \yl@ydiff=91\relax
+% \putlratom{-27}{-402}{\@memberb}%
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstf
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting-up substituents and bonds on a six-membered ring}
+%
+% The |\setsixringh| macro takes 5 arguments, which have the same meanings
+% as described in the definition of the |\setsixringv| macro.
+%
+% \begin{verbatim}
+% ****************************************************************
+% * setting of atoms and bonds on a horizontal six-membered ring *
+% ****************************************************************
+%
+% \setsixringh{SUBSLIST}{AD}{LOWER}{UPPER}{ORDER}
+%
+% \end{verbatim}
+%
+% The first argument |SUBSLIST| is a list of substituents, which is
+% represented in the standard format of \XyMTeX{}.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% \end{verbatim}
+%
+% The second argument |AD| is an adjustment value, which adjusts the original
+% set of locant numbers into the standard one between 1 to 6 for drawing
+% a six-membered ring.
+% The effective range of the standared set of locant numbers is
+% restricted by the auguments |LOWER| and |UPPER|. A minus value of
+% the last argument shows the anti-clockwise numbering, while zero or
+% a plus value represents the clockwise numbering.
+%
+% \begin{verbatim}
+% AD : adjustment e.g. 0 for six-membered rings
+% LOWER : lower limit LOWER < effective range < UPPER
+% UPPER : upper limit
+% ORDER : >= 0 clockwise, <0 anti-clockwise
+%
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/11}{Adding switches \cs{@yla} etc.}
+% \changes{v1.02}{1998/10/31}{Deleting switches \cs{@yla} etc.}
+%
+% \begin{macro}{\setsixringh}
+% \begin{macrocode}
+\def\setsixringh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The following commands are not used in a revised version
+% because of the direct use of |\ifx\@memberb\@yl\else...\fi|.
+%
+% \begin{macrocode}
+% %\or \if@yla\else\@hsubsta\fi% subst. on 1
+% %\or \if@ylb\else\@hsubstb\fi% subst. on 2
+% %\or \if@ylc\else\@hsubstc\fi% subst. on 3
+% %\or \if@yld\else\@hsubstd\fi% subst. on 4
+% %\or \if@yle\else\@hsubste\fi% subst. on 5
+% %\or \if@ylf\else\@hsubstf\fi% subst. on 6
+% \end{macrocode}
+%
+% \begin{macrocode}
+\or{\setbscolor\@hsubsta\addbscolor{}{}}% subst. on 1%2010/10/01
+\or{\setbscolor\@hsubstb\addbscolor{}{}}% subst. on 2%2010/10/01
+\or{\setbscolor\@hsubstc\addbscolor{}{}}% subst. on 3%2010/10/01
+\or{\setbscolor\@hsubstd\addbscolor{}{}}% subst. on 4%2010/10/01
+\or{\setbscolor\@hsubste\addbscolor{}{}}% subst. on 5%2010/10/01
+\or{\setbscolor\@hsubstf\addbscolor{}{}}% subst. on 6%2010/10/01
+\fi%end of ifcase
+\fi\fi\fi\fi}}% %end of setsixringh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Mocros linking Substituents}
+% \subsection{Right-handed linking unit}
+%
+% A structure-drawing command can be used to typeset a substituent
+% by using a (yl)-argument. Moreover, the macro |\ryl| permits us
+% to draw an intermediate linking unit.
+% \changes{v1.02}{1998/10/25}{New command: \cs{ryl} etc.}
+%
+% \begin{macro}{\ryl}
+% \begin{macro}{\@ryl}
+% \begin{macrocode}
+\newcount\x@ryl
+\newcount\y@ryl
+\def\ryl{\@ifnextchar({\@ryl}{\@ryl()}}
+\def\@ryl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-70
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putlatom{40}{-30}{\centeraaa}% % left type
+\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondF\addbscolor{}{}}%2010/10/01%\or\setatombondF%1 (3,5)
+\or{\setbscolor\setatombondA\addbscolor{}{}}%2010/10/01%\or\setatombondA%2 (1,1)
+\or{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01%\or\setatombondf%3 (5,3)
+\or{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01%\or\setatombondb%4 (1,0)
+\or{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01%\or\setatombonde%5 (5,-3)
+\or{\setbscolor\setatombondB\addbscolor{}{}}%2010/10/01%\or\setatombondB%6 (1,-1)
+\or{\setbscolor\setatombondE\addbscolor{}{}}%2010/10/01%\or\setatombondE%7 (3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \ryl macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The substituent-setting commands |\setatombondF| etc. are used
+% in the macro |\ryl|.
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+%
+% \begin{macro}{\setatombondF}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondF}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+\def\setatombondF{%% (3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(30,50)(3,5){60}/(30,50)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(40,44)(3,5){60}% % single bond at 1
+ \Put@Line(20,56)(3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(45,41)(3,5){60}% % single bond at 1
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \Put@Line(15,59)(3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(3,5){90}/(0,0)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(10,-6)(3,5){90}% % single bond at 1
+ \Put@Line(-10,6)(3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(15,-9)(3,5){90}% % single bond at 1
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \Put@Line(-15,9)(3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondF
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondE}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondE}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondE{%% (3,-5)
+ \if@clipfuse%
+ \yl@xdiff=10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-50)(3,-5){60}/(30,-50)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(40,-44)(3,-5){60}% % single bond at 1
+ \Put@Line(20,-56)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(45,-41)(3,-5){60}% % single bond at 1
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \Put@Line(15,-59)(3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putratom{80}{-220}{\@memberb}% % right type
+ \putratom{80}{-240}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(3,-5){90}/(0,0)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(10,6)(3,-5){90}% % single bond at 1
+ \Put@Line(-10,-6)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(15,9)(3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \Put@Line(-15,-9)(3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putratom{80}{-220}{\@memberb}% % right type
+ \putratom{80}{-240}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondE
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondA}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondA}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondA{%% (1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,40)(1,1){100}/(40,40)(140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,36)(1,1){100}% % single bond at 1
+ \Put@Line(36,46)(1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,30)(1,1){100}% % single bond at 1
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \Put@Line(30,50)(1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{140}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,1){120}/(0,0)(120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-6)(1,1){120}% % single bond at 1
+ \Put@Line(-6,6)(1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,-10)(1,1){120}% % single bond at 1
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \Put@Line(-10,10)(1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{120}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondA
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondB}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondB}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondB{%% (1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,-40)(1,-1){100}/(40,-40)(140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,-36)(1,-1){100}% % single bond at 1
+ \Put@Line(36,-46)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,-30)(1,-1){100}% % single bond at 1
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \Put@Line(30,-50)(1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-200}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,-1){120}/(0,0)(120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,6)(1,-1){120}% % single bond at 1
+ \Put@Line(-6,-6)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,10)(1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \Put@Line(-10,-10)(1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{-180}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondB
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Left-handed linking unit}
+%
+% A structure-drawing command can be used to typeset a substituent
+% by using a (yl)-argument. Moreover, the macro |\lyl| permits us
+% to draw an intermediate linking unit.
+% \changes{v1.02}{1998/10/25}{New command: \cs{lyl} etc.}
+% \begin{macro}{\lyl}
+% \begin{macrocode}
+\def\lyl{\@ifnextchar({\@lyl}{\@lyl()}}
+\def\@lyl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-80
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+%\advance\x@ryl by0
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+%\advance\x@ryl by0
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=-\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putratom{-40}{-30}{\centeraaa}% % right type
+\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondD\addbscolor{}{}}%2010/10/01%\or\setatombondD%1 (-3,5)
+\or{\setbscolor\setatombondH\addbscolor{}{}}%2010/10/01%\or\setatombondH%2 (-1,1)
+\or{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01%\or\setatombondd%3 (-5,3)
+\or{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01%\or\setatombondh%4 (-1,0)
+\or{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01%\or\setatombondg%5 (-5,-3)
+\or{\setbscolor\setatombondC\addbscolor{}{}}%2010/10/01%\or\setatombondC%6 (-1,-1)
+\or{\setbscolor\setatombondG\addbscolor{}{}}%2010/10/01%\or\setatombondG%7 (-3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \lyl macro
+% \end{macrocode}
+% \end{macro}
+%
+% The substituent-setting commands |\setatombondD| etc. are used
+% in the macro |\ryl|.
+%
+% \begin{macro}{\setatombondD}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondD}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondD{%% (-3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(-30,50)(-3,5){60}/(-30,50)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-40,44)(-3,5){60}% % single bond at 1
+ \Put@Line(-20,56)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-45,41)(-3,5){60}% % single bond at 1
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \Put@Line(-15,59)(-3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{160}{\@memberb}% % left type
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(-3,5){90}/(0,0)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-10,-6)(-3,5){90}% % single bond at 1
+ \Put@Line(10,6)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-15,-9)(-3,5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \Put@Line(15,9)(-3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+% \yl@xdiff=-10\relax
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{160}{\@memberb}% % left type
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondD
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondG}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondG}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondG{%% (-3,-5)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,-50)(-3,-5){60}/(-30,-50)(-90,-150)%
+% \dotorline(-33,-55)(-3,-5){60}/(-30,-50)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-40,-44)(-3,-5){60}% % single bond at 1
+ \Put@Line(-20,-56)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-45,-41)(-3,-5){60}% % single bond at 1
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \Put@Line(-15,-59)(-3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{-220}{\@memberb}% % left type
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+% \yl@ydiff=70\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-3,-5){90}/(0,0)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-10,6)(-3,-5){90}% % single bond at 1
+ \Put@Line(10,-6)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-15,9)(-3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \Put@Line(15,-9)(-3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+% \putlatom{-80}{-220}{\@memberb}% % left type
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondG
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondH}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondH}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondH{%% (-1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,40)(-1,1){100}/(-40,40)(-140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,36)(-1,1){100}% % single bond at 1
+ \Put@Line(-36,46)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,30)(-1,1){100}% % single bond at 1
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \Put@Line(-30,50)(-1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{140}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,1){120}/(0,0)(-120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,-6)(-1,1){120}% % single bond at 1
+ \Put@Line(6,6)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,-10)(-1,1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \Put@Line(10,10)(-1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{120}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondH
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setatombondC}
+% \changes{v1.02}{1998/10/25}{New command: \cs{setatombondC}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v4.03}{2005/07/20}{Concrete wave bonds for stereochemistry: FU, GU}
+% \begin{macrocode}
+\def\setatombondC{%% (-1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,-40)(-1,-1){100}/(-40,-40)(-140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,-36)(-1,-1){100}% % single bond at 1
+ \Put@Line(-36,-46)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,-30)(-1,-1){100}% % single bond at 1
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \Put@Line(-30,-50)(-1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{-200}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,-1){120}/(0,0)(-120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,6)(-1,-1){120}% % single bond at 1
+ \Put@Line(6,-6)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,10)(-1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \Put@Line(10,-10)(-1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{-180}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondC
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Minor Linking Units}
+%
+% \begin{macro}{\ayl}
+% \begin{macrocode}
+\def\ayl{\@ifnextchar({\@ayl@}{\@ayl@(10,40)}}
+\def\@ayl@(#1,#2)#3{\begingroup\yl@xdiff=0 \yl@ydiff=0%
+\kern#1\unitlength\raise#2\unitlength\hbox to0pt{#3\hss}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\upnobond}
+% \begin{macro}{\downnobond}
+% \begin{macrocode}
+\def\upnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BiFunc}
+% \changes{v5.01}{2013/03/14}{\cs{BiFunc} added to biphenyl-type derivative}
+% The format (slope){length}{moietyA}{moietyB} supports the function for
+% linking moiety A and moiety B through a bond with a given slope.
+% \begin{macrocode}
+\def\BiFunc(#1,#2)#3#4#5{%
+\SlopetoXY(0,0)(#1,#2){#3}%
+\begin{picture}(\@tempcntXa,\@tempcntYa)(0,0)%
+\Put@Line(0,0)(#1,#2){#3}%
+\put(0,0){#4}%
+\put(\@tempcntXa,\@tempcntYa){#5}%
+\end{picture}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Spriro-Ring Commands}
+% \subsection{Basic Commands for Six-Membered Rings}
+%
+% For treating spiro-ring fusion, the following basic commands
+% (|\test@vertix| and |\test@vertix@sixv|) are added at the
+% time of releasing Version 2.00. These commands are generally
+% used for detecting hetero atoms at respective vertices of a
+% heterocyclic ring.
+%
+% The command |\test@vertix| is used in |\test@vertix@sixv|.
+% which is designed to test the existence of a hetero atom
+% (or an equivalent) at each vertix of a six-membered ring.
+%
+% \begin{macro}{\test@vertix}
+% \begin{macro}{\test@vertix@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{test@vertix} and
+% \cs{test@vertix@sixv}}
+% \changes{v4.03b}{2006/9/6}{\cs{ggg} is changed into \cs{gggA} for \cs{test@vertix} and
+% \cs{test@vertix@sixv}}
+% \begin{macrocode}
+\def\test@vertix#1{%
+ \def\tempG{#1}\relax%%%added 2006/9/6
+ \if\tempG g\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1A\endcsname{}%
+ \fi\fi
+ \else
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1\endcsname{}%
+ \fi\fi
+ \fi
+}
+% \end{macrocode}
+%
+% The command |\test@vertix@sixv| is designed to test
+% the existence of a hetero atom (or an equivalent)
+% at each vertix of a six-membered ring.
+%
+% \begin{macrocode}
+\def\test@vertix@sixv#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+% \changes{v2.00}{1996/11/14}{@ in place of a net value}
+ \or \test@vertix{#2}%
+ \or \test@vertix{#3}%
+ \or \test@vertix{#4}%
+ \or
+ \if\@tmpb a\relax%
+ \def\iii{@}%
+ \else
+ \test@vertix{#5}%
+ \fi
+ \or \test@vertix{#6}%
+ \or \test@vertix{#7}%
+\fi\fi}}% end of \test@vertix@sixv
+%\def\test@vertix@sixv#1#2#3#4#5#6#7{%
+%\@forsemicol\member:=#1\do{%
+%\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+%\ifcase\@tmpa%
+%% \changes{v2.00}{1996/11/14}{@ in place of a net value}
+% \or \test@vertix{#2}%
+% \or \test@vertix{#3}%
+% \or \test@vertix{#4}%
+% \or \test@vertix{#5}%
+% \or \test@vertix{#6}%
+% \or \test@vertix{#7}%
+%\fi}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\set@hetatom@sixv| is to set a spiro group
+% (stored as |\@memberb|)
+% at a vertix designated by |\@tmpaa| (or originally by |\@tmpa|).
+% The atom modifier `s' designates that the spiro group contains
+% a carbon atom (a vertix) at a spiro position, while `h'
+% represents the presence of a hetero atom at a spiro position.
+% The absence of such atom modifiers shows the substitution
+% of a usual hetero atom. The command |\set@hetatom@sixv| is
+% used in such commands as |\sixheterov| and |\sixheterovi|
+% for treating thier ATOMLISTs,
+% e.g. |1==N;1s==\sixheterov{}{1==(yl)}|.
+%
+% \begin{macro}{\set@hetatom@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@hetatom@sixv}}
+% \begin{macrocode}
+\def\set@hetatom@sixv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}\relax%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa \relax%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putratom{0}{356}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putratom{0}{406}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@acliptrue%
+ \putratom{-31}{356}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ccliptrue%
+ \putratom{135}{65}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{0}{50}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{0}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@cliptrue%
+ \putratom{-31}{-10}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putlatom{-135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putlatom{-175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ecliptrue%
+ \putlatom{-135}{65}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{-175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixv
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\set@hetatom@sixh| is to set a spiro group
+% (stored as |\@memberb|)
+% at a vertix designated by |\@tmpaa| (or originally by |\@tmpa|).
+% The atom modifier `s' designates that the spiro group contains
+% a carbon atom (a vertix) at a spiro position, while `h'
+% represents the presence of a hetero atom at a spiro position.
+% The absence of such atom modifiers shows the substitution
+% of a usual hetero atom. The command |\set@hetatom@sixh| is
+% used in such commands as |\sixheteroh| and |\sixheterohi|
+% for treating thier ATOMLISTs,
+% e.g. |1==N;1s==\sixheteroh{}{1==(yl)}|.
+%
+% \begin{macro}{\set@hetatom@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@hetatom@sixh}}
+% \begin{macrocode}
+\def\set@hetatom@sixh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{103}{171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{303}{171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{346}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{406}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{346}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{283}{-131}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{303}{-171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{125}{-131}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{103}{-171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Basic Commands for Six-Six Rings}
+%
+% The command |\test@vertix@decav| is designed to test
+% the existence of a hetero atom (or an equivalent)
+% at each vertix of a six-six fused ring.
+%
+% \begin{macro}{\test@vertix@decav}
+% \begin{macrocode}
+\def\test@vertix@decav#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa \relax%
+ \or\or\or\or\or\or
+ \or \test@vertix{#2}%
+ \or
+ \if\@tmpb a\relax%
+ \def\jjj{@}%
+ \else
+ \test@vertix{#3}%
+ \fi
+ \or \test@vertix{#4}%
+ \or \test@vertix{#5}%
+% \or \test@vertix{#6}%
+% \or \test@vertix{#7}%
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\set@vrtx@fuse| is to set an atom (stored as
+% |\@memberb|) at one (stored as |\@tmpa|) of the fused vertices
+% of a six-six ring.
+% These vertices are incapable of accomodating a spiro group.
+% On the other hand, the other positions can take spiro groups
+% (stored as |\@memberb|), which are treated by means of
+% the command |\set@hetatom@sixv|.
+% The command |\set@vrtx@fuse| is used in such commands
+% as |\decaheterov| for treating thier ATOMLISTs,
+%
+% \begin{macro}{\set@vrtx@fuse}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@vrtx@fuse}}
+% \changes{v2.01}{1998/11/15}{The prefix \cs{\global} are omitted.}
+% \begin{macrocode}
+\def\set@vrtx@fuse#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+% \global\@icliptrue%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\or%10 (= 8a)
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@fuse
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\set@vrtx@fuseh| is to set an atom (stored as
+% |\@memberb|) at one (stored as |\@tmpa|) of the fused vertices
+% of a six-six ring.
+% These vertices are incapable of accomodating a spiro group.
+% On the other hand, the other positions can take spiro groups
+% (stored as |\@memberb|), which are treated by means of
+% the command |\set@hetatom@sixh|.
+% The command |\set@vrtx@fuseh| is used in such commands
+% as |\decaheteroh| for treating thier ATOMLISTs,
+%
+% \begin{macro}{\set@vrtx@fuseh}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@vrtx@fuseh}}
+% \changes{v2.01}{1998/11/15}{The prefix \cs{\global} are omitted.}
+% \begin{macrocode}
+\def\set@vrtx@fuseh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%2001/06/20 by S. Fujita%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \ifx\@tmpb\empty\relax
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 4a position}%
+ \fi
+\or%10 (= 8a)
+ \ifx\@tmpb\empty\relax
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 8a position}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@fuseh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Membered Rings}
+% \subsection{Normal Vertical Type}
+%
+% The macro |\set@fusionadd@sixv| is an inner command contained
+% in the definition of |\sixheterov| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@sixv|.
+%
+% \begin{macro}{\set@fusionadd@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusionadd@sixv}}
+% \begin{macrocode}
+\def\set@fusionadd@sixv{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixv
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@sixv| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@sixv}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@sixv}}
+% \begin{macrocode}
+\def\set@fusion@sixv{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixv
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse Vertical Type}
+%
+% The macro |\set@fusionadd@sixvi| is an inner command contained
+% in the definition of |\sixheterovi| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@sixvi|.
+%
+% \begin{macro}{\set@fusionadd@sixvi}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusionadd@sixvi}}
+% \begin{macrocode}
+\def\set@fusionadd@sixvi{%
+ \if\@@tmpa 4\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixvi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@sixvi
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@sixvi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@sixvi}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@sixvi}}
+% \begin{macrocode}
+\def\set@fusion@sixvi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@sixvi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal Horizontal Type}
+%
+% The macro |\set@fusionadd@sixh| is an inner command contained
+% in the definition of |\sixheteroh| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@sixh|.
+%
+% \begin{macro}{\set@fusionadd@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusionadd@sixh}}
+% \begin{macrocode}
+\def\set@fusionadd@sixh{%
+ \if\@@tmpa 4\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixh
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@sixh| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@sixh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@sixh}}
+% \begin{macrocode}
+\def\set@fusion@sixh{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+% \FuseWarning{103}{171}%
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse Horizontal Type}
+%
+% The macro |\set@fusionadd@sixhi| is an inner command contained
+% in the definition of |\sixheterohi| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@sixhi|.
+%
+% \begin{macro}{\set@fusionadd@sixhi}
+% \changes{v2.00}{1998/11/29}{New command: \cs{set@fusionadd@sixhi}}
+% \begin{macrocode}
+\def\set@fusionadd@sixhi{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@sixhi
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@sixhi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@sixhi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@sixhi}}
+% \begin{macrocode}
+\def\set@fusion@sixhi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa F\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Six Fused Rings}
+% \subsection{Conventions for Warning}
+%
+% \begin{macro}{\UnfavorableFusion}
+% \changes{v2.00}{1998/12/23}{New command: \cs{UnfavorableFusion}}
+% \begin{macrocode}
+\def\UnfavorableFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Unfavorable Fusion for bond `#1'}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ForbiddenFusion}
+% \changes{v2.00}{1998/12/23}{New command: \cs{ForbiddenFusion}}
+% \begin{macrocode}
+\def\ForbiddenFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Forbidden Fusion for bond `#1'}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal Vertical Type}
+%
+% The macro |\set@fusion@decav| is an inner command contained
+% in the definition of |\decalinev| and |\decaheterov|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@decav}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@decav}}
+% \begin{macrocode}
+\def\set@fusion@decav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-Bottom Type}
+%
+% The macro |\set@fusion@decavb| is an inner command contained
+% in the definition of |\decalinevb| and |\decaheterovb| etc.,
+% where the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@decavb}
+% \changes{v2.00}{1998/12/25}{New command: \cs{set@fusion@decavb}}
+% \begin{macrocode}
+\def\set@fusion@decavb{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{b}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{B}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{c}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{C}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decavb
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-Top Type}
+%
+% The macro |\set@fusion@decavt| is an inner command contained
+% in the definition of |\decalinevt| and |\decaheterovt| etc.,
+% where the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@decavt}
+% \changes{v2.00}{1998/12/25}{New command: \cs{set@fusion@decavt}}
+% \begin{macrocode}
+\def\set@fusion@decavt{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{b}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{B}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of \set@fusion@decavt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal Horizontal Type}
+%
+% The macro |\set@fusion@decah| is an inner command contained
+% in the definition of |\decalineh| and |\decaheteroh|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixh|.
+%
+% \begin{macro}{\set@fusion@decah}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@decah}}
+% \begin{macrocode}
+\def\set@fusion@decah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decah
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Six-Six Fused Rings}
+% \subsection{Normal Vertical Type of Anthracenes}
+%
+% The macro |\set@fusion@hanthrav| is an inner command contained
+% in the definition of |\hanthracenev|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@hanthrav}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@hanthrav}}
+% \begin{macrocode}
+\def\set@fusion@hanthrav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{g}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{G}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{l}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{L}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{f}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{F}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{e}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{E}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hanthrav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal Vertical Type of Phenanthrenes}
+%
+% The macro |\set@fusion@hphenanv| is an inner command contained
+% in the definition of |\hphenanthrenev|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@hphenanv}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@phenanv}}
+% \begin{macrocode}
+\def\set@fusion@hphenanv{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{d}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{D}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hphananv
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Five-Membered Rings}
+% \subsection{Normal vertical type}
+%
+% The macro |\set@fusionadd@fivev| is an inner command contained
+% in the definition of |\fiveheterov| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@fivev|.
+%
+% \begin{macro}{\set@fusionadd@fivev}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusionadd@fivev}}
+% \begin{macrocode}
+\def\set@fusionadd@fivev{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{150}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivev
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivev
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fivev| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fivev}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusion@fivev}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\newif\iffusesw \fuseswfalse
+\def\set@fusion@fivev{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa d\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@fivev
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The macro |\set@fusionadd@fivevi| is an inner command contained
+% in the definition of |\fiveheterov| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@fivevi|.
+%
+% \begin{macro}{\set@fusionadd@fivevi}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusionadd@fivevi}}
+% \begin{macrocode}
+\def\set@fusionadd@fivevi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{213}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivevi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivevi
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fivevi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fivevi}
+% \changes{v2.00}{1998/12/4}{New command: \cs{set@fusion@fivevi}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fivevi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fivevi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal horizontal type}
+%
+% The macro |\set@fusionadd@fiveh| is an inner command contained
+% in the definition of |\fiveheteroh| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@fiveh|.
+%
+% \begin{macro}{\set@fusionadd@fiveh}
+% \changes{v2.00}{1998/11/29}{New command: \cs{set@fusionadd@fiveh}}
+% \begin{macrocode}
+\def\set@fusionadd@fiveh{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{196}{-30}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fiveh
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fiveh| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fiveh}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@fiveh}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fiveh{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa E\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fiveh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The macro |\set@fusionadd@fivehi| is an inner command contained
+% in the definition of |\fiveheterohi| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@fivehi|.
+%
+% \begin{macro}{\set@fusionadd@fivehi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusionadd@fivehi}}
+% \begin{macrocode}
+\def\set@fusionadd@fivehi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{140}{-30}{\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fivehi
+ \fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fivehi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fivehi}
+% \changes{v2.00}{1998/11/23}{New command: \cs{set@fusion@fivehi}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fivehi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Ring-fusion Commands for Six-Five-fused Rings}
+% \subsection{Normal vertical type}
+%
+% The macro |\set@fusion@nonav| is an inner command contained
+% in the definition of |\indanev| and |\nonaheterov|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixvi|.
+%
+% \begin{macro}{\set@fusion@nonav}
+% \begin{macrocode}
+\def\set@fusion@nonav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonav
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The macro |\set@fusion@nonavi| is an inner command contained
+% in the definition of |\indanevi| and |\nonaheterovi|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixv|.
+%
+% \begin{macro}{\set@fusion@nonavi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@nonavi}}
+% \begin{macrocode}
+\def\set@fusion@nonavi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonavi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal horizontal type}
+%
+% The macro |\set@fusion@nonah| is an inner command contained
+% in the definition of |\nonaheteroh|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixhi|.
+%
+% \begin{macro}{\set@fusion@nonah}
+% \changes{v2.00}{1998/12/6}{New command: \cs{set@fusion@nonah}}
+% \begin{macrocode}
+\def\set@fusion@nonah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonah
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The macro |\set@fusion@nonahi| is an inner command contained
+% in the definition of |\indanehi| and |\nonaheterohi|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixh|.
+%
+% \begin{macro}{\set@fusion@nonahi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@nonahi}}
+% \begin{macrocode}
+\def\set@fusion@nonahi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonahi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Truncation for two or more atoms}
+%
+% The macros |SetTwoAtoms| and |SetTwoAtomx| are user commands for
+% truncating a vertex to accommodate two or more atoms.
+%
+% \begin{macro}{SetTwoAtoms}
+% \changes{v5.01}{2013/03/22}{New command: \cs{SetTwoAtoms}}
+% \begin{macrocode}
+\def\SetTwoAtoms#1{\setbox0=\hbox{#1}%
+{\white \rule{\wd0}{\ht0}}\kern-\wd0{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{SetTwoAtomx}
+% \changes{v5.01}{2013/04/06}{New command: \cs{SetTwoAtomx}}
+% \begin{macrocode}
+\def\SetTwoAtomx#1{{\setbox0=\hbox{#1}%
+\@tempdimd=\wd0 \advance\@tempdimd by8\unitlength%
+\@tempdime=\ht0 \advance\@tempdime by8\unitlength%
+\kern-4\unitlength{\white \rule[-4\unitlength]{\@tempdimd}{\@tempdime}}%
+\kern-\@tempdimd{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Original Setting}
+%
+% \begin{macro}{originalsetting}
+% \begin{macrocode}
+\originalpicture%initial setting
+%</chemstr>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/chemstr.ins b/macros/latex/contrib/xymtex/base/chemstr.ins
new file mode 100644
index 0000000000..374b426a15
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/chemstr.ins
@@ -0,0 +1,62 @@
+\def\batchfile{chemstr.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 1998, 2001, 2002, 2004, 2005, 2006, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1998 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+Version 4.01a Released on November 11, 2004
+Version 4.02 Released on December 20, 2004
+Version 4.03 Released on July 20, 2005
+Version 4.03b Released on September 5, 2006
+Version 4.04a Released on July 7, 2009
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on February 24, 2011
+Version 5.01 Released on March 22, 2013
+
+The Present Version:
+Version 5.01 Released on June 19, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files chemstr.dtx and chemstr.ins
+and the derived file chemstr.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{chemstr.drv}{t}{%
+ \from{chemstr.dtx}{driver}}
+
+\generateFile{chemstr.sty}{t}{%
+ \from{chemstr.dtx}{chemstr}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/chemstr.sty b/macros/latex/contrib/xymtex/base/chemstr.sty
new file mode 100644
index 0000000000..fc4c2276f3
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/chemstr.sty
@@ -0,0 +1,6716 @@
+%%
+%% This is file `chemstr.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chemstr.dtx (with options: `chemstr')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 1998, 2001, 2002, 2004, 2005, 2006, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1998 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%% Version 4.01a Released on November 11, 2004
+%% Version 4.02 Released on December 20, 2004
+%% Version 4.03 Released on July 20, 2005
+%% Version 4.03b Released on September 5, 2006
+%% Version 4.04a Released on July 7, 2009
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on February 24, 2011
+%% Version 5.01 Released on March 22, 2013
+%%
+%% The Present Version:
+%% Version 5.01 Released on June 19, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files chemstr.dtx and chemstr.ins
+%% and the derived file chemstr.sty.
+%%
+%% =======================================
+%%
+%% File: chemstr.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released June 19, 2013 by Shinsaku Fujita}
+\def\j@urnalname{chemstr}
+\def\versi@ndate{June 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+
+\def\select@@Upsionfont{%
+\edef\test@rm{\rmdefault}%
+\edef\test@sf{\sfdefault}%
+\edef\test@tt{\ttdefault}%
+\ifx\f@family \test@rm\relax
+{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@sf\relax
+{\expandafter\csname OT1/cmss/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else\ifx\f@family \test@tt\relax
+{\expandafter\csname OT1/cmtt/\f@series/\f@shape/\f@size%
+\endcsname\char'7}%
+\else{\expandafter\csname OT1/cmr/\f@series/\f@shape/\f@size%
+\endcsname
+\char'7}\fi\fi\fi%
+}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox to0.8em{\hss\select@@Upsionfont%
+\hss}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+\newif\ifPSmode \PSmodefalse
+\newif\ifPDFmode \PDFmodefalse
+\newif\ifTeXLaTeXmode \TeXLaTeXmodetrue%default TeX/LaTeX mode.
+\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
+\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
+\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
+\newcount\@tempcntXd \newcount\@tempcntYd \newcount\@tempcntzzzz
+\newdimen\@dimtempa
+\newdimen\@tempdimd
+\newdimen\@tempdime
+\def\waveunitA(#1,#2)#3{%
+\@tempcntz=#1\relax
+\@tempcntzz=#2\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntz=3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax%
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-3\relax%
+ \ifnum\@tempcntzz=5\relax%
+ \@tempcntXa=-16 \@tempcntYa=-10\relax%
+ \@tempcntXd=16 \@tempcntYd=10\relax
+ \else\ifnum\@tempcntzz=-5\relax%
+ \@tempcntXa=-16 \@tempcntYa=10\relax
+ \@tempcntXd=16 \@tempcntYd=-10\relax
+ \fi\fi
+\else\ifnum\@tempcntz=5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=-10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=-10 \@tempcntYa=-16\relax
+ \@tempcntXd=10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=-5\relax
+ \ifnum\@tempcntzz=3\relax
+ \@tempcntXa=10 \@tempcntYa=16\relax
+ \@tempcntXd=10 \@tempcntYd=-16\relax
+ \else\ifnum\@tempcntzz=-3\relax
+ \@tempcntXa=10 \@tempcntYa=-16\relax
+ \@tempcntXd=-10 \@tempcntYd=16\relax
+ \fi\fi
+\else\ifnum\@tempcntz=1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=20\relax
+ \@tempcntXd=0 \@tempcntYd=-20\relax
+ \fi
+\else\ifnum\@tempcntz=-1\relax
+ \ifnum\@tempcntzz=0\relax
+ \@tempcntXa=0 \@tempcntYa=-20\relax
+ \@tempcntXd=0 \@tempcntYd=20\relax
+ \fi
+\else\ifnum\@tempcntz=0\relax
+ \ifnum\@tempcntzz=1\relax
+ \@tempcntXa=-20 \@tempcntYa=0\relax
+ \@tempcntXd=20 \@tempcntYd=0\relax
+ \fi
+\fi\fi\fi\fi\fi\fi\fi
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+\ifnum\@tempcntzz=0\relax%(1,0) (-1,0)
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXb=#3\relax
+ \else
+ \@tempcntXb=-#3\relax
+ \fi
+ \@tempcntYb=0
+ \ifnum\@tempcntz>0\relax
+ \@tempcntXa=#3\relax
+ \else
+ \@tempcntXa=-#3\relax
+ \fi
+ \divide\@tempcntXa by2\relax
+ \@tempcntXd=\@tempcntXa
+\else\ifnum\@tempcntz=0\relax%(0,1) (0,-1)
+ \@tempcntXb=0\relax
+ \ifnum\@tempcntzz>0\relax
+ \@tempcntYb=#3\relax
+ \@tempcntYa=#3\relax
+ \else
+ \@tempcntYb=-#3\relax
+ \@tempcntYa=-#3\relax
+ \fi
+ \divide\@tempcntYa by2\relax
+ \@tempcntYd=\@tempcntYa
+\else
+\ifnum\@tempcntz>0\relax
+\@tempcntXb=#3\relax
+\else
+\@tempcntXb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntYb=#3\relax
+\else
+\@tempcntYb=-#3\relax
+\fi
+\ifnum\@tempcntzz>0\relax
+\@tempcntzzzz=#2\relax
+\else
+\@tempcntzzzz=-#2\relax
+\fi
+\multiply\@tempcntYb by10\relax
+\multiply\@tempcntYb by\@tempcntzzzz\relax
+\ifnum\@tempcntz>0\relax
+\@tempcntzzzz=#1\relax
+\else
+\@tempcntzzzz=-#1\relax
+\fi
+\divide\@tempcntYb by\@tempcntzzzz\relax
+\divide\@tempcntYb by10\relax
+\@tempcntzzzz=\@tempcntXb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntXa by\@tempcntzzzz
+\advance\@tempcntXd by\@tempcntzzzz
+\@tempcntzzzz=\@tempcntYb
+\divide\@tempcntzzzz by2\relax
+\advance\@tempcntYa by\@tempcntzzzz
+\advance\@tempcntYd by\@tempcntzzzz
+\fi\fi
+%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%
+\@tempcntXc=\@tempcntXb
+\multiply\@tempcntXc by2\relax
+\@tempcntYc=\@tempcntYb
+\multiply\@tempcntYc by2\relax
+\begin{picture}(0,0)(0,0)%
+\multiput(0,0)(\@tempcntXc,\@tempcntYc){3}{%
+\qbezier(0,0)(\@tempcntXa,\@tempcntYa)(\@tempcntXb,\@tempcntYb)}%
+\multiput(\@tempcntXb,\@tempcntYb)(\@tempcntXc,\@tempcntYc){2}{%
+\qbezier(0,0)(\@tempcntXd,\@tempcntYd)(\@tempcntXb,\@tempcntYb)}%
+\end{picture}%
+}%end of \waveunitA
+\newif\ifwavebond \wavebondfalse
+\def\WaveBonds{\wavebondtrue}
+\def\NormalBonds{\wavebondfalse}
+\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){%
+\ifwavebond \@tempcnta=#5\relax
+\divide\@tempcnta by5\relax
+\waveunitA(#3,#4){\@tempcnta}\else
+\line(#3,#4){#5}\fi}}
+\global\let\@ldline=\line%store the oridinal line command of picture enviroment
+\global\let\@ldthicklines=\thicklines
+\global\let\@ldthinlines=\thinlines
+%%\def\Put@@Line(#1,#2)(#3,#4)#5{\Put@Direct(#1,#2){\line(#3,#4){#5}}}
+\def\Put@@sCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle*{#3}}}
+\def\Put@@oCircle(#1,#2)#3{\Put@Direct(#1,#2){\circle{#3}}}
+\newif\ifxymtexpssw\xymtexpsswfalse
+\def\originalpicture{%
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\Put@Direct=\put
+\let\Multiput@Direct=\multiput
+\let\line=\@ldline
+\let\dotorline=\d@t@rline
+\let\thicklines=\@ldthicklines
+\let\thinlines=\@ldthinlines
+\thinlines
+\let\Put@Line=\Put@@Line
+\let\Put@sCircle=\Put@@sCircle
+\let\Put@oCircle=\Put@@oCircle
+\xymtexpsswfalse
+\@ifundefined{@changeunitlength}{}{%
+\let\changeunitlength=\@changeunitlength}%
+\unitlength=0.1pt}
+\def\changexymtextops{\xymtexpsswtrue}
+\def\SlopetoXY(#1,#2)(#3,#4)#5{%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax}
+\def\@forsemicol#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
+\long\def\@forl@@p#1;#2;#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforl@@p #3\@@#4{#5}\fi\fi}
+\long\def\@iforl@@p#1;#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforl@@p\fi#2\@@#3{#4}}
+\def\@m@mb@r#1==#2;{\def\@membera{#1}\def\@memberb{#2}}
+\def\twoch@r#1#2{\gdef\@tmpa{#1}\gdef\@tmpb{#2}}
+\def\twoch@@r#1#2{\gdef\@@tmpa{#1}\gdef\@@tmpb{#2}}
+\newif\ifdrawsamesubst\drawsamesubstfalse
+\def\@get@first@char#1{\if\noexpand#1\relax\else
+\@cnttempa=`#1\relax
+\ifnum\@cnttempa>47\relax
+\ifnum\@cnttempa<58\relax
+\XyMTeXWarning{The second number (\@tmpb) of a two-digit number (\@tmpa\@tmpb)
+is missed. ^^J\space This should be written in braces,
+^^J\space e.g. `{\@tmpa\@tmpb}D==substituent' and `{{\@tmpa\@tmpb}}==substituent'.}
+\fi\fi\fi}
+\def\threech@r#1#2#3{\gdef\@tmpa{#1}\gdef\@tmpb{#2}\gdef\@tmpc{#3}%
+\begingroup
+\ifdrawsamesubst\ifx\@tmpa\empty\relax\else\ifx\@tmpb\empty\relax\else
+\setbox0=\hbox{\@get@first@char#2\relax}\fi\fi\fi
+\endgroup}
+\def\twoCH@@R#1#2//{\def\@@tmpa{#1}\def\@@tmpb{#2}}
+\def\twoCH@R#1#2//{\def\@tmpa{#1}\def\@tmpb{#2}}
+
+\def\@forendparenthesis#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@forL@@P#2)\@nil)\@nil\@@#1{#3}\fi}
+\long\def\@forL@@P#1)#2)#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else%
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforL@@P #3\@@#4{#5}\fi\fi}
+\long\def\@iforL@@P#1)#2\@@#3#4{\def#3{#1}\ifx #3\@nnil%
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforL@@P\fi#2\@@#3{#4}}
+\newif\if@rightput \@rightputfalse
+\newif\if@leftput \@leftputfalse
+\newif\if@leftrightput \@leftrightputfalse
+\def\resetlrput{\@rightputfalse\@leftputfalse
+\@leftrightputfalse}
+\def\rmoiety#1{\if@leftput
+\XyMTeXWarning{Wrong \string\rmoiety\space used in a left box}%
+\hbox to0pt{%
+\hbox to0pt{\hss\vrule width\overfullrule height\overfullrule}#1\hss}%
+\else\if@rightput\XyMTeXWarning{Unnecessary \string\rmoiety\space
+used in a right box}\hbox to0pt{#1\hss}%
+\else\if@leftrightput\hbox to0pt{#1\hss}%
+\fi\fi\fi\resetlrput}
+\def\lmoiety#1{\if@rightput
+\XyMTeXWarning{Wrong \string\lmoiety\space used in a right box}%
+\hbox to0pt{\hss#1\kern-.72em%
+\hbox to0pt{\vrule width\overfullrule height\overfullrule\hss}}\else
+\if@leftput\XyMTeXWarning{Unnecessary \string\lmoiety\space
+used in a left box}\hbox to0pt{\hss#1}%
+\else\if@leftrightput\hbox to0pt{\hss#1\kern-.72em}%
+\else\hbox to0pt{\hss#1\kern-.72em}\fi\fi\fi\resetlrput}
+\newif\if@dbondcolor \@dbondcolorfalse
+\def\XyMTeXWarning#1{%
+\begingroup
+\if@dbondcolor\else
+ \let\protect\string
+ \immediate\write\@unused{^^IXyMTeX Warning: #1\space
+ on input line \the\inputlineno^^I}%
+\fi
+\endgroup%
+\global\@dbondcolorfalse%2010/10/01 for bond coloring
+}
+\newcount\@cnttempa
+\newcount\@cnttempb
+\def\FuseW@rning#1#2#3#4#5#6#7{%
+\@tempcnta=#1 \@tempcntb=#2
+\@cnttempa=#3 \advance\@cnttempa-#5
+\@cnttempb=#4 \advance\@cnttempb-#6
+\ifnum\@tempcnta=\@cnttempa
+ \ifnum\@tempcntb=\@cnttempb\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+ \fi
+\else
+ \XyMTeXWarning{Mismatched fusion at bond `#7'}%
+\fi}
+\def\futileFuseWarning#1#2#3#4#5#6#7{}
+\let\FuseWarning=\FuseW@rning
+\let\substfont=\normalfont
+\let\substfontsize=\normalsize
+\def\putlatom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftputtrue\substfont\substfontsize
+\hbox to0pt{\hss #3}\@leftputfalse}\endgroup}
+\def\putratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@rightputtrue\substfont\substfontsize
+\hbox to0pt{#3 \hss}\@rightputfalse}\endgroup}
+\newif\ifspecial@ylcs \special@ylcsfalse
+\def\@getcharwidthput#1#2\owari{%
+\global\special@ylcsfalse
+\if\noexpand#1\relax \global\special@ylcstrue \else%\if the category #1 is 'command'
+\ifcat#1$\relax \global\special@ylcstrue\else%if the category of #1 is 'special letter'
+\ifcat#1a\relax%if the category of #1 is 'letter'
+\setbox0=\hbox{#1}%
+\global\@dimtempa=0.7em
+\global\advance\@dimtempa by-\wd0\relax
+\global\divide\@dimtempa by2\relax
+\else\global\@dimtempa=0em\relax\fi\fi\fi}
+\def\putlratom#1#2#3{\begingroup\resetlrput
+\Put@Direct(#1,#2){\@leftrightputtrue\substfont\substfontsize
+\setbox1=\hbox{%
+\expandafter\@getcharwidthput#3\relax\owari}%the centering mechanism
+\@tempdima=\@dimtempa%global to local
+\ifspecial@ylcs\hbox to.72em{#3\hss}\else
+\hbox to0.72em{\kern\@tempdima #3\hss}\kern-\@tempdima
+\fi}%
+\@leftrightputfalse\endgroup}
+\def\Putlratom#1#2#3{\Put@Direct(#1,#2){\substfont\substfontsize
+\hbox to.8em{#3}}}
+\def\d@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+ \@ifundefined{dottedline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \ifdim\unitlength>0.08pt
+ \dottedline{20}(#6,#7)(#8,#9)%
+ \else
+ \dottedline{30}(#6,#7)(#8,#9)\fi}}}
+\let\dotorline=\d@t@rline
+\newcount\noshift \noshift=0\relax%
+\newcount\shifti \shifti=240\relax%
+\newcount\shiftii \shiftii=400\relax%
+\newcount\shiftiii \shiftiii=800\relax%
+\unitlength.1pt%
+\def\fuseAx{0}
+\def\fuseBx{0}
+\def\fuseAy{0}
+\def\fuseBy{0}
+\newif\if@clip \@clipfalse% % switch for clipping at 4
+\newif\if@aclip \@aclipfalse% % switch for clipping at 1
+\newif\if@bclip \@bclipfalse% % switch for clipping at 2
+\newif\if@cclip \@cclipfalse% % switch for clipping at 3
+\newif\if@eclip \@eclipfalse% % switch for clipping at 5
+\newif\if@fclip \@fclipfalse% % switch for clipping at 6
+\newif\iforigpt \origptfalse% % switch for showing the original point
+\newcount\@tmpaa%to use as a local counter
+\def\@rigpt@utput#1{\iforigpt
+ \Put@sCircle(-\shiftii,-\shifti){50}%
+ \Put@oCircle(-\noshift,-\noshift){50}%
+ \typeout{command `#1' origin: %
+ (\the\noshift,\the\noshift) ---> (\the\shiftii,\the\shifti)}\fi}
+\def\OrigptOutput(#1,#2)#3{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(0,0){50}%
+ \typeout{command `#3' origin: (0,0) ---> (#1,#2)}\fi}
+\def\OrigptOutputA(#1,#2)(#3,#4)#5{\iforigpt
+ \Put@sCircle(-#1,-#2){50}\Put@oCircle(-#3,-#4){50}%
+ \typeout{command `#5' origin: (#3,#4) ---> (#1,#2)}\fi}
+\def\origptoutput{\@ifnextchar({\@origptoutput}{\@origptoutput(,)}}
+\def\@origptoutput(#1){%
+\@ifnextchar({\@@origptoutput(#1)}{\@@origptoutput(#1)(,)}}
+\def\@@origptoutput(#1,#2)(#3,#4)#5{%
+\def\TEMParga{#1}\def\TEMPargb{#3}%
+\ifx\TEMParga\empty\relax
+\@rigpt@utput{#5}\else\ifx\TEMPargb\empty\relax
+\OrigptOutput(#1,#2){#5}\else
+\OrigptOutputA(#1,#2)(#3,#4){#5}\fi\fi}
+\newif\if@gclip \@gclipfalse%
+\newif\if@hclip \@hclipfalse%
+\newif\if@iclip \@iclipfalse%
+\newif\if@jclip \@jclipfalse%
+\newif\if@xclip \@xclipfalse%added for temp. 2013/03/24
+\def\clipinfo{}
+\def\storeclipinfo{%
+\if@aclip \xdef\clipinfo{\clipinfo a,}\fi
+\if@bclip \xdef\clipinfo{\clipinfo b,}\fi
+\if@cclip \xdef\clipinfo{\clipinfo c,}\fi
+\if@clip \xdef\clipinfo{\clipinfo d,}\fi
+\if@eclip \xdef\clipinfo{\clipinfo e,}\fi
+\if@fclip \xdef\clipinfo{\clipinfo f,}\fi
+\if@gclip \xdef\clipinfo{\clipinfo g,}\fi
+\if@hclip \xdef\clipinfo{\clipinfo h,}\fi
+\if@iclip \xdef\clipinfo{\clipinfo i,}\fi
+\if@jclip \xdef\clipinfo{\clipinfo j,}\fi
+\if@xclip \xdef\clipinfo{\clipinfo x,}\fi
+}%
+\def\developclipinfo{%
+\expandafter\@tfor\expandafter\MEMBER\expandafter:%
+\expandafter=\clipinfo\do{%
+\if\MEMBER a\relax \@acliptrue\fi
+\if\MEMBER b\relax \@bcliptrue\fi
+\if\MEMBER c\relax \@ccliptrue\fi
+\if\MEMBER d\relax \@cliptrue\fi
+\if\MEMBER e\relax \@ecliptrue\fi
+\if\MEMBER f\relax \@fcliptrue\fi
+\if\MEMBER g\relax \@gcliptrue\fi
+\if\MEMBER h\relax \@hcliptrue\fi
+\if\MEMBER i\relax \@icliptrue\fi
+\if\MEMBER j\relax \@jcliptrue\fi}%
+\gdef\clipinfo{}}
+\def\@yl{(yl)}
+\newcount\yl@xdiff
+\newcount\yl@ydiff
+\newcount\yl@shiftii
+\newcount\yl@shifti
+\def\@ylii{0}\def\@yli{0}
+\def\@@ylii{}\def\@@yli{}
+\def\reset@@yl{\gdef\@@ylii{}\gdef\@@yli{}}
+\def\reset@yl@xydiff{\yl@xdiff=0 \yl@ydiff=0\relax}
+\newif\if@ylsw \@ylswfalse
+\newif\if@@ylsw \@@ylswfalse
+\def\@reset@ylsw{\@ylswfalse\@@ylswfalse}
+\newif\ifshiftpicsw\shiftpicswfalse
+\newif\if@sixfuseposv\@sixfuseposvfalse
+\def\ShiftPicEnv{%
+\@ifnextchar[{\ShiftPicEnv@}{\ShiftPicEnv@[0]}}
+\def\ShiftPicEnv@[#1](#2)(#3)/(#4)(#5)#6{%
+\@ifnextchar({\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}}%
+{\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(,)}}
+\def\@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7){%
+\@ifnextchar({\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)}%
+{\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5){#6}(#7)(,)}}
+\def\@@ShiftPicEnv[#1](#2)(#3)/(#4)(#5)#6(#7)(#8){%
+\shiftpicswfalse%initialize
+\ifcase#1\relax%%%non-fused ring
+\if@ylsw \shiftpicswtrue
+\yl@shiftii=\@ylii
+\yl@shifti=\@yli
+\fi
+\or%%%fused ring
+\if@sixfuseposv \shiftpicswtrue
+ \yl@shiftii=-\fuseAx
+ \yl@shifti=-\fuseAy
+\fi
+\fi
+\ifshiftpicsw
+\advance\yl@shiftii\yl@xdiff
+\advance\yl@shifti\yl@ydiff
+\begin{sfpicture}(#2)(#3)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+\begin{sfpicture}(#4)(#5)%
+ \origptoutput(#7)(#8){#6}%
+\fi}
+\def\endShiftPicEnv{\end{sfpicture}}
+\def\ShiftPicEnvB(#1)(#2)/(#3)(#4)#5{%
+\@ifnextchar({\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}}%
+{\@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(,)}}
+\def\@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6){%
+\@ifnextchar({\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)}%
+{\@@ShiftPicEnvB(#1)(#2)/(#3)(#4){#5}(#6)(,)}}
+\def\@@ShiftPicEnvB(#1)(#2)/(#3)(#4)#5(#6)(#7){%
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \yl@shifti=\@yli
+ \advance\yl@shiftii\@@ylii
+ \advance\yl@shifti\@@yli
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(#1)(#2)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(#3)(#4)%
+ \origptoutput(#6)(#7){#5}%
+\fi}
+\def\endShiftPicEnvB{\end{sfpicture}}
+\newif\if@smallringsw \@smallringswfalse
+\def\iniflag{%
+\@aclipfalse\@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
+\@fclipfalse\@gclipfalse\@hclipfalse%
+\@iclipfalse\@jclipfalse\@clipfusefalse%
+\global\@smallringswfalse%
+}%
+\def\iniatom{%
+\def\aaa{}\def\bbb{}\def\ccc{}\gdef\ddd{}%
+\def\eee{}\def\fff{}%
+\def\gggA{}\def\hhh{}\def\iii{}\gdef\jjj{}%
+\def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}%
+\def\@eee{}\def\@fff{}%
+\def\@ggg{}\def\@hhh{}\def\@iii{}%
+\def\@jjj{}\def\@kkk{}%
+}%
+\def\resetbdsw{\def\@aaa{a}\def\@bbb{b}\def\@ccc{c}%
+\def\@ddd{d}\def\@eee{e}\def\@fff{f}%
+\def\@ggg{g}\def\@hhh{h}\def\@iii{i}%
+\def\@jjj{j}\def\@kkk{k}%
+}%
+\iniatom
+\def\ylposition#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{171}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or\ifx\fff\empty
+ \gdef\@ylii{171}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\@substa{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=36\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \else\if\@tmpc u%(u) upper --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-31\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondd}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,406){\setatombondf}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substa
+\def\@substb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(201,303)(1,0){100}/(201,303)(301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \dotorline(201,358)(3,5){60}/(201,358)(261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=38\relax
+ \putratom{268}{420}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,358)(3,5){60}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alphau undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,303)(1,0){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=18\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(194,331)(5,3){100}% % double bond at 2
+ \Put@Line(200,305)(5,3){100}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \dotorline(201,327)(5,3){100}/(201,327)(301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,327)(5,3){100}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=24\relax
+ \putratom{311}{363}{\@memberb}% % right type
+ \Put@Line(201,327)(5,3){100}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else% %no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \dotorline(171,303)(1,0){140}/(171,303)(311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \dotorline(171,303)(3,5){72}/(171,303)(243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-15\relax
+ \yl@ydiff=13\relax
+ \putratom{258}{410}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=23\relax
+ \putratom{318}{280}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(1,0){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=6\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(168,310)(5,3){120}% % double bond at 2
+ \Put@Line(174,284)(5,3){120}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \dotorline(171,303)(5,3){120}/(171,303)(291,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,3){120}% % single wave bond at 2
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonda}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,303){\setatombonde}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putratom{301}{363}{\@memberb}% % right type
+ \Put@Line(171,303)(5,3){120}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@substb
+\def\@substc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){110}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(201,103)(1,0){100}/(201,103)(301,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \dotorline(201,48)(3,-5){60}/(201,48)(261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-7\relax
+ \yl@ydiff=28\relax
+ \putratom{268}{-80}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,48)(3,-5){60}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-17\relax
+ \yl@ydiff=29\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(201,103)(1,0){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(194,76)(5,-3){100}% % double bond at 3
+ \Put@Line(200,101)(5,-3){100}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \dotorline(201,79)(5,-3){100}/(201,79)(301,19)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(210,79)(5,-3){100}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \putratom{311}{-27}{\@memberb}% % right type
+ \Put@Line(201,79)(5,-3){100}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \dotorline(171,103)(1,0){140}/(171,103)(311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \dotorline(171,103)(3,-5){72}/(171,103)(243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=48\relax
+ \putratom{258}{-70}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(3,-5){72}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putratom{318}{74}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(1,0){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=65\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(168,96)(5,-3){120}% % double bond at 3
+ \Put@Line(174,121)(5,-3){120}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \dotorline(171,103)(5,-3){120}/(171,103)(291,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(5,-3){120}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondf}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(171,103){\setatombondc}%
+ }%
+ \else%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \putratom{301}{-27}{\@memberb}% % right type
+ \Put@Line(171,103)(5,-3){120}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi
+}% end of \@substc
+\def\@substd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombonde}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondg}%
+ }%
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}%end of \@substd
+\def\@subste{%
+ \if@eclip%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){110}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \dotorline(-201,103)(-1,0){100}/(-201,103)(-301,103)%
+ \else\if\@tmpc u% (u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d% (d) down --- (A) alpha
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \dotorline(-201,48)(-3,-5){60}/(-201,48)(-261,-52)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=7\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{-80}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,48)(-3,-5){60}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=29\relax
+ \putlatom{-318}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,103)(-1,0){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-194,76)(-5,-3){100}% % double bond at 5
+ \Put@Line(-200,101)(-5,-3){100}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \dotorline(-201,79)(-5,-3){100}/(-201,79)(-301,21)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-220,79)(-5,-3){100}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \putlatom{-311}{-27}{\@memberb}% % left type
+ \Put@Line(-201,79)(-5,-3){100}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \dotorline(-171,103)(-1,0){140}/(-171,103)(-311,103)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \dotorline(-171,103)(-3,-5){72}/(-171,103)(-243,-17)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=63\relax
+ \putlatom{-258}{-70}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=29\relax
+ \putlatom{-326}{74}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-1,0){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=62\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-168,96)(-5,-3){120}% % double bond at 5
+ \Put@Line(-174,121)(-5,-3){120}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,103)(-5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \dotorline(-171,103)(-5,-3){120}/(-171,103)(-311,31)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,103)(-5,-3){120}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondc}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,103){\setatombondd}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=56\relax
+ \putlatom{-301}{-27}{\@memberb}% % left type
+ \Put@Line(-171,103)(-5,-3){120}%% single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi%
+ \fi}% end of \@subste
+\def\@substf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \dotorline(-201,303)(-1,0){100}/(-201,303)(-301,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \dotorline(-201,358)(-3,5){60}/(-201,358)(-261,458)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=38\relax
+ \putlatom{-268}{420}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,358)(-3,5){60}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=17\relax
+ \yl@ydiff=23\relax
+ \putlatom{-318}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-201,303)(-1,0){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-194,331)(-5,3){100}% % double bond at 6
+ \Put@Line(-200,305)(-5,3){100}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \dotorline(-201,327)(-5,3){100}/(-201,327)(-301,387)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-211,327)(-5,3){100}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=24\relax
+ \putlatom{-311}{363}{\@memberb}% % left type
+ \Put@Line(-201,327)(-5,3){100}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \dotorline(-171,303)(-1,0){140}/(-171,303)(-311,303)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \dotorline(-171,303)(-3,5){72}/(-171,303)(-243,423)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=13\relax
+ \putlatom{-258}{410}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-3,5){72}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=15\relax
+ \yl@ydiff=23\relax
+ \putlatom{-326}{280}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-1,0){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=6\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-168,310)(-5,3){120}% % double bond at 6
+ \Put@Line(-174,284)(-5,3){120}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,3){120}/(-171,303)(-311,375)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,3){120}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombondg}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(-171,303){\setatombonda}%
+ }%
+ \else%
+ \yl@xdiff=10\relax
+ \yl@ydiff=12\relax
+ \putlatom{-301}{363}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,3){120}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\fi}% end of \@substf
+\RequirePackage{xcolor}
+\def\bondsubstcolor{}
+\def\addbscolor#1#2{#2\gdef\bondsubstcolor{#1}}
+\newif\ifbscolor
+\def\setbscolor{\addbscolor{}{}%
+\edef\@tmptmpb{\@tmpb}\edef\@tmptmpc{\@tmpc}%store original values
+\ifbscolor\setbox0=\hbox{\@memberb}\bondsubstcolor\setbox0=\hbox{}\fi
+\edef\@tmpb{\@tmptmpb}\edef\@tmpc{\@tmptmpc}%recover the original values
+}%
+\def\setBScolor#1{\begingroup\setbscolor#1\addbscolor{}{}\endgroup}%
+\def\bscolorswON{\bscolortrue}
+\def\bscolorswOFF{\bscolorfalse}
+\bscolorswON%default bond coloring
+\def\defineXyMcolor#1#2#3{%
+\definecolor{#1}{#2}{#3}%
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+\def\XyMcolor#1{%
+\@ifnextchar[{\@XyMcolor{#1}}{\@XyMcolor{#1}[]}}
+\def\@XyMcolor#1[#2]#3{%
+\edef\tempColorModel{#2}%
+\ifx\tempColorModel\@empty\colorlet{#1}{#3}\else
+\colorlet{#1}[#2]{#3}\fi
+\@ifundefined{psset}{%
+\expandafter\def\csname#1\endcsname{\color{#1}}}%
+{\expandafter\def\csname#1\endcsname{\color{#1}%
+\psset{linecolor=#1}}}}
+\def\setsixringv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or{\setbscolor\@substa\addbscolor{}{}}%% subst. on 1
+ \or{\setbscolor\@substb\addbscolor{}{}}%% subst. on 2
+ \or{\setbscolor\@substc\addbscolor{}{}}%% subst. on 3
+ \or{\setbscolor\@substd\addbscolor{}{}}%% subst. on 4
+ \or{\setbscolor\@subste\addbscolor{}{}}%% subst. on 5
+ \or{\setbscolor\@substf\addbscolor{}{}}%% subst. on 6
+\fi%end of ifcase
+\fi%
+\fi\fi\fi}}%
+\def\ylfusedposition#1#2#3#4#5{%
+\@@ylswfalse%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax%
+\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+ \if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 0
+ \else\if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylatrue% subst. on 0
+ \fi\fi%
+\or% subst. on 1 F == (0,406), G == (171,303) for \@fused@linkfalse
+ % subst. on 1 G == (0,406), F == (171,303) for \@fused@linktrue
+\if@fused@link
+ \if\@tmpb G%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 1
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi\fi%
+\fi
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb F%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \def\@ylii{0}\def\@yli{-406}\@ylswtrue%\@ylatrue% subst. on 2
+ \else\if\@tmpb G%single bond at G
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylatrue% subst. on 2
+ \fi\fi%
+\fi
+\or %3 fused positions % G == (303,171) F == (103,171)
+ \if\@tmpb G%single bond at G (fused position)
+ \def\@ylii{-303}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \else\if\@tmpb F%single bond at F (fused position)
+ \def\@ylii{-103}\def\@yli{-171}\@ylswtrue%\@ylatrue% subst. on 3
+ \fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}% end of \ylfusedposition
+\def\GFbonda{%
+ \if\@tmpb F%single bond at F (fused position)
+ \GFbonda@a
+ \else\if\@tmpb G%single bond at G (fused position)
+ \GFbonda@b
+ \fi\fi%
+}%end of GFbonda
+\def\GFbonda@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(0,1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=-17\relax%460-(303+140)
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \Put@Line(171,303)(0,1){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+}%
+\def\GFbonda@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \dotorline(171,103)(0,-1){140}/(171,103)(171,-37)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,103)(0,-1){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=31\relax%171-140
+ \yl@ydiff=90\relax%127-(140-103)
+ \putlratom{140}{-127}{\@memberb}% % left or right type
+ \Put@Line(171,103)(0,-1){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+}%
+\def\GFbondb{%
+ \if@fused@link
+ \if\@tmpb G%single bond at G (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondb@b
+ \fi\fi%
+ \else
+ \if\@tmpb F%single bond at F (5,-3) fusion
+ \GFbondb@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondb@b
+ \fi\fi%
+ \fi
+}% end of \GFbondb
+\def\GFbondb@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \dotorline(0,406)(-5,3){120}/(0,406)(-120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=22\relax%
+ \putlatom{-130}{466}{\@memberb}% % left type
+ \Put@Line(0,406)(-5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@a
+\def\GFbondb@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \dotorline(171,303)(5,-3){120}/(171,303)(291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=58\relax%
+ \putratom{301}{173}{\@memberb}% % right type
+ \Put@Line(171,303)(5,-3){120}% % single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{140}{460}{\@memberb}% % left or right type
+ \dotorline(171,303)(0,1){140}/(171,303)(171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondb@b
+\def\GFbondc{%
+\if@fused@link
+ \if\@tmpb G%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb F%single bond at F
+ \GFbondc@b
+ \fi\fi%
+\else
+ \if\@tmpb F%single bond at (-5,-3) fusion
+ \GFbondc@a
+ \else\if\@tmpb G%single bond at G
+ \GFbondc@b
+ \fi\fi%
+\fi
+}% end of \GFbondc
+ \def\GFbondc@a{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \dotorline(0,406)(5,3){120}/(0,406)(120,478)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-10\relax%
+ \yl@ydiff=12\relax%
+ \putratom{130}{466}{\@memberb}% % right type
+ \Put@Line(0,406)(5,3){120}% % single bond at F
+ \else\if\@tmpc D%beta single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,-1){140}% % single bond at F
+ }%
+ \else\if\@tmpc C%alpha single bond (downward)
+ \yl@xdiff=31\relax%
+ \yl@ydiff=90\relax%
+ \putlratom{-31}{176}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,-1){140}/(0,406)(0,266)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@a
+\def\GFbondc@b{%
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(-5,-3){120}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \dotorline(-171,303)(-5,-3){120}/(-171,303)(-291,231)%
+ \else\if\@tmpc U%unspecified single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=10\relax%
+ \yl@ydiff=59\relax%
+ \putlatom{-301}{173}{\@memberb}% % left type
+ \Put@Line(-171,303)(-5,-3){120}% single bond at G
+ \else\if\@tmpc D%beta single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(-171,303)(0,1){140}% % single bond at G
+ }%
+ \else\if\@tmpc C%alpha single bond (upward)
+ \yl@xdiff=-30\relax%
+ \yl@ydiff=-17\relax%
+ \putlratom{201}{460}{\@memberb}% % left or right type
+ \dotorline(-171,303)(0,1){140}/(-171,303)(-171,443)%
+ \fi\fi\fi\fi\fi\fi\fi%
+}% end of \GFbondc@b
+\def\GFbondd{%
+ \if\@tmpb G%single bond at G (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \dotorline(303,171)(1,0){140}/(303,171)(443,171)%
+ \else\if\@tmpc U% unspecified single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(1,0){140}% single bond at G
+ }%
+ \else\if\@tmpc S%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \else\ifx\@tmpc\empty%beta single bond
+ \yl@xdiff=-17\relax%
+ \yl@ydiff=31\relax%
+ \putlratom{460}{140}{\@memberb}% % left or right type
+ \Put@Line(303,171)(1,0){140}% % single bond at G
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb F%single bond at F (fused position)
+ \if\@tmpc B%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ }%
+ \else\if\@tmpc A%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \dotorline(103,171)(-1,0){140}/(103,171)(-37,171)%
+ \else\if\@tmpc U%beta single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-1,0){140}% single bond at F
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \else\ifx\@tmpc\empty%alpha single bond
+ \yl@xdiff=20\relax%
+ \yl@ydiff=31\relax%
+ \putlatom{-57}{140}{\@memberb}% % left type
+ \Put@Line(103,171)(-1,0){140}% % single bond at F
+ \fi\fi\fi\fi\fi%
+ \fi\fi%
+}% end of \GFbondd
+\newif\if@fused@link \@fused@linkfalse
+\def\setfusedbond#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax\advance\@tmpaa by #2\relax\@fused@linktrue
+\else\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\@fused@linkfalse\fi%
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+{\setbscolor\GFbonda\addbscolor{}{}}%2010/10/01
+\or% subst. on 1 F == (0,406), G == (171,303)
+{\setbscolor\GFbondb\addbscolor{}{}}%2010/10/01
+\or% subst. on 2 F == (0,406), G == (-171,303) for \@fused@linkfalse
+ % subst. on 2 G == (0,406), F == (-171,303) for \@fused@linktrue
+{\setbscolor\GFbondc\addbscolor{}{}}%2010/10/01
+\or %3 fused positions % G == (303,171) F == (103,171)
+{\setbscolor\GFbondd\addbscolor{}{}}%2010/10/01
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+\newif\if@clipfuse \@clipfusefalse
+\def\setatombond#1#2#3{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifx\@memberb\@yl\else
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+\or% subst. on 1
+ \ifnum#3=1\relax%(upward)
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=4\relax%(right)
+{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=7\relax%(downward)
+{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=11\relax%
+{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=5\relax%
+{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=3\relax%
+{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=9\relax%
+{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01
+ \else\ifnum#3=10\relax%(left)
+{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi}}%
+\def\setatombonda{%upward (0,1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,40)(0,1){100}/(0,40)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,40)(0,1){100}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,40)(0,1){100}% % single bond at 1
+ \Put@Line(10,40)(0,1){100}% % single bond at 1
+ \else\if\@tmpb T%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,40)(0,1){100}% % single bond at 1
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \Put@Line(15,40)(0,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,40)(0,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \else%no clip
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,0)(0,1){140}/(0,0)(0,140)%
+ \else\if\@tmpb U% unspecified single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,1){140}% single bond at F
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-10,0)(0,1){140}% % single bond at 1
+ \Put@Line(10,0)(0,1){140}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-15,0)(0,1){140}% % single bond at 1
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \Put@Line(15,0)(0,1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,0)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{157}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombonda
+\def\setatombondb{%(right) (1,0)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(30,0)(1,0){110}/(30,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,0)(1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,10)(1,0){100}% % single bond at 1
+ \Put@Line(40,-10)(1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,15)(1,0){100}% % single bond at 1
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \Put@Line(40,-15)(1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(40,0)(1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \else%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \dotorline(0,0)(1,0){140}/(0,0)(140,0)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,10)(1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,-15)(1,0){140}% % single bond at 1
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \Put@Line(0,15)(1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \Put@Line(0,0)(1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{157}{-31}{\@memberb}% % right type only
+ \fi%
+}% end of \setatombondb
+\def\setatombondc{%(downward) (0,-1)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,-40)(0,-1){100}/(0,-40)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-10,-40)(0,-1){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \Put@Line(-15,-40)(0,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-40)(0,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(10,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-10,0)(0,-1){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(15,0)(0,-1){140}% % single bond at 1
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \Put@Line(-15,0)(0,-1){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi%
+}% end of \setatombondc
+\def\setatombondd{% (-5,3)
+ \if@clipfuse%
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-36,8)(-5,3){100}% % single bond at 1
+ \Put@Line(-24,24)(-5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-39,3)(-5,3){100}% % single bond at 1
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \Put@Line(-21,33)(-5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=20\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,3){130}/(0,0)(-130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,10)(-5,3){130}% % single bond at 1
+ \Put@Line(-6,-10)(-5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,15)(-5,3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \Put@Line(-9,-15)(-5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-150}{60}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondd
+\def\setatombonde{%(5,-3)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-18)(5,-3){100}/(30,-18)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(36,-12)(5,-3){100}% % single bond at 1
+ \Put@Line(24,-28)(5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(39,-3)(5,-3){100}% % single bond at 1
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \Put@Line(21,-33)(5,-3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(30,-18)(5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+ \yl@ydiff=52\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,-3){130}/(0,0)(130,-78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(6,10)(5,-3){130}% % single bond at 1
+ \Put@Line(-6,-10)(5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(9,15)(5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \Put@Line(-9,-15)(5,-3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-130}{\@memberb}% % right type
+ \fi%
+}% end of \setatombonde
+\def\setatombondf{%% (5,3)
+ \if@clipfuse%
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,18)(5,3){100}/(30,18)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(36,8)(5,3){100}% % single bond at 1
+ \Put@Line(24,24)(5,3){100}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(39,3)(5,3){100}% % single bond at 1
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \Put@Line(21,33)(5,3){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,18)(5,3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=-30\relax
+ \yl@ydiff=18\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(5,3){120}/(0,0)(130,78)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-10)(5,3){130}% % single bond at 1
+ \Put@Line(-6,10)(5,3){130}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(9,-15)(5,3){130}% % single bond at 1
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \Put@Line(-9,15)(5,3){130}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(5,3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{160}{60}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondf
+\def\setatombondg{%% (-5,-3)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-35,-21)(-5,-3){100}/(-35,-21)(-120,-72)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-36,-12)(-5,-3){100}% % single bond at 1
+ \Put@Line(-24,-28)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-39,-3)(-5,-3){100}% % single bond at 1
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \Put@Line(-21,-33)(-5,-3){100}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+ \Put@Line(-35,-21)(-5,-3){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \else%
+ \yl@xdiff=0\relax
+ \yl@ydiff=52\relax%1999/1/6 by Shinsaku Fujita
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-5,-3){130}/(0,0)(-130,-78)%
+ \else\if\@tmpc U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ }%
+ \else\if\@tmpc S%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-6,10)(-5,-3){130}% % single bond at 1
+ \Put@Line(6,-10)(-5,-3){130}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-9,15)(-5,-3){130}% % single bond at 1
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \Put@Line(9,-15)(-5,-3){130}% % single bond at 1
+ \else\ifx\@tmpc\empty%alpha single bond
+ \Put@Line(0,0)(-5,-3){130}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-130}{-130}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondg
+\def\setatombondh{% (-1,0)
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(-40,10)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-10)(-1,0){100}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(-40,15)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \Put@Line(-40,-15)(-1,0){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \else%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%beta single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb S%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb D%alpha single bond
+ \Put@Line(0,10)(-1,0){140}% % single bond at 1
+ \Put@Line(0,-10)(-1,0){140}% % single bond at 1
+ \else\if\@tmpb T%alpha single bond
+ \Put@Line(0,-15)(-1,0){140}% % single bond at 1
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \Put@Line(0,15)(-1,0){140}% % single bond at 1
+ \else\ifx\@tmpb\empty%alpha single bond
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \fi%
+}% end of \setatombondh
+\def\ylatombondposition#1#2#3{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\@tmpaa=\@tmpa\relax\advance\@tmpaa by #2\relax
+\ifnum\@tmpaa >0\relax%
+\ifnum\@tmpaa <2\relax%
+\ifcase\@tmpaa%
+\or% subst. on 1
+ \ifnum#3=1\relax%upward
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{-48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=4\relax%(right)
+ \if@clipfuse%
+ \gdef\@ylii{-40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=7\relax%(downward)
+ \if@clipfuse%
+ \gdef\@ylii{0}\gdef\@yli{48}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=11\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=5\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=3\relax%
+ \if@clipfuse%
+ \gdef\@ylii{-50}\gdef\@yli{-30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=9\relax%
+ \if@clipfuse%
+ \gdef\@ylii{50}\gdef\@yli{30}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+ \else\ifnum#3=10\relax%(left)
+ \if@clipfuse%
+ \gdef\@ylii{40}\gdef\@yli{0}\global\@ylswtrue%
+ \else
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \fi
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi%end of ifcase
+\fi\fi\fi\fi%
+\fi}}% end of \ylatombondposition
+\def\ylpositionh#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\reset@@yl%%2013/06/19bug fix
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or\ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or \ifx\ccc\empty
+ \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or\ifx\eee\empty
+ \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or \ifx\fff\empty
+ \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\@hsubsta{%
+\if@aclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(-30,-18)(-5,-3){100}/(-30,-18)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(-30,18)(-5,3){100}/(-30,18)(-130,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=36\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,18)(-5,3){100}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=27\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-18)(-5,-3){100}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-30,-12)(-1,0){110}% % double bond at 1
+ \Put@Line(-30,12)(-1,0){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(-30,0)(-1,0){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(-30,0)(-1,0){110}/(-30,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){110}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(-40,0)(-1,0){100}% % single bond at 1
+ \fi\fi\fi\fi
+ \fi\fi\fi%
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \dotorline(0,0)(-5,-3){120}/(0,0)(-120,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \dotorline(0,0)(-5,3){120}/(0,0)(-120,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=30\relax
+ \putlatom{-157}{42}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){120}% % single bond at 1
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=28\relax
+ \putlatom{-157}{-100}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,-3){120}% % single bond at 1
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,-12)(-1,0){140}% % double bond at 1
+ \Put@Line(0,12)(-1,0){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \dotorline(0,0)(-1,0){140}/(0,0)(-140,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){140}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondG}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(0,0){\setatombondD}%
+ }%
+ \else%
+ \yl@xdiff=17\relax
+ \yl@ydiff=31\relax
+ \putlatom{-157}{-31}{\@memberb}% % left type only
+ \Put@Line(0,0)(-1,0){140}% % single bond at 1
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}%end of \@hsubsta
+\def\@hsubstb{%
+ \if@bclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putratom{73}{331}{\@memberb}% % right type
+ \dotorline(103,221)(0,1){100}/(103,221)(103,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \dotorline(59,201)(-5,3){100}/(59,201)(-41,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putlatom{-41}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(59,201)(-5,3){100}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-10\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,221)(0,1){100}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=-13\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(78,208)(-3,5){63}% % double bond at 2(62->63)
+ \Put@Line(100,219)(-3,5){63}% % double bond at 2(62->63)
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \dotorline(79,221)(-3,5){63}/(79,221)(16,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,221)(-3,5){63}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=53\relax
+ \yl@ydiff=5\relax
+ \putlratom{-37}{331}{\@memberb}%
+ \Put@Line(79,221)(-3,5){63}% % single bond at 2 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \dotorline(103,171)(0,1){140}/(103,171)(103,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \dotorline(103,171)(-5,3){120}/(103,171)(-7,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=14\relax
+ \yl@ydiff=-3\relax
+ \putlatom{-31}{240}{\@memberb}% % left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-5,3){120}% % single bond at 2
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putlratom{73}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(0,1){140}% % single bond at 2
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=64\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(96,168)(-3,5){72}% % double bond at 2
+ \Put@Line(121,174)(-3,5){72}% % double bond at 2
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \dotorline(103,171)(-3,5){72}/(103,171)(31,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(103,171)(-3,5){72}% % single wave bond at 1
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondh}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,171){\setatombondF}%
+ }%
+ \else%
+ \yl@xdiff=58\relax
+ \yl@ydiff=-21\relax
+ \putlratom{-27}{311}{\@memberb}%
+ \Put@Line(103,171)(-3,5){72}% % single bond at 2
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstb
+\def\@hsubstc{%
+ \if@cclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \dotorline(303,221)(0,1){110}/(303,221)(303,321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(343,201)(5,3){100}/(343,201)(443,261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=21\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,201)(5,3){100}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=0\relax
+ \putlratom{273}{331}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,221)(0,1){100}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-18\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(328,208)(3,5){63}% % double bond at 3
+ \Put@Line(303,214)(3,5){63}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \dotorline(343,221)(3,5){63}/(343,221)(406,326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,221)(3,5){63}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=33\relax
+ \yl@ydiff=5\relax
+ \putratom{373}{331}{\@memberb}%
+ \Put@Line(343,221)(3,5){63}% % single bond at 3 (62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \dotorline(303,171)(0,1){140}/(303,171)(303,311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \dotorline(303,171)(5,3){120}/(303,171)(423,243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=3\relax
+ \putratom{443}{240}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(5,3){120}% % single bond at 3
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=-20\relax
+ \putratom{273}{331}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(0,1){140}% % single bond at 3
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=6\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(310,168)(3,5){72}% % double bond at 3
+ \Put@Line(284,174)(3,5){72}% % double bond at 3
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \dotorline(303,171)(3,5){72}/(303,171)(375,291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,171)(3,5){72}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondD}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,171){\setatombondb}%
+ }%
+ \else%
+ \yl@xdiff=12\relax
+ \yl@ydiff=-20\relax
+ \putratom{363}{311}{\@memberb}%
+ \Put@Line(303,171)(3,5){72}% % single bond at 3
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstc
+\def\@hsubstd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(436,-18)(5,-3){100}/(436,-18)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(436,18)(5,3){100}/(436,18)(536,78)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=36\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,18)(5,3){100}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-27\relax
+ \yl@ydiff=22\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,-18)(5,-3){100}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,-12)(1,0){110}% % double bond at 4
+ \Put@Line(436,12)(1,0){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(436,0)(1,0){110}/(436,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(436,0)(1,0){110}% % single wave bond at 3
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(436,0)(1,0){110}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+\else%% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \dotorline(406,0)(5,-3){120}/(406,0)(526,-72)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \dotorline(406,0)(5,3){120}/(406,0)(526,72)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=30\relax
+ \putratom{563}{42}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,3){120}% % single bond at 4
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=-37\relax
+ \yl@ydiff=28\relax
+ \putratom{563}{-100}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(5,-3){120}% % single bond at 4
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,-12)(1,0){140}% % double bond at 4
+ \Put@Line(406,12)(1,0){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \thicklines%
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \dotorline(406,0)(1,0){140}/(406,0)(546,0)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ {%
+ \WaveBonds%
+ \Put@Line(406,0)(1,0){140}% % single wave bond at 4
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondF}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(406,0){\setatombondE}%
+ }%
+ \else%
+ \yl@xdiff=-17\relax
+ \yl@ydiff=31\relax
+ \putratom{563}{-31}{\@memberb}% % right type only
+ \Put@Line(406,0)(1,0){140}% % single bond at 4
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstd
+\def\@hsubste{%
+ \if@eclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+ \dotorline(303,-221)(0,-1){110}/(303,-221)(303,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putlratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(343,-201)(5,-3){100}/(343,-201)(443,-260)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=0\relax
+ \yl@ydiff=41\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(343,-201)(5,-3){100}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=71\relax
+ \putratom{273}{-402}{\@memberb}% % left-right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-221)(0,-1){100}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=12\relax
+ \yl@ydiff=82\relax
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(328,-208)(3,-5){63}% % double bond at 5 (62->63)
+ \Put@Line(306,-224)(3,-5){63}% % double bond at 5 (62->63)
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(343,-221)(3,-5){63}%% single bond at 5(62->63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ \dotorline(343,-221)(3,-5){63}/(343,-221)(406,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(343,-221)(3,-5){63}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+ \yl@xdiff=33\relax
+ \yl@ydiff=76\relax
+ \putratom{373}{-402}{\@memberb}%
+ \Put@Line(343,-221)(3,-5){63}% % single bond at 5(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ \dotorline(303,-171)(0,-1){140}/(303,-171)(303,-311)%2002/5/30
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \dotorline(303,-171)(5,-3){120}/(303,-171)(423,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-20\relax
+ \yl@ydiff=58\relax
+ \putratom{443}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(5,-3){120}% % single bond at 5
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{273}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(0,-1){140}% % single bond at 5
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=3\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(310,-168)(3,-5){72}% % double bond at 5
+ \Put@Line(284,-174)(3,-5){72}% % double bond at 5
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \dotorline(303,-171)(3,-5){72}/(303,-171)(375,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(303,-171)(3,-5){72}% % single wave bond at 5
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondb}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(303,-171){\setatombondG}%
+ }%
+ \else%
+ \yl@xdiff=9\relax
+ \yl@ydiff=91\relax
+ \putratom{363}{-382}{\@memberb}%
+ \Put@Line(303,-171)(3,-5){72}% % single bond at 5
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubste
+\def\@hsubstf{%
+ \if@fclip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-221)(0,-1){100}/(103,-221)(103,-321)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(59,-201)(-5,-3){100}/(59,-201)(-41,-261)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{73}{-402}{\@memberb}% % right type
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(59,-201)(-5,-3){100}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=81\relax
+ \putratom{73}{-402}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-221)(0,-1){100}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=82\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(78,-208)(-3,-5){63}% % double bond at 6 (62->63)
+ \Put@Line(106,-219)(-3,-5){63}% % double bond at 6 (62->63)
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \thicklines%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6 (62=>63)
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \dotorline(79,-221)(-3,-5){63}/(79,-221)(16,-326)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(79,-221)(-3,-5){63}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusetrue
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+ \yl@xdiff=53\relax
+ \yl@ydiff=76\relax
+ \putlratom{-37}{-402}{\@memberb}%
+ \Put@Line(79,-221)(-3,-5){63}% % single bond at 6(62->63)
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \else%%no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=63\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ \else\if\@tmpc B%beta single bond%1998/10/11 by S. Fujita
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ \dotorline(103,-171)(0,-1){140}/(103,-171)(103,-311)%
+ \else\if\@tmpc u%(u) up --- (B) beta
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % left-right type
+ {%
+ \thicklines%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \else\if\@tmpc d%(d) down --- (A) alpha
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \dotorline(103,-171)(-5,-3){120}/(103,-171)(-17,-243)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=8\relax
+ \yl@ydiff=58\relax
+ \putlatom{-31}{-301}{\@memberb}% % right type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(-5,-3){120}% % single bond at 6
+ }%
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=30\relax
+ \yl@ydiff=91\relax
+ \putlratom{73}{-402}{\@memberb}% % right-left type
+ {%
+ \WaveBonds%
+ \Put@Line(103,-171)(0,-1){140}% % single bond at 6
+ }%
+ \fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=65\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(96,-168)(-3,-5){72}% % double bond at 6
+ \Put@Line(121,-174)(-3,-5){72}% % double bond at 6
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ {%
+ \thicklines%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \dotorline(108,-171)(-3,-5){72}/(103,-171)(31,-291)%
+ \else\if\@tmpb U%undefined single bond
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ {%
+ \WaveBonds%
+ \Put@Line(108,-171)(-3,-5){72}% % single wave bond at 6
+ }%
+ \else\if\@tmpb F%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondE}%
+ }%
+ \else\if\@tmpb G%fused bond
+ {\let\@tmpb=\@tmpc\@clipfusefalse
+ \Put@Direct(103,-171){\setatombondh}%
+ }%
+ \else%
+ \yl@xdiff=59\relax
+ \yl@ydiff=91\relax
+ \putlratom{-27}{-382}{\@memberb}%
+ \Put@Line(108,-171)(-3,-5){72}% % single bond at 6
+ \fi\fi\fi\fi%
+ \fi\fi\fi
+ \fi}% end of \@hsubstf
+\def\setsixringh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%0 omit
+\or{\setbscolor\@hsubsta\addbscolor{}{}}% subst. on 1%2010/10/01
+\or{\setbscolor\@hsubstb\addbscolor{}{}}% subst. on 2%2010/10/01
+\or{\setbscolor\@hsubstc\addbscolor{}{}}% subst. on 3%2010/10/01
+\or{\setbscolor\@hsubstd\addbscolor{}{}}% subst. on 4%2010/10/01
+\or{\setbscolor\@hsubste\addbscolor{}{}}% subst. on 5%2010/10/01
+\or{\setbscolor\@hsubstf\addbscolor{}{}}% subst. on 6%2010/10/01
+\fi%end of ifcase
+\fi\fi\fi\fi}}% %end of setsixringh
+\newcount\x@ryl
+\newcount\y@ryl
+\def\ryl{\@ifnextchar({\@ryl}{\@ryl()}}
+\def\@ryl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-70
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putlatom{40}{-30}{\centeraaa}% % left type
+\fi%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondF\addbscolor{}{}}%2010/10/01%\or\setatombondF%1 (3,5)
+\or{\setbscolor\setatombondA\addbscolor{}{}}%2010/10/01%\or\setatombondA%2 (1,1)
+\or{\setbscolor\setatombondf\addbscolor{}{}}%2010/10/01%\or\setatombondf%3 (5,3)
+\or{\setbscolor\setatombondb\addbscolor{}{}}%2010/10/01%\or\setatombondb%4 (1,0)
+\or{\setbscolor\setatombonde\addbscolor{}{}}%2010/10/01%\or\setatombonde%5 (5,-3)
+\or{\setbscolor\setatombondB\addbscolor{}{}}%2010/10/01%\or\setatombondB%6 (1,-1)
+\or{\setbscolor\setatombondE\addbscolor{}{}}%2010/10/01%\or\setatombondE%7 (3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \ryl macro
+\def\setatombondF{%% (3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(30,50)(3,5){60}/(30,50)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(40,44)(3,5){60}% % single bond at 1
+ \Put@Line(20,56)(3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(45,41)(3,5){60}% % single bond at 1
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \Put@Line(15,59)(3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(30,50)(3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(3,5){90}/(0,0)(90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(10,-6)(3,5){90}% % single bond at 1
+ \Put@Line(-10,6)(3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(15,-9)(3,5){90}% % single bond at 1
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \Put@Line(-15,9)(3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{160}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondF
+\def\setatombondE{%% (3,-5)
+ \if@clipfuse%
+ \yl@xdiff=10\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(30,-50)(3,-5){60}/(30,-50)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(40,-44)(3,-5){60}% % single bond at 1
+ \Put@Line(20,-56)(3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(45,-41)(3,-5){60}% % single bond at 1
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \Put@Line(15,-59)(3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(30,-50)(3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{-240}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=10\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(3,-5){90}/(0,0)(90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(10,6)(3,-5){90}% % single bond at 1
+ \Put@Line(-10,-6)(3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(15,9)(3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \Put@Line(-15,-9)(3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{80}{-240}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondE
+\def\setatombondA{%% (1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,40)(1,1){100}/(40,40)(140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,36)(1,1){100}% % single bond at 1
+ \Put@Line(36,46)(1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,30)(1,1){100}% % single bond at 1
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \Put@Line(30,50)(1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,40)(1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{140}{\@memberb}% % right type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,1){120}/(0,0)(120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,-6)(1,1){120}% % single bond at 1
+ \Put@Line(-6,6)(1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,-10)(1,1){120}% % single bond at 1
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \Put@Line(-10,10)(1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{120}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondA
+\def\setatombondB{%% (1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(40,-40)(1,-1){100}/(40,-40)(140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(46,-36)(1,-1){100}% % single bond at 1
+ \Put@Line(36,-46)(1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(50,-30)(1,-1){100}% % single bond at 1
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \Put@Line(30,-50)(1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(40,-40)(1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{140}{-200}{\@memberb}% % right type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(1,-1){120}/(0,0)(120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(6,6)(1,-1){120}% % single bond at 1
+ \Put@Line(-6,-6)(1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(10,10)(1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \Put@Line(-10,-10)(1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putratom{120}{-180}{\@memberb}% % right type
+ \fi%
+}% end of \setatombondB
+\def\lyl{\@ifnextchar({\@lyl}{\@lyl()}}
+\def\@lyl(#1)#2{%
+\iniatom\iniflag%initialize
+\@reset@ylsw%
+\def\centeraaa{}%
+\x@ryl=0\y@ryl=0
+\@forsemicol\member:=#1\do{%
+\if@ylsw%
+\XyMTeXWarning{Duplicated items in the first augument of \string\ryl}%
+\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\settowidth{\dimen0}{\@memberb}%
+\x@ryl=\dimen0%%%dimension => counter
+\divide\x@ryl\unitlength
+\advance\x@ryl by-80
+\y@ryl=0
+\ifcase\@tmpa%
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by50
+\or%1
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by50
+\or%2
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by40
+\advance\y@ryl by40
+\or%3
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by30
+\or%4
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by0
+\or%5
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-30
+\or%6
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by50
+\advance\y@ryl by-50
+\or%7
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\x@ryl by30
+\advance\y@ryl by-50
+\or%8
+\def\centeraaa{\@memberb}\@ylswtrue
+\advance\y@ryl by-50
+\fi
+\fi\fi}%
+ \yl@shiftii=-\x@ryl
+ \yl@shifti=-\y@ryl
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+\ifx\centeraaa\empty\else%
+ \@clipfusetrue
+ \putratom{-40}{-30}{\centeraaa}% % right type
+\fi%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\let\local@tmpa=\@tmpa%global to local 2002/5/30 by SF
+\ifcase\local@tmpa%
+{\setbscolor\setatombonda\addbscolor{}{}}%2010/10/01%\setatombonda% 0 (upward) (0,1)
+\or{\setbscolor\setatombondD\addbscolor{}{}}%2010/10/01%\or\setatombondD%1 (-3,5)
+\or{\setbscolor\setatombondH\addbscolor{}{}}%2010/10/01%\or\setatombondH%2 (-1,1)
+\or{\setbscolor\setatombondd\addbscolor{}{}}%2010/10/01%\or\setatombondd%3 (-5,3)
+\or{\setbscolor\setatombondh\addbscolor{}{}}%2010/10/01%\or\setatombondh%4 (-1,0)
+\or{\setbscolor\setatombondg\addbscolor{}{}}%2010/10/01%\or\setatombondg%5 (-5,-3)
+\or{\setbscolor\setatombondC\addbscolor{}{}}%2010/10/01%\or\setatombondC%6 (-1,-1)
+\or{\setbscolor\setatombondG\addbscolor{}{}}%2010/10/01%\or\setatombondG%7 (-3,-5)
+\or{\setbscolor\setatombondc\addbscolor{}{}}%2010/10/01%\or\setatombondc%8 (0,-1)
+\fi%end of ifcase
+\fi
+}\end{sfpicture}}% %end of \lyl macro
+\def\setatombondD{%% (-3,5)
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(-30,50)(-3,5){60}/(-30,50)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-40,44)(-3,5){60}% % single bond at 1
+ \Put@Line(-20,56)(-3,5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-45,41)(-3,5){60}% % single bond at 1
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \Put@Line(-15,59)(-3,5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-30,50)(-3,5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \dotorline(0,0)(-3,5){90}/(0,0)(-90,150)%
+ \else\if\@tmpb U%unspecified single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-10,-6)(-3,5){90}% % single bond at 1
+ \Put@Line(10,6)(-3,5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(-15,-9)(-3,5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \Put@Line(15,9)(-3,5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \yl@xdiff=10\relax
+ \yl@ydiff=-10\relax
+ \Put@Line(0,0)(-3,5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-100}{160}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondD
+\def\setatombondG{%% (-3,-5)
+ \if@clipfuse%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-30,-50)(-3,-5){60}/(-30,-50)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-40,-44)(-3,-5){60}% % single bond at 1
+ \Put@Line(-20,-56)(-3,-5){60}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-45,-41)(-3,-5){60}% % single bond at 1
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \Put@Line(-15,-59)(-3,-5){60}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-30,-50)(-3,-5){60}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=-10\relax
+ \yl@ydiff=90\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-3,-5){90}/(0,0)(-90,-150)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-10,6)(-3,-5){90}% % single bond at 1
+ \Put@Line(10,-6)(-3,-5){90}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-15,9)(-3,-5){90}% % single bond at 1
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \Put@Line(15,-9)(-3,-5){90}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-3,-5){90}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-80}{-240}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondG
+\def\setatombondH{%% (-1,1)
+ \yl@xdiff=0\relax
+ \yl@ydiff=0\relax
+ \if@clipfuse%
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,40)(-1,1){100}/(-40,40)(-140,140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,36)(-1,1){100}% % single bond at 1
+ \Put@Line(-36,46)(-1,1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,30)(-1,1){100}% % single bond at 1
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \Put@Line(-30,50)(-1,1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,40)(-1,1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{140}{\@memberb}% % left type
+ \else%no clipping
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,1){120}/(0,0)(-120,120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,-6)(-1,1){120}% % single bond at 1
+ \Put@Line(6,6)(-1,1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,-10)(-1,1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \Put@Line(10,10)(-1,1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{120}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondH
+\def\setatombondC{%% (-1,-1)
+ \if@clipfuse%
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(-40,-40)(-1,-1){100}/(-40,-40)(-140,-140)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb D%double bond
+ \Put@Line(-46,-36)(-1,-1){100}% % single bond at 1
+ \Put@Line(-36,-46)(-1,-1){100}% % single bond at 1
+ \else\if\@tmpb T%triple bond
+ \Put@Line(-50,-30)(-1,-1){100}% % single bond at 1
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \Put@Line(-30,-50)(-1,-1){100}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(-40,-40)(-1,-1){100}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-140}{-200}{\@memberb}% % left type
+ \else%no clipping
+ \yl@xdiff=0\relax
+ \yl@ydiff=60\relax
+ \if\@tmpb B%beta single bond
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \dotorline(0,0)(-1,-1){120}/(0,0)(-120,-120)%
+ \else\if\@tmpb U%unspecified single bond
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ }%
+ \else\if\@tmpb S%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb D%beta single bond
+ \Put@Line(-6,6)(-1,-1){120}% % single bond at 1
+ \Put@Line(6,-6)(-1,-1){120}% % single bond at 1
+ \else\if\@tmpb T%beta single bond
+ \Put@Line(-10,10)(-1,-1){120}% % single bond at 1
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \Put@Line(10,-10)(-1,-1){120}% % single bond at 1
+ \else\ifx\@tmpb\empty%beta single bond
+ \Put@Line(0,0)(-1,-1){120}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi\fi%
+ \putlatom{-120}{-180}{\@memberb}% % left type
+ \fi%
+}% end of \setatombondC
+\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}
+\def\upnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}
+\def\BiFunc(#1,#2)#3#4#5{%
+\SlopetoXY(0,0)(#1,#2){#3}%
+\begin{picture}(\@tempcntXa,\@tempcntYa)(0,0)%
+\Put@Line(0,0)(#1,#2){#3}%
+\put(0,0){#4}%
+\put(\@tempcntXa,\@tempcntYa){#5}%
+\end{picture}}
+\def\test@vertix#1{%
+ \def\tempG{#1}\relax%%%added 2006/9/6
+ \if\tempG g\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1A\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1A\endcsname{}%
+ \fi\fi
+ \else
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \if\@tmpb h\relax
+ \expandafter\def\csname #1#1#1\endcsname{@}%
+ \else\if\@tmpb s\relax
+ \expandafter\def\csname #1#1#1\endcsname{}%
+ \fi\fi
+ \fi
+}
+\def\test@vertix@sixv#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or \test@vertix{#2}%
+ \or \test@vertix{#3}%
+ \or \test@vertix{#4}%
+ \or
+ \if\@tmpb a\relax%
+ \def\iii{@}%
+ \else
+ \test@vertix{#5}%
+ \fi
+ \or \test@vertix{#6}%
+ \or \test@vertix{#7}%
+\fi\fi}}% end of \test@vertix@sixv
+%% \changes{v2.00}{1996/11/14}{@ in place of a net value}
+\def\set@hetatom@sixv#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}\relax%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa \relax%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putratom{0}{356}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putratom{0}{406}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@acliptrue%
+ \putratom{-31}{356}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@bcliptrue%
+ \putratom{135}{280}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ccliptrue%
+ \putratom{135}{65}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{0}{50}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{0}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@cliptrue%
+ \putratom{-31}{-10}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putlatom{-135}{95}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putlatom{-175}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@ecliptrue%
+ \putlatom{-135}{65}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{-175}{303}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else\relax
+ \@fcliptrue%
+ \putlatom{-135}{280}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixv
+\def\set@hetatom@sixh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{103}{171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{135}{141}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{303}{171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{273}{141}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{346}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{406}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{346}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{283}{-131}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{303}{-171}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{125}{-131}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{103}{-171}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sixh
+\def\test@vertix@decav#1#2#3#4#5#6#7{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa \relax%
+ \or\or\or\or\or\or
+ \or \test@vertix{#2}%
+ \or
+ \if\@tmpb a\relax%
+ \def\jjj{@}%
+ \else
+ \test@vertix{#3}%
+ \fi
+ \or \test@vertix{#4}%
+ \or \test@vertix{#5}%
+\fi\fi}}
+\def\set@vrtx@fuse#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\or%10 (= 8a)
+ \@jcliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@fuse
+\def\set@vrtx@fuseh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or
+ \or%%%%4
+ \if\@tmpb a\relax%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or%5
+ \or%6
+ \or%7
+ \or%
+ \if\@tmpb a\relax%
+ \@jcliptrue%2001/06/20 by S. Fujita%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \ifx\@tmpb\empty\relax
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 4a position}%
+ \fi
+\or%10 (= 8a)
+ \ifx\@tmpb\empty\relax
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 8a position}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@fuseh
+\def\set@fusionadd@sixv{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+ \set@fusion@sixv
+ \fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@sixv{%
+\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixv
+\def\set@fusionadd@sixvi{%
+ \if\@@tmpa 4\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-90}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-90}{120}{\@@tmpb}% % right type
+ \else
+ \set@fusion@sixvi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@sixvi
+\def\set@fusion@sixvi{%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{406}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@sixvi
+\def\set@fusionadd@sixh{%
+ \if\@@tmpa 4\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+ \set@fusion@sixh
+ \fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@sixh{%
+\if\@@tmpa d\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixh
+\def\set@fusionadd@sixhi{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else
+ \set@fusion@sixhi
+ \fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@sixhi{%
+\if\@@tmpa F\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F, J, or other}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, H, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, h, or other}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C, E, or other}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c, e, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+\def\UnfavorableFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Unfavorable Fusion for bond `#1'}\fi}
+\def\ForbiddenFusion#1{\if@smallringsw\else
+\XyMTeXWarning{Forbidden Fusion for bond `#1'}\fi}
+\def\set@fusion@decav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decav
+\def\set@fusion@decavb{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{b}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{B}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{c}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{C}%
+ \Put@Direct(-171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decavb
+\def\set@fusion@decavt{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{f}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{F}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{b}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{B}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{b}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{B}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(171,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of \set@fusion@decavt
+\def\set@fusion@decah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{K}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decah
+\def\set@fusion@hanthrav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{g}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{G}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{l}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{L}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{a}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{A}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{f}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{F}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{e}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{E}%
+ \Put@Direct(684,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hanthrav
+\def\set@fusion@hphenanv{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \edef\@@tmpa{b}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \edef\@@tmpa{B}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \edef\@@tmpa{a}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \edef\@@tmpa{A}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa c%
+ \edef\@@tmpa{f}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa C%
+ \edef\@@tmpa{F}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{e}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{E}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{e}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{E}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{f}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{F}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{J}%
+ \else\if\@tmpa k%
+ \edef\@@tmpa{d}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{k}%
+ \else\if\@tmpa K%
+ \edef\@@tmpa{D}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{K}%
+ \else\if\@tmpa l%
+ \edef\@@tmpa{c}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa L%
+ \edef\@@tmpa{C}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa m%
+ \edef\@@tmpa{b}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{m}%
+ \else\if\@tmpa M%
+ \edef\@@tmpa{B}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{M}%
+ \else\if\@tmpa n%
+ \edef\@@tmpa{c}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{n}%
+ \else\if\@tmpa N%
+ \edef\@@tmpa{C}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \UnfavorableFusion{N}%
+ \else\if\@tmpa o%
+ \edef\@@tmpa{d}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{o}%
+ \else\if\@tmpa O%
+ \edef\@@tmpa{D}%
+ \Put@Direct(513,303){\set@fusionadd@sixv}%
+ \ForbiddenFusion{O}%
+ \else\if\@tmpa p%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{p}%
+ \else\if\@tmpa P%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{P}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@hphananv
+\def\set@fusionadd@fivev{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{88}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{150}{\@@tmpb}% % right type
+ \else
+ \set@fusion@fivev
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivev
+\newif\iffusesw \fuseswfalse
+\def\set@fusion@fivev{%
+ \if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa d\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % right type
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % right type
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the marcro \set@fusion@fivev
+\def\set@fusionadd@fivevi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{-38}{213}{\@@tmpb}% % right type
+ \else
+ \set@fusion@fivevi
+ \fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusionadd@fivevi
+\def\set@fusion@fivevi{%
+\if\@@tmpa d\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{406}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{-171}{103}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fivevi
+\def\set@fusionadd@fiveh{%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{196}{-30}{\@@tmpb}% % right type
+ \else
+ \set@fusion@fiveh
+ \fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@fiveh{%
+\if\@@tmpa E\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \else\if\@@tmpa B\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{406}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@fiveh
+\def\set@fusionadd@fivehi{%
+ \if\@@tmpa 1\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-60}{233}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{140}{-30}{\@@tmpb}% % right type
+ \else
+ \set@fusion@fivehi
+ \fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@fivehi{%
+\if\@@tmpa d\relax%
+ \putlratom{303}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d, k, or other}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D, K, or other}%
+ \else\if\@@tmpa e\relax%
+ \putlratom{103}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e, j, or other}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E, J, or other}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a, i, or other}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A, I, or other}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{103}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b, k, or other}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{303}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B, K, or other}%
+ \else\if\@@tmpa c\relax
+ \iffusesw
+ \putlratom{303}{171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \fi
+ \else\if\@@tmpa C\relax%
+ \iffusesw
+ \putlratom{303}{-171}{\@@tmpb}% % right type
+ \else
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@sixhi
+\def\set@fusion@nonav{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonav
+\def\set@fusion@nonavi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixv}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonavi
+\def\set@fusion@nonah{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonah
+\def\set@fusion@nonahi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \else\if\@tmpa c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+ \else\if\@tmpa C\relax%
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+ \else\if\@tmpa d%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{d}%
+ \else\if\@tmpa D%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{D}%
+ \else\if\@tmpa e%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa E%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa f%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{h}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixh}%
+ \UnfavorableFusion{H}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{i}%
+ \else\if\@tmpa I%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \UnfavorableFusion{I}%
+ \else\if\@tmpa j%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{j}%
+ \else\if\@tmpa J%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixh}%
+ \ForbiddenFusion{J}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@nonahi
+\def\SetTwoAtoms#1{\setbox0=\hbox{#1}%
+{\white \rule{\wd0}{\ht0}}\kern-\wd0{#1}}
+\def\SetTwoAtomx#1{{\setbox0=\hbox{#1}%
+\@tempdimd=\wd0 \advance\@tempdimd by8\unitlength%
+\@tempdime=\ht0 \advance\@tempdime by8\unitlength%
+\kern-4\unitlength{\white \rule[-4\unitlength]{\@tempdimd}{\@tempdime}}%
+\kern-\@tempdimd{#1}}}
+\originalpicture%initial setting
+\endinput
+%%
+%% End of file `chemstr.sty'.
diff --git a/macros/latex/contrib/xymtex/base/doins.bat b/macros/latex/contrib/xymtex/base/doins.bat
new file mode 100644
index 0000000000..96a60aed40
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/doins.bat
@@ -0,0 +1,14 @@
+platex aliphat.ins
+platex carom.ins
+platex ccycle.ins
+platex chemist.ins
+platex chemstr.ins
+platex hcycle.ins
+platex hetarom.ins
+platex hetaromh.ins
+platex locant.ins
+platex lowcycle.ins
+platex polymers.ins
+platex methylen.ins
+platex fusering.ins
+platex sizeredc.ins
diff --git a/macros/latex/contrib/xymtex/base/fusering.dtx b/macros/latex/contrib/xymtex/base/fusering.dtx
new file mode 100644
index 0000000000..1d7facf583
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/fusering.dtx
@@ -0,0 +1,4597 @@
+% \iffalse meta-comment
+%% File: fusering.dtx
+%
+% Copyright 1998,2001,2002,2004,2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files fusering.dtx and fusering.ins
+% and the derived file fusering.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{fusering}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{fusering}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{fusering}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{fusering}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{fusering}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{3906}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and
+% clipping information}
+% \changes{v3.00}{2002/04/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{fusering.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{fusering.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Fusing Ring Units by {\sffamily fusering.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{fusering.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{methylen:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% fusering & fusering.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*fusering>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{fusering}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for fusering.sty}
+%
+% \begin{verbatim}
+% **********************************
+% * fusering.sty: list of commands *
+% **********************************
+%
+% <Six-membered fused ring units>
+% \sixfusev \@sixfusev \sixfuseposv
+% \sixfusevi \@sixfusevi \sixfuseposvi
+% \sixfuseh \@sixfuseh \sixfuseposh
+% \sixfusehi \@sixfusehi \sixfuseposhi
+%
+% <Five-membered fused ring units>
+% \fivefusev \@fivefusev \fivefuseposv
+% \fivefusevi \@fivefusevi \fivefuseposvi
+% \fivefuseh \@fivefuseh \fivefuseposh
+% \fivefusehi \@fivefusehi \fivefuseposhi
+%
+% <Four-membered fused ring units>
+% \fourfuse \@fourfuse \fourfusepos
+%
+% <Three-membered fused ring units>
+% \threefusev \@threefusev \threefuseposv
+% \threefusevi \@threefusevi \threefuseposvi
+% \threefuseh \@threefuseh \threefuseposh
+% \threefusehi \@threefusehi \threefuseposhi
+
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf polymers.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} etc. for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\@ifundefined{hbonde}{\input hetaromh.sty\relax}{}
+\@ifundefined{bonde}{\input hetarom.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Six-Membered Fusing Units}
+% \subsection{Vertical Type}
+%
+% The command |\sixfusev| produces a six-membered fusing unit
+% of vertical type. The structure produced lacks a given bond
+% in order to realize ring fusion, which produces a new ring system.
+% The following numbering is adopted in this macro.
+% Note that the difference between |\sixfusev| and |\sixuniv|,
+% the latter of which is designed as an inner command for giving
+% a building block with no adjustment of attached sites, while
+% the former has a function of such adjustment.
+%
+% \begin{verbatim}
+% *****************************
+% * six-membered fusing unit *
+% * (vertical type) *
+% *****************************
+%
+% 1
+% f * a
+% 6 * * 2
+% d | | b
+% | |
+% 5 * * 3
+% d * c
+% 4 <===== the original point
+% \end{verbatim}
+%
+% The macro |\sixfusev| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixfusev(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% \begin{verbatim}
+% SKBONDLIST =
+% A: dotted bond for an alpha (down) bond
+% B: boldfaced bond for a beta (upper) bond
+%
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixfusev{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% \changes{v2.00}{1998/12/25}{New command: \cs{sixfusev}}
+%
+% \begin{macro}{\if@skbondlist}
+% \begin{macrocode}
+%\newif\if@skbondlist
+%\@skbondlistfalse
+% \end{macrocode}
+% \end{macro}% to hetarom.sty
+%
+% \begin{macro}{\sixfusev}
+% \begin{macro}{\@six@fusev}
+% \begin{macro}{\@six@@fusev}
+% \begin{macro}{\@sixfusev}
+% \begin{macrocode}
+\def\sixfusev{\@ifnextchar({\@six@fusev(@}{\@six@fusev(@)}}
+\def\@six@fusev(#1){\@ifnextchar[{\@six@@fusev(#1)[@}%
+{\@six@@fusev(#1)[@]}}
+\def\@six@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusev(#1)[#2]#3#4#5[#6]{%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sixfuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixfusev}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE into a list 1993/11/21 by Shinsaku Fujita
+{%
+\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{c}% bond between 3 and 4 \@ccc -> \skbondc etc
+\set@skel@bond{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 6 and 1 \@fff -> \skbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \bonda%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondc%
+\else\if\member d\relax%
+ \bondd%
+\else\if\member e\relax%
+ \bonde%
+\else\if\member f\relax%
+ \bondf%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixv
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{0}{0}{7}{0}% %atom 1--6%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+\sixfuseposv{#5}%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusev macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\sixfuseposv| is used in the definition of
+% the |\sixfusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\if@sixfuseposv}
+% \begin{macro}{\sixfuseposv}
+% \begin{macrocode}
+\newif\if@sixfuseposv \@sixfuseposvfalse
+\def\fuseAx{0}
+\def\fuseAy{0}
+\def\fuseBx{0}
+\def\fuseBy{0}
+\def\sixfuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposv
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\@bond@fuse@omit| is used in |\sixfusev| etc.
+% for detecting omitted bonds, where |\@aaa| etc. are empty if
+% they are omitted.
+%
+% \begin{macro}{\@bond@fuse@omit}
+% \begin{macrocode}
+\def\@bond@fuse@omit#1#2{%
+\ifx#1a\relax\gdef\@aaa{}\fi
+\ifx#1b\relax\gdef\@bbb{}\fi
+\ifx#1c\relax\gdef\@ccc{}\fi
+\ifx#1d\relax\gdef\@ddd{}\fi
+\ifx#1e\relax\gdef\@eee{}\fi
+\ifx#1f\relax\gdef\@fff{}\fi
+\ifx#1A\relax\gdef\@aaa{}\fi
+\ifx#1B\relax\gdef\@bbb{}\fi
+\ifx#1C\relax\gdef\@ccc{}\fi
+\ifx#1D\relax\gdef\@ddd{}\fi
+\ifx#1E\relax\gdef\@eee{}\fi
+\ifx#1F\relax\gdef\@fff{}\fi
+%%%%
+\@tfor\memBer:=#2\do{%
+\if\memBer a\relax\gdef\@aaa{}%
+ \ifx#1a\relax
+ \XyMTeXWarning{Double spec. of bond `a' in FUSE and OMIT}\fi
+\fi%
+\if\memBer A\relax\gdef\@aaa{}%
+ \ifx#1a\relax
+ \XyMTeXWarning{Double spec. of bond `a' in FUSE and OMIT}\fi
+\fi%
+\if\memBer b\relax\gdef\@bbb{}%
+ \ifx#1b\relax
+ \XyMTeXWarning{Double spec. of bond `b' in FUSE and OMIT}\fi
+\fi%
+\if\memBer B\relax\gdef\@bbb{}%
+ \ifx#1b\relax
+ \XyMTeXWarning{Double spec. of bond `b' in FUSE and OMIT}\fi
+\fi%
+\if\memBer c\relax\gdef\@ccc{}%
+ \ifx#1c\relax
+ \XyMTeXWarning{Double spec. of bond `c' in FUSE and OMIT}\fi
+\fi%
+\if\memBer C\relax\gdef\@ccc{}%
+ \ifx#1c\relax
+ \XyMTeXWarning{Double spec. of bond `c' in FUSE and OMIT}\fi
+\fi%
+\if\memBer d\relax\gdef\@ddd{}%
+ \ifx#1d\relax
+ \XyMTeXWarning{Double spec. of bond `d' in FUSE and OMIT}\fi
+\fi%
+\if\memBer D\relax\gdef\@ddd{}%
+ \ifx#1d\relax
+ \XyMTeXWarning{Double spec. of bond `d' in FUSE and OMIT}\fi
+\fi%
+\if\memBer e\relax\gdef\@eee{}%
+ \ifx#1e\relax
+ \XyMTeXWarning{Double spec. of bond `e' in FUSE and OMIT}\fi
+\fi%
+\if\memBer E\relax\gdef\@eee{}%
+ \ifx#1e\relax
+ \XyMTeXWarning{Double spec. of bond `e' in FUSE and OMIT}\fi
+\fi%
+\if\memBer f\relax\gdef\@fff{}%
+ \ifx#1f\relax
+ \XyMTeXWarning{Double spec. of bond `f' in FUSE and OMIT}\fi
+\fi%
+\if\memBer F\relax\gdef\@fff{}%
+ \ifx#1f\relax
+ \XyMTeXWarning{Double spec. of bond `f' in FUSE and OMIT}\fi
+\fi%
+}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\sixunitv| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{sixunitv}}
+%
+% \begin{macro}{\sixunitv}
+% \begin{macrocode}
+\def\sixunitv{\@ifnextchar[{\@six@unitv}{\@six@unitv[@]}}
+\def\@six@unitv[#1]#2#3#4{\sixfusev[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Inverse Vertical Type}
+%
+% The command |\sixfusevi| produces a six-membered fusing unit
+% of vertical type. The structure produced lacks a given bond
+% in order to realize ring fusion, which produces a new ring system.
+% The following numbering is adopted in this macro.
+% Note that the difference between |\sixfusevi| and |\sixunivi|,
+% the latter of which is designed as an inner command for giving
+% a building block with no adjustment of attached sites, while
+% the former has a function of such adjustment.
+%
+% \begin{verbatim}
+% *****************************
+% * six-membered fusing unit *
+% * (inverse vertical type) *
+% *****************************
+%
+% 4
+% d * c
+% 5 * * 3
+% e | | b
+% | |
+% 6 * * 2
+% f * a
+% 1 <===== the original point
+% \end{verbatim}
+%
+% The macro |\sixfusevi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixfusevi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% \begin{verbatim}
+% SKBONDLIST =
+% A: dotted bond for an alpha (down) bond
+% B: boldfaced bond for a beta (upper) bond
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixfusevi{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% \changes{v2.00}{1998/12/25}{New command: \cs{sixfusevi}}
+%
+% \begin{macro}{\sixfusevi}
+% \begin{macro}{\@six@fusevi}
+% \begin{macro}{\@six@@fusevi}
+% \begin{macro}{\@sixfusevi}
+% \begin{macrocode}
+\def\sixfusevi{\@ifnextchar({\@six@fusevi(@}{\@six@fusevi(@)}}
+\def\@six@fusevi(#1){\@ifnextchar[{\@six@@fusevi(#1)[@}%
+{\@six@@fusevi(#1)[@]}}
+\def\@six@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusevi(#1)[#2]#3#4#5[#6]{%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize%
+\test@vertix@sixv{#3}{d}{c}{b}{a}{f}{e}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sixfuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixfusevi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE into a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{a}% bond between 3 and 4 \@ccc -> \skbonda etc
+\set@skel@bond{#1}{d}{f}% bond between 4 and 5 \@ddd -> \skbondf etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{d}% bond between 6 and 1 \@fff -> \skbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \bondc%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bonda%
+\else\if\member d\relax%
+ \bondf%
+\else\if\member e\relax%
+ \bonde%
+\else\if\member f\relax%
+ \bondd%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixvi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{5}{0}{5}{-1}% %atom 1--4%
+\set@hetatom@sixv{#3}{11}{4}{7}{-1}% %atom 5 and 6%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringv{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\sixfuseposvi{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\sixfuseposvi| is used in the definition of
+% the |\sixfusevi| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\sixfuseposvi}
+% \begin{macrocode}
+\def\sixfuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \sixfuseposvi
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\sixunitvi| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{sixunitvi}}
+%
+% \begin{macro}{\sixunitvi}
+% \begin{macrocode}
+\def\sixunitvi{\@ifnextchar[{\@six@unitvi}{\@six@unitvi[@]}}
+\def\@six@unitvi[#1]#2#3#4{\sixfusevi[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Normal Horizontal Type}
+%
+% The command |\sixfuseh| produces a six-membered fusing unit
+% of horizontal type. The structure produced lacks a given bond
+% in order to realize ring fusion, which produces a new ring system.
+% The following numbering is adopted in this macro.
+% Note that the difference between |\sixfuseh| and |\sixunih|,
+% the latter of which is designed as an inner command for giving
+% a building block with no adjustment of attached sites, while
+% the former has a function of such adjustment.
+%
+% \begin{verbatim}
+% *****************************
+% * six-membered fusing unit *
+% * (horizontal type) *
+% *****************************
+% b
+% 2 3
+% a ----- c
+% * *
+% the original point ===> 1 * * 4
+% (0,0) * * d
+% f -----
+% 6 5
+% e
+% \end{verbatim}
+%
+% The macro |\sixfuseh| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixfuseh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixfuseh{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% The definition of |\sixfuseh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh|.
+% \end{enumerate}
+% \changes{v2.00}{1998/12/29}{New command: \cs{sixfuseh}}
+%
+% \begin{macro}{\sixfuseh}
+% \begin{macro}{\@six@fuseh}
+% \begin{macro}{\@six@@fuseh}
+% \begin{macro}{\@sixfuseh}
+% \begin{macrocode}
+\def\sixfuseh{\@ifnextchar({\@six@fuseh(@}{\@six@fuseh(@)}}
+\def\@six@fuseh(#1){\@ifnextchar[{\@six@@fuseh(#1)[@}%
+{\@six@@fuseh(#1)[@]}}
+\def\@six@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfuseh(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize%
+\test@vrtx@sixh{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sixfuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){sixfuseh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE into a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \hskbondd etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{f}% bond between 6 and 1 \@fff -> \hskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \hbonda%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondc%
+\else \if\member d\relax%
+ \hbondd%
+\else \if\member e\relax%
+ \hbonde%
+\else \if\member f\relax%
+ \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixh
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{0}{0}{7}{0}% %atom 1--6%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+\sixfuseposh{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfuseh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\sixfuseposh| is used in the definition of
+% the |\sixfuseh| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\sixfuseposh}
+% \begin{macrocode}
+\def\sixfuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposh
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\sixunith| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{sixunith}}
+%
+% \begin{macro}{\sixunith}
+% \begin{macrocode}
+\def\sixunith{\@ifnextchar[{\@six@unith}{\@six@unith[@]}}
+\def\@six@unith[#1]#2#3#4{\sixfuseh[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse Horizontal Type}
+%
+% The command |\sixfusehi| produces a six-membered fusing unit
+% of inverse horizontal type. The structure produced lacks a given bond
+% in order to realize ring fusion, which produces a new ring system.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *****************************
+% * six-membered fusing unit *
+% * (inverse horizontal type) *
+% *****************************
+% b
+% 3 2
+% c ----- a
+% * *
+% 4 * * 1 <== the original point (0,0)
+% * * f
+% d -----
+% 5 6
+% e
+% \end{verbatim}
+%
+% The macro |\sixfusehi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixfusehi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixfusehi{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% \changes{v2.00}{1998/12/29}{New command: \cs{sixfusehi}}
+%
+% \begin{macro}{\sixfusehi}
+% \begin{macro}{\@six@fusehi}
+% \begin{macro}{\@six@@fusehi}
+% \begin{macro}{\@sixfusehi}
+% \begin{macrocode}
+\def\sixfusehi{\@ifnextchar({\@six@fusehi(@}{\@six@fusehi(@)}}
+\def\@six@fusehi(#1){\@ifnextchar[{\@six@@fusehi(#1)[@}%
+{\@six@@fusehi(#1)[@]}}
+\def\@six@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusehi(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize%
+\test@vrtx@sixhi{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sixfuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){sixfusehi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE into a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 5 \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{d}% bond between 6 and 1 \@fff -> \hskbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \hbondc%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbonda%
+\else \if\member d\relax%
+ \hbondf%
+\else \if\member e\relax%
+ \hbonde%
+\else \if\member f\relax%
+ \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{5}{0}{5}{-1}% %subst 1--4
+\set@hetatom@sixh{#3}{11}{4}{7}{-1}% %subst 5 and 6
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\sixfuseposhi{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\sixfuseposhi| is used in the definition of
+% the |\sixfusehi| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\sixfuseposhi}
+% \begin{macrocode}
+\def\sixfuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `C'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `c'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `B'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposhi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The macros |\sixunithi| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{sixunithi}}
+%
+% \begin{macro}{\sixunithi}
+% \begin{macrocode}
+\def\sixunithi{\@ifnextchar[{\@six@unithi}{\@six@unithi[@]}}
+\def\@six@unithi[#1]#2#3#4{\sixfusehi[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Five-membered fused ring unit}
+% \subsection{Vertical type}
+%
+% The macro |\fivefusev| is a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * five-membered fused*
+% * (vertical type) *
+% **********************
+%
+% 4 _______ 3
+% | |
+% | |
+% 5 * * 2
+% *
+% 1 <===== the original point
+% \end{verbatim}
+%
+% The macro |\fivefusev| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fivefusev(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of
+% which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted for fusion.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fivefusev{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% \begin{macro}{\fivefusev}
+% \begin{macro}{\@five@fusev}
+% \begin{macro}{\@five@@fusev}
+% \begin{macro}{\@fivefusev}
+% \begin{macrocode}
+\def\fivefusev{\@ifnextchar({\@five@fusev(@}{\@five@fusev(@)}}
+\def\@five@fusev(#1){\@ifnextchar[{\@five@@fusev(#1)[@}%
+{\@five@@fusev(#1)[@]}}
+\def\@five@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusev(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fivefuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fivefusev}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%
+% %% outer skeleton %
+% %%%%%%%%%%%%%%%%%%%
+% changed FUSE to a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhoriz}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%
+% %% inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax%
+ \bondc%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondhoriz%
+\else\if\member d\relax%
+ \bonde%
+\else\if\member e\relax%
+ \bondd%
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivev
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixv{#3}{10}{4}{7}{-1}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringv{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposv{#5}}%%for FuseWaring when nested
+\iniatom\iniflag}%end of \fivefusev macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\fivefuseposv| is used in the definition of
+% the |\fivefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\fivefuseposv}
+% \begin{macrocode}
+\def\fivefuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fivefuseposv
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\fiveunitv| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{fiveunitv}}
+%
+% \begin{macro}{\fiveunitv}
+% \begin{macrocode}
+\def\fiveunitv{\@ifnextchar[{\@five@unitv}{\@five@unitv[@]}}
+\def\@five@unitv[#1]#2#3#4{\fivefusev[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The macro |\fivefusevi| typesets a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************************
+% * five-membered fusing unit *
+% * (vertical type, inverse type) *
+% ************************************
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% |_____|
+% 4 3
+% *
+% (0,0) <===== the original point
+% \end{verbatim}
+%
+% The macro |\fivefusevi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fivefusevi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fivefusevi{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% \begin{macro}{\fivefusevi}
+% \begin{macro}{\@five@fusevi}
+% \begin{macro}{\@five@@fusevi}
+% \begin{macro}{\@fivefusevi}
+% \begin{macrocode}
+\def\fivefusevi{\@ifnextchar({\@five@fusevi(@}{\@five@fusevi(@)}}
+\def\@five@fusevi(#1){\@ifnextchar[{\@five@@fusevi(#1)[@}%
+{\@five@@fusevi(#1)[@]}}
+\def\@five@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusevi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fivefuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fivefusevi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE to a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhorizi}%
+ % bond between 3 and 4 \@ccc -> \skbondhorizi etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 5 and 6 \@eee -> \skbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax%
+ \bonda%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondhorizi%
+\else\if\member d\relax%
+ \bonde%
+\else\if\member e\relax%
+ \bondf%
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivevi
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixv{#3}{1}{4}{7}{0}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringv{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposvi{#5}}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \fivefusevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\fivefuseposvi| is used in the definition of
+% the |\fivefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\fivefuseposvi}
+% \begin{macrocode}
+\def\fivefuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \fivefuseposvi
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\fiveunitvi| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{fiveunitvi}}
+%
+% \begin{macro}{\fiveunitvi}
+% \begin{macrocode}
+\def\fiveunitvi{\@ifnextchar[{\@five@unitvi}{\@five@unitvi[@]}}
+\def\@five@unitvi[#1]#2#3#4{\fivefusevi[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Horizonatl type}
+%
+% The macro |\fivefuseh| is a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * five-membered unit *
+% * (horizontal type) *
+% **********************
+%
+% 3 _____ 2
+% | *
+% | * 1 <===== the original point
+% | *
+% 4 ----- 5
+% \end{verbatim}
+%
+% The macro |\fivefuseh| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fivefuseh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fivefuseh{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% \begin{macro}{\fivefuseh}
+% \begin{macro}{\@five@fuseh}
+% \begin{macro}{\@five@@fuseh}
+% \begin{macro}{\@fivefuseh}
+% \begin{macrocode}
+\def\fivefuseh{\@ifnextchar({\@five@fuseh(@}{\@five@fuseh(@)}}
+\def\@five@fuseh(#1){\@ifnextchar[{\@five@@fuseh(#1)[@}%
+{\@five@@fuseh(#1)[@]}}
+\def\@five@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefuseh(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fivefuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fivefuseh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE to a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 4 \@ccc -> \hskbondvert etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bondh{#1}{e}{d}% bond between 5 and 6 \@eee -> \skbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax%
+ \hbondc%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondvert%
+\else \if\member d\relax%
+ \hbonde%
+\else \if\member e\relax%
+ \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fiveh
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixh{#3}{10}{4}{7}{-1}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringh{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposh{#5}}%for FuseWaring when nested%
+\iniatom\iniflag}% %end of \fivefuseh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\fivefuseposh| is used in the definition of
+% the |\sixfusehi| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\fivefuseposh}
+% \begin{macrocode}
+\def\fivefuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `B'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fivefuseposh
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\fiveunith| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{fiveunith}}
+%
+% \begin{macro}{\fiveunith}
+% \begin{macrocode}
+\def\fiveunith{\@ifnextchar[{\@five@unith}{\@five@unith[@]}}
+\def\@five@unith[#1]#2#3#4{\fivefuseh[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The macro |\fivefusehi| typesets a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************************
+% * five-membered fusing unit *
+% * (horizontal type, inverse type) *
+% ************************************
+%
+% 2 ----- 3
+% * |
+% the original point 1 * |
+% * |
+% _____|
+% 5 4
+% \end{verbatim}
+%
+% The macro |\fivefusehi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |FUSE|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fivefusehi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fivefusehi{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% \begin{macro}{\fivefusehi}
+% \begin{macro}{\@five@fusehi}
+% \begin{macro}{\@five@@fusehi}
+% \begin{macro}{\@fivefusehi}
+% \begin{macrocode}
+\def\fivefusehi{\@ifnextchar({\@five@fusehi(@}{\@five@fusehi(@)}}
+\def\@five@fusehi(#1){\@ifnextchar[{\@five@@fusehi(#1)[@}%
+{\@five@@fusehi(#1)[@]}}
+\def\@five@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusehi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fivefuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fivefusehi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+% changed FUSE to a list 1993/11/21 by Shinsaku Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 4 \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \hskbonde etc
+\set@skel@bondh{#1}{e}{f}% bond between 5 and 6 \@eee -> \hskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax%
+ \hbonda%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondverti%
+\else \if\member d\relax%
+ \hbonde%
+\else \if\member e\relax%
+ \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(173,0){180}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivehi
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixh{#3}{1}{4}{7}{0}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringh{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposhi{#5}}%for FuseWaring when nested
+\iniatom\iniflag}% %end of \fivefusehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\fivefuseposhi| is used in the definition of
+% the |\sixfuseh| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\fivefuseposhi}
+% \begin{macrocode}
+\def\fivefuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \fivefuseposhi
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\fiveunithi| has been revived for compativility.
+% \changes{v3.00}{2002/4/30}{Revived command: \cs{fiveunithi}}
+%
+% \begin{macro}{\fiveunithi}
+% \begin{macrocode}
+\def\fiveunithi{\@ifnextchar[{\@five@unithi}{\@five@unithi[@]}}
+\def\@five@unithi[#1]#2#3#4{\fivefusehi[#1]{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Four-membered fused ring unit}
+%
+% The macro |\fourfuse| typesets a four-membered ring unit for ring fusion.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **************************
+% * fourfuse derivatives *
+% * (vertical type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% c
+% 4 _____ 3
+% d | | b
+% | |
+% 1 ----- 2<===== the original point
+% a
+% \end{verbatim}
+%
+% The macro |\fourfuse| has two arguments |ATOMLIST|, |SUBSLIST| and |FUSE|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fourfuse(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $4$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% e : 4,1-double bond
+%
+% {n+} : plus at the n-nitrogen atom (n = 1 to 4)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 4 atoms)
+%
+% for n = 1 to 4
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, c, or d)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, or d)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fourfuse{1==N}{1==H;2==F}{c}
+% \fourfuse[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}{a}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\fourfuse}
+% \begin{macro}{\@four@fuse}
+% \begin{macro}{\@four@@fuse}
+% \begin{macro}{\@fourfuse}
+% \begin{macrocode}
+\def\fourfuse{\@ifnextchar({\@four@fuse(@}{\@four@fuse(@)}}
+\def\@four@fuse(#1){\@ifnextchar[{\@four@@fuse(#1)[@}%
+{\@four@@fuse(#1)[@]}}
+\def\@four@@fuse(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fourfuse(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fourfuse(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fourfuse(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{b}{f}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fourfusepos{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-571,-137){fourfuse}%2002/4/30 by S. Fujita
+(571,137)(171,-103)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@longbond{#1}{a}{skbondshorizi}}%
+ % bond between 1 and 2 \@aaa -> \skbondshorizi etc
+\Put@Direct(-142,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,0){\set@skel@longbond{#1}{c}{skbondshoriz}}%
+ % bond between 3 and 4 \@ccc -> \skbondshoriz etc
+\Put@Direct(0,0){\set@skel@bond{#1}{d}{e}}%
+ % bond between 4 and 1 \@ddd -> \skbonde etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \Put@Direct(0,0){\bondshorizi}%
+\else\if\member b\relax \Put@Direct(-142,0){\bondb}%
+\else\if\member c\relax \Put@Direct(0,0){\bondshoriz}%
+\else\if\member d\relax \Put@Direct(0,0){\bonde}%
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fourv
+\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-142,0){\set@hetatom@sixv{#3}{5}{1}{4}{-1}%
+\storeclipinfo
+}% for 2 to 3
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{4}{4}{6}{0}%
+\storeclipinfo
+}% for 1
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{2}{5}{7}{0}
+\storeclipinfo
+}% for 4
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-142,0){\setsixringv{#4}{5}{1}{4}{-1}}% for 2 to 3
+\Put@Direct(0,0){\setsixringv{#4}{4}{4}{6}{0}}% for 1
+\Put@Direct(0,0){\setsixringv{#4}{2}{5}{7}{0}}% for 4
+\end{ShiftPicEnv}%
+\fourfusepos{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \fourfuse macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\fourfusepos| is used in the definition of
+% the |\sixfuseh| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\fourfusepos}
+% \begin{macrocode}
+\def\fourfusepos#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{29}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{29}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{103}%
+ \gdef\fuseBx{29}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{103}%
+ \gdef\fuseAx{29}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{303}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{303}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fourfusepos
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Three-membered fusing unit}
+% \subsection{Vertical type}
+%
+% The macro |\threefusev| typesets a three-membered ring to be fused.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * theree fusing unit *
+% * (vertical type) *
+% **********************
+%
+% b
+% 3--------2
+% c ` / a
+% `1/ <===== the original point
+% \end{verbatim}
+%
+% The macro |\threefusev| has two arguments |ATOMLIST|, |SUBSLIST| and
+% |FUSE| as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threefusev(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, or c)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, or c)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threefusev{1==N}{1==Cl;2==F}{b}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\threefusev}
+% \begin{macro}{\@three@fusev}
+% \begin{macro}{\@three@@fusev}
+% \begin{macro}{\@threefusev}
+% \begin{macrocode}
+\def\threefusev{\@ifnextchar({\@three@fusev(@}{\@three@fusev(@)}}
+\def\@three@fusev(#1){\@ifnextchar[{\@three@@fusev(#1)[@}%
+{\@three@@fusev(#1)[@]}}
+\def\@three@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusev(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{b}{f}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\threefuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-240){threefusev}%2002/4/30 by S. Fujita
+(468,240)(68,0)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skbondtria}}%
+ % bond between 1 and 2 \@aaa -> \skbondtria etc
+\Put@Direct(0,-132){\set@skel@longbond{#1}{b}{skbondshoriz}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skbondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skbondtria etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\bondtria}%
+\else\if\member b\relax\Put@Direct(0,-126){\bondshoriz}%
+\else\if\member c\relax\Put@Direct(-68,0){\bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,108){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threev
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,0){\set@hetatom@sixv{#3}{3}{3}{5}{0}%
+%\if@clip\global\@cliptrue\fi
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(-142,-132){\set@hetatom@sixv{#3}{0}{1}{3}{0}%
+%\if@bclip\global\@bcliptrue\fi
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(0,-132){\set@hetatom@sixv{#3}{3}{5}{7}{0}%
+%\if@fclip\global\@fcliptrue\fi
+\storeclipinfo
+}%subst 3
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,0){\setsixringv{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-142,-132){\setsixringv{#4}{0}{1}{3}{0}}%subst 2
+\Put@Direct(0,-132){\setsixringv{#4}{3}{5}{7}{0}}%subst 3
+\end{ShiftPicEnv}%
+\threefuseposv{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusev macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\threefuseposv| is used in the definition of
+% the |\threefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\threefuseposv}
+% \begin{macrocode}
+\def\threefuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+% \gdef\fuseBx{29}\gdef\fuseBy{171}%
+ \gdef\fuseBx{35}\gdef\fuseBy{171}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+% \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \gdef\fuseBx{-74}\gdef\fuseBy{0}%corrected
+ \gdef\fuseAx{29}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{171}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{171}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{171}%
+ \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{171}%
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposv
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The macro |\threefusevi| typesets a three-membered ring of
+% inverse vertical type. The following numbering is adopted
+% in this macro.
+% \changes{v1.02}{1998/10/20}{Newly added commands:
+% \cs{threefusevi}}
+%
+% \begin{verbatim}
+% ****************************
+% * thereehetero derivatives *
+% * (inverse vertical type) *
+% ****************************
+%
+% /1` <===== the original point
+% c / ` a
+% 3--------2
+% b
+% \end{verbatim}
+%
+% The macro |\threefusevi| has two arguments |ATOMLIST|, |SUBSLIST| and |FUSE|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threefusevi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, or c)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, or c)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threefusevi{1==N}{1==Cl;2==F}{c}
+% \threefusevi[c]{1==N}{1==Cl;3==F;2==CH$_{3}$}{a}
+% \threefusevi{1==N}{1D==O}{b}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\threefusevi}
+% \begin{macro}{\@three@fusevi}
+% \begin{macro}{\@three@@fusevi}
+% \begin{macro}{\@threefusevi}
+% \begin{macrocode}
+\def\threefusevi{\@ifnextchar({\@three@fusevi(@}{\@three@fusevi(@)}}
+\def\@three@fusevi(#1){\@ifnextchar[{\@three@@fusevi(#1)[@}%
+{\@three@@fusevi(#1)[@]}}
+\def\@three@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusevi(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{c}{e}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\threefuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-340){threefusevi}%2002/4/30 by S. Fujita
+(468,340)(68,0)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skBondtria}}%
+ % bond between 1 and 2 \@aaa -> \skBondtria etc
+\Put@Direct(0,-275){\set@skel@longbond{#1}{b}{skbondshorizi}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skBondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skBondtrib etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\Bondtria}%
+\else\if\member b\relax\Put@Direct(0,-274){\bondshorizi}%
+\else\if\member c\relax\Put@Direct(-68,0){\Bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,-108){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threevi
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,-406){\set@hetatom@sixv{#3}{0}{0}{2}{0}%
+%\if@aclip\global\@acliptrue\fi
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(0,-275){\set@hetatom@sixv{#3}{2}{4}{6}{0}%
+%\if@cclip\global\@ccliptrue\fi
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-142,-275){\set@hetatom@sixv{#3}{1}{2}{4}{0}%
+%\if@eclip\global\@ecliptrue\fi
+\storeclipinfo
+}%subst 2
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,-406){\setsixringv{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(0,-275){\setsixringv{#4}{2}{4}{6}{0}}%subst 3
+\Put@Direct(-142,-275){\setsixringv{#4}{1}{2}{4}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposvi{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\threefuseposvi| is used in the definition of
+% the |\threefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\threefuseposvi}
+% \begin{macrocode}
+\def\threefuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+% \gdef\fuseBx{29}\gdef\fuseBy{-171}%
+ \gdef\fuseBx{35}\gdef\fuseBy{-171}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+% \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \gdef\fuseBx{-74}\gdef\fuseBy{0}%corrected
+ \gdef\fuseAx{29}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposvi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macro |\threefuseh| typesets a three-membered ring to be fused.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ****************************
+% * thereehetero fusing unit *
+% * (horizontal type) *
+% ****************************
+
+% aaa fff
+% 3
+% | ` c
+% b | 1 bbb ccc
+% | / a
+% 2/
+% ddd eee
+%
+% \end{verbatim}
+%
+% The macro |\threefuseh| has two arguments |ATOMLIST|, |SUBSLIST| and |FUSE|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threefuseh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, or c)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, or c)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threefuseh{1==N}{1==Cl;2==F}{c}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\threefuseh}
+% \begin{macro}{\@three@fuseh}
+% \begin{macro}{\@three@@fuseh}
+% \begin{macro}{\@threefuseh}
+% \begin{macrocode}
+\def\threefuseh{\@ifnextchar({\@three@fuseh(@}{\@three@fuseh(@)}}
+\def\@three@fuseh(#1){\@ifnextchar[{\@three@@fuseh(#1)[@}%
+{\@three@@fuseh(#1)[@]}}
+\def\@three@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefuseh(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{f}{b}{@}{@}{@}%tentative use for six-h
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\threefuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-200,-240){threefuseh}%2002/4/30 by S. Fujita
+(200,200)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % retreatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{c}{e}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{b}{d}{f}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(171,-103){\set@skel@bond{#1}{b}{e}}%
+ % bond between 2 and 3 \@bbb -> \skbonde etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{a}}%
+ % bond between 3 and 1 \@ccc -> \skbonda etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondc}%
+\else\if\member b\relax\Put@Direct(171,-103){\bonde}%
+\else\if\member c\relax\Put@Direct(0,-200){\bonda}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threeh
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+%\Put@Direct(-235,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+\Put@Direct(-215,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+%\if@clip \global\@cliptrue\fi
+\storeclipinfo
+}%subst 1 <--six h 4
+\developclipinfo
+\Put@Direct(-103,29){\set@hetatom@sixh{#3}{-1}{1}{3}{0}%
+%\if@bclip \global\@bcliptrue\fi
+\storeclipinfo
+}%subst 3 <--six h 2
+\developclipinfo
+\Put@Direct(-103,171){\set@hetatom@sixh{#3}{4}{5}{7}{0}%
+%\if@fclip \global\@fcliptrue\fi
+\storeclipinfo
+}%subst 2 <--six h 6
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-235,103){\setsixringh{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-103,29){\setsixringh{#4}{-1}{1}{3}{0}}%subst 3
+\Put@Direct(-103,171){\setsixringh{#4}{4}{5}{7}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposh{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefuseh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\threefuseposh| is used in the definition of
+% the |\threefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\threefuseposh}
+% \begin{macrocode}
+\def\threefuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%corrected
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+% \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseBx{171}\gdef\fuseBy{97}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+% \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \gdef\fuseBx{0}\gdef\fuseBy{206}%corrected
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The macro |\threefusehi| typesets a three-membered ring to be fused.
+% The following numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *******************************
+% * thereehetero fusing unit *
+% * (vertical horizontal type) *
+% *******************************
+%
+% aaa bbb
+% c 3
+% / |
+% eee 1 | b
+% fff a` |
+% 2 <---original point
+% ccc ddd
+% \end{verbatim}
+%
+% The macro |\threefusehi| has two arguments |ATOMLIST|, |SUBSLIST| and |FUSE|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threefusehi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}{FUSE}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |FUSE| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% FUSE: one bond omitted (a, b, or c)
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges are regarded as non-fused positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, or c)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threefusehi{1==N}{1==Cl;2==F}{c}
+% \threefusehi[c]{1==N}{1==Cl;3==F;2==CH$_{3}$}{a}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\threefusehi}
+% \begin{macro}{\@three@fusehi}
+% \begin{macro}{\@three@@fusehi}
+% \begin{macro}{\@threefusehi}
+% \begin{macrocode}
+\def\threefusehi{\@ifnextchar({\@three@fusehi(@}{\@three@fusehi(@)}}
+\def\@three@fusehi(#1){\@ifnextchar[{\@three@@fusehi(#1)[@}%
+{\@three@@fusehi(#1)[@]}}
+\def\@three@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusehi(#1)[#2]#3#4#5[#6]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{e}{c}{@}{@}{@}%tentative use for six-h
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\threefuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-400,-240){threefusehi}%2002/4/30 by S. Fujita
+(400,200)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % retreatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{f}{d}{b}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{d}}%
+ % bond between 1 and 2 \@aaa -> \skbondd etc
+\Put@Direct(-171,-103){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{f}}%
+ % bond between 3 and 1 \@ccc -> \skbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondd}%
+\else\if\member b\relax\Put@Direct(-171,-103){\bondb}%
+\else\if\member c\relax\Put@Direct(0,-200){\bondf}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threehi
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(-171,103){\set@hetatom@sixh{#3}{0}{0}{2}{0}%
+%\if@aclip \global\@acliptrue\fi
+\storeclipinfo
+}%subst 1 <--six h 1
+\developclipinfo
+\Put@Direct(-303,29){\set@hetatom@sixh{#3}{0}{2}{4}{0}%
+%\if@cclip \global\@ccliptrue\fi
+\storeclipinfo
+}%subst 3 <--six h 3
+\developclipinfo
+\Put@Direct(-303,171){\set@hetatom@sixh{#3}{3}{4}{6}{0}%
+%\if@eclip \global\@ecliptrue\fi
+\storeclipinfo
+}%subst 2 <--six h 5
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-171,103){\setsixringh{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(-303,29){\setsixringh{#4}{0}{2}{4}{0}}%subst 3
+\Put@Direct(-303,171){\setsixringh{#4}{3}{4}{6}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposhi{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\threefuseposhi| is used in the definition of
+% the |\threefusev| macro to detect a fused edge, where
+% the coordinates of a reference terminal (|\fuseAx| and |\fuseAy|)
+% and of the other terminal of the edge (|\fuseBx| and |\fuseBy|)
+% are given for the successive process of adjustment.
+%
+% \begin{macro}{\threefuseposhi}
+% \begin{macrocode}
+\def\threefuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%corrected
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+% \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{97}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+% \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \gdef\fuseBx{0}\gdef\fuseBy{206}%corrected
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposhi
+%</fusering>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/fusering.ins b/macros/latex/contrib/xymtex/base/fusering.ins
new file mode 100644
index 0000000000..c12b5e9e3b
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/fusering.ins
@@ -0,0 +1,53 @@
+\def\batchfile{fusering.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1998,2001,2002,2004,2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.02 Released on October 31, 1998 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files fusering.dtx and fusering.ins
+and the derived file fusering.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{fusering.drv}{t}{%
+ \from{fusering.dtx}{driver}}
+
+\generateFile{fusering.sty}{t}{%
+ \from{fusering.dtx}{fusering}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/fusering.sty b/macros/latex/contrib/xymtex/base/fusering.sty
new file mode 100644
index 0000000000..c672fd53a5
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/fusering.sty
@@ -0,0 +1,1910 @@
+%%
+%% This is file `fusering.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fusering.dtx (with options: `fusering')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1998,2001,2002,2004,2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.02 Released on October 31, 1998 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files fusering.dtx and fusering.ins
+%% and the derived file fusering.sty.
+%%
+%% =======================================
+%%
+%% File: fusering.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{fusering}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\@ifundefined{hbonde}{\input hetaromh.sty\relax}{}
+\@ifundefined{bonde}{\input hetarom.sty\relax}{}
+\unitlength=0.1pt
+\def\sixfusev{\@ifnextchar({\@six@fusev(@}{\@six@fusev(@)}}
+\def\@six@fusev(#1){\@ifnextchar[{\@six@@fusev(#1)[@}%
+{\@six@@fusev(#1)[@]}}
+\def\@six@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusev(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\sixfuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixfusev}%2002/4/30 by S. Fujita
+{%
+\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{c}% bond between 3 and 4 \@ccc -> \skbondc etc
+\set@skel@bond{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 6 and 1 \@fff -> \skbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \bonda%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondc%
+\else\if\member d\relax%
+ \bondd%
+\else\if\member e\relax%
+ \bonde%
+\else\if\member f\relax%
+ \bondf%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixv
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+\set@hetatom@sixv{#3}{0}{0}{7}{0}% %atom 1--6%
+\setsixringv{#4}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+\sixfuseposv{#5}%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusev macro
+\newif\if@sixfuseposv \@sixfuseposvfalse
+\def\fuseAx{0}
+\def\fuseAy{0}
+\def\fuseBx{0}
+\def\fuseBy{0}
+\def\sixfuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposv
+\def\@bond@fuse@omit#1#2{%
+\ifx#1a\relax\gdef\@aaa{}\fi
+\ifx#1b\relax\gdef\@bbb{}\fi
+\ifx#1c\relax\gdef\@ccc{}\fi
+\ifx#1d\relax\gdef\@ddd{}\fi
+\ifx#1e\relax\gdef\@eee{}\fi
+\ifx#1f\relax\gdef\@fff{}\fi
+\ifx#1A\relax\gdef\@aaa{}\fi
+\ifx#1B\relax\gdef\@bbb{}\fi
+\ifx#1C\relax\gdef\@ccc{}\fi
+\ifx#1D\relax\gdef\@ddd{}\fi
+\ifx#1E\relax\gdef\@eee{}\fi
+\ifx#1F\relax\gdef\@fff{}\fi
+%%%%
+\@tfor\memBer:=#2\do{%
+\if\memBer a\relax\gdef\@aaa{}%
+ \ifx#1a\relax
+ \XyMTeXWarning{Double spec. of bond `a' in FUSE and OMIT}\fi
+\fi%
+\if\memBer A\relax\gdef\@aaa{}%
+ \ifx#1a\relax
+ \XyMTeXWarning{Double spec. of bond `a' in FUSE and OMIT}\fi
+\fi%
+\if\memBer b\relax\gdef\@bbb{}%
+ \ifx#1b\relax
+ \XyMTeXWarning{Double spec. of bond `b' in FUSE and OMIT}\fi
+\fi%
+\if\memBer B\relax\gdef\@bbb{}%
+ \ifx#1b\relax
+ \XyMTeXWarning{Double spec. of bond `b' in FUSE and OMIT}\fi
+\fi%
+\if\memBer c\relax\gdef\@ccc{}%
+ \ifx#1c\relax
+ \XyMTeXWarning{Double spec. of bond `c' in FUSE and OMIT}\fi
+\fi%
+\if\memBer C\relax\gdef\@ccc{}%
+ \ifx#1c\relax
+ \XyMTeXWarning{Double spec. of bond `c' in FUSE and OMIT}\fi
+\fi%
+\if\memBer d\relax\gdef\@ddd{}%
+ \ifx#1d\relax
+ \XyMTeXWarning{Double spec. of bond `d' in FUSE and OMIT}\fi
+\fi%
+\if\memBer D\relax\gdef\@ddd{}%
+ \ifx#1d\relax
+ \XyMTeXWarning{Double spec. of bond `d' in FUSE and OMIT}\fi
+\fi%
+\if\memBer e\relax\gdef\@eee{}%
+ \ifx#1e\relax
+ \XyMTeXWarning{Double spec. of bond `e' in FUSE and OMIT}\fi
+\fi%
+\if\memBer E\relax\gdef\@eee{}%
+ \ifx#1e\relax
+ \XyMTeXWarning{Double spec. of bond `e' in FUSE and OMIT}\fi
+\fi%
+\if\memBer f\relax\gdef\@fff{}%
+ \ifx#1f\relax
+ \XyMTeXWarning{Double spec. of bond `f' in FUSE and OMIT}\fi
+\fi%
+\if\memBer F\relax\gdef\@fff{}%
+ \ifx#1f\relax
+ \XyMTeXWarning{Double spec. of bond `f' in FUSE and OMIT}\fi
+\fi%
+}}%
+\def\sixunitv{\@ifnextchar[{\@six@unitv}{\@six@unitv[@]}}
+\def\@six@unitv[#1]#2#3#4{\sixfusev[#1]{#2}{#3}{#4}}
+\def\sixfusevi{\@ifnextchar({\@six@fusevi(@}{\@six@fusevi(@)}}
+\def\@six@fusevi(#1){\@ifnextchar[{\@six@@fusevi(#1)[@}%
+{\@six@@fusevi(#1)[@]}}
+\def\@six@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusevi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize%
+\test@vertix@sixv{#3}{d}{c}{b}{a}{f}{e}%
+\sixfuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixfusevi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{a}% bond between 3 and 4 \@ccc -> \skbonda etc
+\set@skel@bond{#1}{d}{f}% bond between 4 and 5 \@ddd -> \skbondf etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{d}% bond between 6 and 1 \@fff -> \skbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \bondc%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bonda%
+\else\if\member d\relax%
+ \bondf%
+\else\if\member e\relax%
+ \bonde%
+\else\if\member f\relax%
+ \bondd%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixvi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+\set@hetatom@sixv{#3}{5}{0}{5}{-1}% %atom 1--4%
+\set@hetatom@sixv{#3}{11}{4}{7}{-1}% %atom 5 and 6%
+\setsixringv{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringv{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\sixfuseposvi{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusevi macro
+\def\sixfuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \sixfuseposvi
+\def\sixunitvi{\@ifnextchar[{\@six@unitvi}{\@six@unitvi[@]}}
+\def\@six@unitvi[#1]#2#3#4{\sixfusevi[#1]{#2}{#3}{#4}}
+\def\sixfuseh{\@ifnextchar({\@six@fuseh(@}{\@six@fuseh(@)}}
+\def\@six@fuseh(#1){\@ifnextchar[{\@six@@fuseh(#1)[@}%
+{\@six@@fuseh(#1)[@]}}
+\def\@six@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfuseh(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize%
+\test@vrtx@sixh{#3}%
+\sixfuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){sixfuseh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \hskbondd etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{f}% bond between 6 and 1 \@fff -> \hskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \hbonda%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondc%
+\else \if\member d\relax%
+ \hbondd%
+\else \if\member e\relax%
+ \hbonde%
+\else \if\member f\relax%
+ \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixh
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{0}{0}{7}{0}% %atom 1--6%
+\setsixringh{#4}{0}{0}{7}{0}%
+\end{ShiftPicEnv}%
+\sixfuseposh{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfuseh macro
+\def\sixfuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposh
+\def\sixunith{\@ifnextchar[{\@six@unith}{\@six@unith[@]}}
+\def\@six@unith[#1]#2#3#4{\sixfuseh[#1]{#2}{#3}{#4}}
+\def\sixfusehi{\@ifnextchar({\@six@fusehi(@}{\@six@fusehi(@)}}
+\def\@six@fusehi(#1){\@ifnextchar[{\@six@@fusehi(#1)[@}%
+{\@six@@fusehi(#1)[@]}}
+\def\@six@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@sixfusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@sixfusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@sixfusehi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize%
+\test@vrtx@sixhi{#3}%
+\sixfuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){sixfusehi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 5 \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{d}% bond between 6 and 1 \@fff -> \hskbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \hbondc%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbonda%
+\else \if\member d\relax%
+ \hbondf%
+\else \if\member e\relax%
+ \hbonde%
+\else \if\member f\relax%
+ \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{5}{0}{5}{-1}% %subst 1--4
+\set@hetatom@sixh{#3}{11}{4}{7}{-1}% %subst 5 and 6
+\setsixringh{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\sixfuseposhi{#5}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \sixfusehi macro
+\def\sixfuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `C'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `c'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `B'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer F\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer f\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \sixfuseposhi
+\def\sixunithi{\@ifnextchar[{\@six@unithi}{\@six@unithi[@]}}
+\def\@six@unithi[#1]#2#3#4{\sixfusehi[#1]{#2}{#3}{#4}}
+\def\fivefusev{\@ifnextchar({\@five@fusev(@}{\@five@fusev(@)}}
+\def\@five@fusev(#1){\@ifnextchar[{\@five@@fusev(#1)[@}%
+{\@five@@fusev(#1)[@]}}
+\def\@five@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusev(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{@}%
+\fivefuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fivefusev}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhoriz}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax%
+ \bondc%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondhoriz%
+\else\if\member d\relax%
+ \bonde%
+\else\if\member e\relax%
+ \bondd%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivev
+\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixv{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixv{#3}{10}{4}{7}{-1}% % for 4 to 5
+\setsixringv{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringv{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposv{#5}}%%for FuseWaring when nested
+\iniatom\iniflag}%end of \fivefusev macro
+\def\fivefuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `f'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `F'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fivefuseposv
+\def\fiveunitv{\@ifnextchar[{\@five@unitv}{\@five@unitv[@]}}
+\def\@five@unitv[#1]#2#3#4{\fivefusev[#1]{#2}{#3}{#4}}
+\def\fivefusevi{\@ifnextchar({\@five@fusevi(@}{\@five@fusevi(@)}}
+\def\@five@fusevi(#1){\@ifnextchar[{\@five@@fusevi(#1)[@}%
+{\@five@@fusevi(#1)[@]}}
+\def\@five@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusevi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{@}%
+\fivefuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fivefusevi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhorizi}%
+ % bond between 3 and 4 \@ccc -> \skbondhorizi etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 5 and 6 \@eee -> \skbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax%
+ \bonda%
+\else\if\member b\relax%
+ \bondb%
+\else\if\member c\relax%
+ \bondhorizi%
+\else\if\member d\relax%
+ \bonde%
+\else\if\member e\relax%
+ \bondf%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivevi
+\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixv{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixv{#3}{1}{4}{7}{0}% % for 4 to 5
+\setsixringv{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringv{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposvi{#5}}%%for FuseWaring when nested
+\iniatom\iniflag}% %end of \fivefusevi macro
+\def\fivefuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{0}\gdef\fuseBy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{0}\gdef\fuseAy{406}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \fivefuseposvi
+\def\fiveunitvi{\@ifnextchar[{\@five@unitvi}{\@five@unitvi[@]}}
+\def\@five@unitvi[#1]#2#3#4{\fivefusevi[#1]{#2}{#3}{#4}}
+\def\fivefuseh{\@ifnextchar({\@five@fuseh(@}{\@five@fuseh(@)}}
+\def\@five@fuseh(#1){\@ifnextchar[{\@five@@fuseh(#1)[@}%
+{\@five@@fuseh(#1)[@]}}
+\def\@five@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefuseh(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{@}%
+\fivefuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fivefuseh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 4 \@ccc -> \hskbondvert etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bondh{#1}{e}{d}% bond between 5 and 6 \@eee -> \skbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax%
+ \hbondc%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondvert%
+\else \if\member d\relax%
+ \hbonde%
+\else \if\member e\relax%
+ \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fiveh
+\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixh{#3}{10}{4}{7}{-1}% % for 4 to 5
+\setsixringh{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringh{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposh{#5}}%for FuseWaring when nested%
+\iniatom\iniflag}% %end of \fivefuseh macro
+\def\fivefuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `B'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `b'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `A'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `a'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseAx{406}\gdef\fuseAy{0}%
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseBx{406}\gdef\fuseBy{0}%
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fivefuseposh
+\def\fiveunith{\@ifnextchar[{\@five@unith}{\@five@unith[@]}}
+\def\@five@unith[#1]#2#3#4{\fivefuseh[#1]{#2}{#3}{#4}}
+\def\fivefusehi{\@ifnextchar({\@five@fusehi(@}{\@five@fusehi(@)}}
+\def\@five@fusehi(#1){\@ifnextchar[{\@five@@fusehi(#1)[@}%
+{\@five@@fusehi(#1)[@]}}
+\def\@five@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fivefusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fivefusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fivefusehi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{@}%
+\fivefuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fivefusehi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 4 \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \hskbonde etc
+\set@skel@bondh{#1}{e}{f}% bond between 5 and 6 \@eee -> \hskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax%
+ \hbonda%
+\else \if\member b\relax%
+ \hbondb%
+\else \if\member c\relax%
+ \hbondverti%
+\else \if\member d\relax%
+ \hbonde%
+\else \if\member e\relax%
+ \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(173,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivehi
+\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixh{#3}{1}{4}{7}{0}% % for 4 to 5
+\setsixringh{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringh{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}%
+{\let\XyMTeXWarning\@gobble
+\fivefuseposhi{#5}}%for FuseWaring when nested
+\iniatom\iniflag}% %end of \fivefusehi macro
+\def\fivefuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{171}%
+ \gdef\fuseBx{303}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{171}%
+ \gdef\fuseAx{303}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \XyMTeXWarning{Not-used fusion at bond `c'}%
+\fi
+\if\memBer C\relax
+ \XyMTeXWarning{Not-used fusion at bond `C'}%
+\fi
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{303}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{303}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer e\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `e'}%
+ \else
+ \gdef\fuseAx{103}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer E\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `E'}%
+ \else
+ \gdef\fuseBx{103}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi}}}% end of the macro \fivefuseposhi
+\def\fiveunithi{\@ifnextchar[{\@five@unithi}{\@five@unithi[@]}}
+\def\@five@unithi[#1]#2#3#4{\fivefusehi[#1]{#2}{#3}{#4}}
+\def\fourfuse{\@ifnextchar({\@four@fuse(@}{\@four@fuse(@)}}
+\def\@four@fuse(#1){\@ifnextchar[{\@four@@fuse(#1)[@}%
+{\@four@@fuse(#1)[@]}}
+\def\@four@@fuse(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@fourfuse(#1)[#2]{#3}{#4}{#5}[@}%
+{\@fourfuse(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@fourfuse(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{b}{f}{@}{@}%
+\fourfusepos{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-571,-137){fourfuse}%2002/4/30 by S. Fujita
+(571,137)(171,-103)%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@longbond{#1}{a}{skbondshorizi}}%
+ % bond between 1 and 2 \@aaa -> \skbondshorizi etc
+\Put@Direct(-142,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,0){\set@skel@longbond{#1}{c}{skbondshoriz}}%
+ % bond between 3 and 4 \@ccc -> \skbondshoriz etc
+\Put@Direct(0,0){\set@skel@bond{#1}{d}{e}}%
+ % bond between 4 and 1 \@ddd -> \skbonde etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \Put@Direct(0,0){\bondshorizi}%
+\else\if\member b\relax \Put@Direct(-142,0){\bondb}%
+\else\if\member c\relax \Put@Direct(0,0){\bondshoriz}%
+\else\if\member d\relax \Put@Direct(0,0){\bonde}%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fourv
+\fi\fi\fi\fi\fi}%
+\Put@Direct(-142,0){\set@hetatom@sixv{#3}{5}{1}{4}{-1}%
+\storeclipinfo
+}% for 2 to 3
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{4}{4}{6}{0}%
+\storeclipinfo
+}% for 1
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{2}{5}{7}{0}
+\storeclipinfo
+}% for 4
+\developclipinfo
+\Put@Direct(-142,0){\setsixringv{#4}{5}{1}{4}{-1}}% for 2 to 3
+\Put@Direct(0,0){\setsixringv{#4}{4}{4}{6}{0}}% for 1
+\Put@Direct(0,0){\setsixringv{#4}{2}{5}{7}{0}}% for 4
+\end{ShiftPicEnv}%
+\fourfusepos{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \fourfuse macro
+\def\fourfusepos#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \gdef\fuseBx{29}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{29}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{103}%
+ \gdef\fuseBx{29}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{103}%
+ \gdef\fuseAx{29}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{303}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{303}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer d\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `d'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{303}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer D\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `D'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{303}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \fourfusepos
+\def\threefusev{\@ifnextchar({\@three@fusev(@}{\@three@fusev(@)}}
+\def\@three@fusev(#1){\@ifnextchar[{\@three@@fusev(#1)[@}%
+{\@three@@fusev(#1)[@]}}
+\def\@three@@fusev(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusev(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusev(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusev(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{b}{f}{@}{@}{@}%
+\threefuseposv{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-240){threefusev}%2002/4/30 by S. Fujita
+(468,240)(68,0)%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skbondtria}}%
+ % bond between 1 and 2 \@aaa -> \skbondtria etc
+\Put@Direct(0,-132){\set@skel@longbond{#1}{b}{skbondshoriz}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skbondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skbondtria etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\bondtria}%
+\else\if\member b\relax\Put@Direct(0,-126){\bondshoriz}%
+\else\if\member c\relax\Put@Direct(-68,0){\bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,108){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threev
+\fi\fi\fi\fi\fi%
+}%
+\Put@Direct(-68,0){\set@hetatom@sixv{#3}{3}{3}{5}{0}%
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(-142,-132){\set@hetatom@sixv{#3}{0}{1}{3}{0}%
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(0,-132){\set@hetatom@sixv{#3}{3}{5}{7}{0}%
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-68,0){\setsixringv{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-142,-132){\setsixringv{#4}{0}{1}{3}{0}}%subst 2
+\Put@Direct(0,-132){\setsixringv{#4}{3}{5}{7}{0}}%subst 3
+\end{ShiftPicEnv}%
+\threefuseposv{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusev macro
+\def\threefuseposv#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \gdef\fuseBx{35}\gdef\fuseBy{171}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-74}\gdef\fuseBy{0}%corrected
+ \gdef\fuseAx{29}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{171}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{171}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{171}%
+ \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{171}%
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposv
+\def\threefusevi{\@ifnextchar({\@three@fusevi(@}{\@three@fusevi(@)}}
+\def\@three@fusevi(#1){\@ifnextchar[{\@three@@fusevi(#1)[@}%
+{\@three@@fusevi(#1)[@]}}
+\def\@three@@fusevi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusevi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusevi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusevi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{c}{e}{@}{@}{@}%
+\threefuseposvi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-340){threefusevi}%2002/4/30 by S. Fujita
+(468,340)(68,0)%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skBondtria}}%
+ % bond between 1 and 2 \@aaa -> \skBondtria etc
+\Put@Direct(0,-275){\set@skel@longbond{#1}{b}{skbondshorizi}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skBondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skBondtrib etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\Bondtria}%
+\else\if\member b\relax\Put@Direct(0,-274){\bondshorizi}%
+\else\if\member c\relax\Put@Direct(-68,0){\Bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,-108){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threevi
+\fi\fi\fi\fi\fi%
+}%
+\Put@Direct(-68,-406){\set@hetatom@sixv{#3}{0}{0}{2}{0}%
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(0,-275){\set@hetatom@sixv{#3}{2}{4}{6}{0}%
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-142,-275){\set@hetatom@sixv{#3}{1}{2}{4}{0}%
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(-68,-406){\setsixringv{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(0,-275){\setsixringv{#4}{2}{4}{6}{0}}%subst 3
+\Put@Direct(-142,-275){\setsixringv{#4}{1}{2}{4}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposvi{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusevi macro
+\def\threefuseposvi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \gdef\fuseBx{35}\gdef\fuseBy{-171}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-74}\gdef\fuseBy{0}%corrected
+ \gdef\fuseAx{29}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{29}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{29}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{-171}\gdef\fuseAy{-171}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{-171}%
+ \gdef\fuseBx{-68}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{-171}%
+ \gdef\fuseAx{-68}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposvi
+
+\def\threefuseh{\@ifnextchar({\@three@fuseh(@}{\@three@fuseh(@)}}
+\def\@three@fuseh(#1){\@ifnextchar[{\@three@@fuseh(#1)[@}%
+{\@three@@fuseh(#1)[@]}}
+\def\@three@@fuseh(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefuseh(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefuseh(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefuseh(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{f}{b}{@}{@}{@}%tentative use for six-h
+\threefuseposh{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-200,-240){threefuseh}%2002/4/30 by S. Fujita
+(200,200)%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{c}{e}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{b}{d}{f}{@}{@}{@}%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(171,-103){\set@skel@bond{#1}{b}{e}}%
+ % bond between 2 and 3 \@bbb -> \skbonde etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{a}}%
+ % bond between 3 and 1 \@ccc -> \skbonda etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondc}%
+\else\if\member b\relax\Put@Direct(171,-103){\bonde}%
+\else\if\member c\relax\Put@Direct(0,-200){\bonda}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threeh
+\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(-215,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+\storeclipinfo
+}%subst 1 <--six h 4
+\developclipinfo
+\Put@Direct(-103,29){\set@hetatom@sixh{#3}{-1}{1}{3}{0}%
+\storeclipinfo
+}%subst 3 <--six h 2
+\developclipinfo
+\Put@Direct(-103,171){\set@hetatom@sixh{#3}{4}{5}{7}{0}%
+\storeclipinfo
+}%subst 2 <--six h 6
+\developclipinfo
+\Put@Direct(-235,103){\setsixringh{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-103,29){\setsixringh{#4}{-1}{1}{3}{0}}%subst 3
+\Put@Direct(-103,171){\setsixringh{#4}{4}{5}{7}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposh{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefuseh macro
+\def\threefuseposh#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%corrected
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \gdef\fuseBx{171}\gdef\fuseBy{97}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{206}%corrected
+ \gdef\fuseAx{171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposh
+\def\threefusehi{\@ifnextchar({\@three@fusehi(@}{\@three@fusehi(@)}}
+\def\@three@fusehi(#1){\@ifnextchar[{\@three@@fusehi(#1)[@}%
+{\@three@@fusehi(#1)[@]}}
+\def\@three@@fusehi(#1)[#2]#3#4#5{\@ifnextchar[%
+{\@threefusehi(#1)[#2]{#3}{#4}{#5}[@}%
+{\@threefusehi(#1)[#2]{#3}{#4}{#5}[@]}}
+\def\@threefusehi(#1)[#2]#3#4#5[#6]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{e}{c}{@}{@}{@}%tentative use for six-h
+\threefuseposhi{#5}%
+\begin{ShiftPicEnv}[1](0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-400,-240){threefusehi}%2002/4/30 by S. Fujita
+(400,200)%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{f}{d}{b}{@}{@}{@}%
+{\resetbdsw%
+\@bond@fuse@omit{#5}{#6}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{d}}%
+ % bond between 1 and 2 \@aaa -> \skbondd etc
+\Put@Direct(-171,-103){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{f}}%
+ % bond between 3 and 1 \@ccc -> \skbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondd}%
+\else\if\member b\relax\Put@Direct(-171,-103){\bondb}%
+\else\if\member c\relax\Put@Direct(0,-200){\bondf}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threehi
+\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(-171,103){\set@hetatom@sixh{#3}{0}{0}{2}{0}%
+\storeclipinfo
+}%subst 1 <--six h 1
+\developclipinfo
+\Put@Direct(-303,29){\set@hetatom@sixh{#3}{0}{2}{4}{0}%
+\storeclipinfo
+}%subst 3 <--six h 3
+\developclipinfo
+\Put@Direct(-303,171){\set@hetatom@sixh{#3}{3}{4}{6}{0}%
+\storeclipinfo
+}%subst 2 <--six h 5
+\developclipinfo
+\Put@Direct(-171,103){\setsixringh{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(-303,29){\setsixringh{#4}{0}{2}{4}{0}}%subst 3
+\Put@Direct(-303,171){\setsixringh{#4}{3}{4}{6}{0}}%subst 2
+\end{ShiftPicEnv}%
+\threefuseposhi{#5}%%for FuseWaring when nested
+\iniatom\iniflag
+\global\@smallringswtrue%for permition at a center bond
+}% %end of \threefusehi macro
+\def\threefuseposhi#1{%
+\global\@sixfuseposvfalse
+{\resetbdsw%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `a'}%
+ \else
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%corrected
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer A\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `A'}%
+ \else
+ \gdef\fuseBx{-171}\gdef\fuseBy{103}%
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer b\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bond at bond `b'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{0}%
+ \gdef\fuseBx{0}\gdef\fuseBy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer B\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `B'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{0}%
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer c\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `c'}%
+ \else
+ \gdef\fuseAx{0}\gdef\fuseAy{200}%
+ \gdef\fuseBx{-171}\gdef\fuseBy{97}%corrected
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+\if\memBer C\relax
+ \if@sixfuseposv
+ \XyMTeXWarning{Double fused bonds at bond `C'}%
+ \else
+ \gdef\fuseBx{0}\gdef\fuseBy{206}%corrected
+ \gdef\fuseAx{-171}\gdef\fuseAy{103}%
+ \global\@sixfuseposvtrue
+ \fi
+\fi%
+}}}% end of the macro \threefuseposhi
+\endinput
+%%
+%% End of file `fusering.sty'.
diff --git a/macros/latex/contrib/xymtex/base/hcycle.dtx b/macros/latex/contrib/xymtex/base/hcycle.dtx
new file mode 100644
index 0000000000..87909359c3
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hcycle.dtx
@@ -0,0 +1,3897 @@
+% \iffalse meta-comment
+%% File: hcycle.dtx
+%
+% Copyright 1993,1996,1998,2001,2002,2004,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% hcycle.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files hcycle.dtx and hcycle.ins
+% and the derived file hcycle.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hcycle}
+% \def\versi@ndate{March 31, 2013}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{3807}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/6/20}{Command for Sugars} (private version)
+% \changes{v3.00}{2002/4/30}{Command for Sugars}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{bond coloring and the LaTeX Project Public License}
+% \changes{v5.01b}{2013/03/30}{Improvement of this documentation}
+% \changes{v5.01bb}{2013/03/31}{\cs{pyranosew} etc. added}
+% \changes{v5.01}{2013/06/25}{\cs{sixsugarhw} etc. added. Wavy bonds added}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{hcycle.dtx}[2013/06/25 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{hcycle.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Further Hetrocycles by {\sffamily hcycle.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{hcycle.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{hcycle:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% hcycle & hcycle.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*hcycle>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released June 25, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{hcycle}
+\def\versi@ndate{June 25, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for hcycle.sty}
+%
+% \begin{verbatim}
+% ********************************
+% * hcycle.sty: list of commands *
+% ********************************
+%
+% <Convention for bond-setting>
+%
+% \@pyrana
+% \@pyranb
+% \@pyranbb
+% \@pyranbB
+% \@pyranbC
+% \@pyranc
+%
+% <Pyranose and Furanose>
+%
+% construction:
+% \pyranose \@pyranose
+% \Pyranose \@Pyranose
+% \furanose \@furanose
+% \Furanose \@Furanose
+%
+% \pyranosew \@pyranosew
+% \Pyranosew \@Pyranosew
+% \furanosew \@furanosew
+% \Furanosew \@Furanosew
+%
+% adjustment:
+% \ylpyranoseposition
+% \ylfuranoseposition
+%
+% <Six-membered Sugars>
+% large dimension:
+% (construction)
+% \SixSugarh \@Six@Sugarh \@Six@@Sugarh \@SixSugarh
+%
+% (adjustment)
+% \ylSixSugarhposition \test@vrtx@SixSugarh
+% \set@skel@Sugarhbond \set@hetatom@Sugarh
+%
+% (bond)
+% \Sugarhskbonda \Sugarhskbondc \Sugarhskbondd
+% \Sugarhskbondb \Sugarhskbonde \Sugarhskbondf
+%
+% \Sugarhbonda \Sugarhbondf \Sugarhbondc
+% \Sugarhbondd \Sugarhbonde \Sugarhbondb
+%
+% normal dimension:
+% (construction)
+% \sixsugarh \@six@sugarh \@six@@sugarh \@sixsugarh
+% \sixsugarhw \@six@sugarhw
+%
+% (adjustment)
+% \set@skel@sugarhbond \set@hetatom@sugarh
+%
+% (bond)
+% \sugarhskbonda \sugarhskbondc \sugarhskbondd
+% \sugarhskbondb \sugarhskbonde \sugarhskbondf
+%
+% \sugarhbonda \sugarhbondf \sugarhbondc
+% \sugarhbondd \sugarhbonde \sugarhbondb
+%
+% <Five-membered Sugars>
+%
+% large dimension:
+% (construction)
+% \FiveSugarh \@Five@Sugarh \@Five@@Sugarh \@FiveSugarh
+%
+% (adjustment)
+% \ylFiveSugarhposition
+% \set@hteatom@FiveSugarh
+%
+% (bond)
+% \fSugarhskbondd \fSugarhskbonde
+%
+% \fSugarhbondd \fSugarhbonde
+%
+% normal dimension:
+% (construction)
+% \fivesugarh \@five@sugarh \@five@@sugarh \@fivesugarh
+% \fivesugarhw \@five@sugarhw
+%
+% (adjustment)
+% \ylfiveSugarhposition
+% \set@hteatom@fivesugarh
+%
+% (bond)
+% \fsugarhskbondd \fsugarhskbonde
+%
+% \fsugarhbondd \fsugarhbonde
+%
+% <Applications>
+% \cyclitol \@cyclitol
+% \Cyclitol \@Cyclitol
+%
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf hcycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Pyranoses and Furanoses}
+% \subsection{Macros for setting substituents}
+%
+% Macros |\@pyrana| to |\@pyranc| are used to set substituents
+% on each position of a pyranose and furanose. Note that
+% comments (conerning locant numbers) on the end of each row have
+% lost the exact meaning,
+% since such a command moiety is used in many macros after copying.
+%
+% \begin{macro}{\@pyrana}
+% \begin{macro}{\@pyranb}
+% \begin{macro}{\@pyranbb}
+% \begin{macro}{\@pyranbB}
+% \begin{macro}{\@pyranc}
+% \begin{macro}{\@pyranbC}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.01}{2001/6/20}{Adding \cs{\@pyranbC}}
+% \changes{v5.01}{2013/6/25}{Adding wavy bonds}
+% \begin{macrocode}
+% **************************************************
+% * setting substituents for pyranose and furanose *
+% **************************************************
+% %%%%%%%%%%%%%%%
+% % subst. on 1 %
+% %%%%%%%%%%%%%%%
+\newif\if@clipping \@clippingfalse
+\def\@pyrana{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(45,0)(1,0){80}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond at 1 alpha (down)
+ \putratom{-32}{-190}{\@memberb}% right type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond at 1 beta (up)
+ \putratom{-32}{130}{\@memberb}% right type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(25,-25)(1,-1){100}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(25,25)(1,1){100}% single bond at 1
+ \putratom{130}{110}{\@memberb}% right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(30,-15)(1,0){90}% double bond at 1
+ \Put@Line(30,15)(1,0){90}% double bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(25,0)(1,0){100}% % wavy bond at 1
+ }%
+ \putratom{130}{-30}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(45,0)(1,0){90}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \fi
+ \fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(1,0){120}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond at 1 alpha (down)
+ \putratom{-32}{-190}{\@memberb}% right type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond at 1 beta (up)
+ \putratom{-32}{130}{\@memberb}% right type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{110}{\@memberb}% right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,-15)(1,0){120}% double bond at 1
+ \Put@Line(0,15)(1,0){120}% double bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){120}% % wavy bond at 1
+ }%
+ \putratom{130}{-30}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(1,0){120}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \fi\fi\fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/25}{\cs{@pyranb} is divided into
+% \cs{@pyranb}, \cs{@pyranbb} and \cs{@pyranbB}}
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%
+% % subst. on 2,3,5 %
+% %%%%%%%%%%%%%%%%%%%
+% %%%%%%%%%%%%%%%
+% % subst. on 2 %
+% %%%%%%%%%%%%%%%
+\def\@pyranb{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta
+ \yl@xdiff=10
+ \yl@ydiff=40
+ \Put@Line(40,-40)(1,-1){100}% single bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10
+ \yl@ydiff=40
+ \Put@Line(-40,-40)(-1,-1){100}% single bond at 2
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(15,-45)(1,-1){100}% double bond at 2
+ \Put@Line(45,-15)(1,-1){100}% double bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,-40)(1,-1){90}% % wavy bond at 2
+ }%
+ \putratom{130}{-180}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(45,45)(1,1){100}% single bond at 1
+ \putratom{130}{110}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(-15,-15)(1,-1){120}% double bond at 1
+ \Put@Line(0,15)(1,-1){120}% double bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,-1){120}% % wavy bond at 2
+ }%
+ \putratom{130}{-180}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{110}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 3 %
+% %%%%%%%%%%%%%%%
+\def\@pyranbb{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 3
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 3
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-45,-45)(-1,-1){100}% single bond at 3
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=20
+ \yl@ydiff=60
+ \Put@Line(-15,-45)(-1,-1){100}% double bond at 3
+ \Put@Line(-45,-15)(-1,-1){100}% double bond at 3
+ \putlatom{-130}{-180}{\@memberb}%left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,-40)(-1,-1){90}% % wavy bond at 2
+ }%
+ \putlatom{-130}{-180}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-45,-45)(-1,-1){100}% single bond at 1
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=20
+ \yl@ydiff=60
+ \Put@Line(15,-15)(-1,-1){120}% double bond at 1
+ \Put@Line(0,15)(-1,-1){120}% double bond at 1
+ \putlatom{-130}{-180}{\@memberb}%left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % wavy bond at 2
+ }%
+ \putlatom{-130}{-180}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 5 %
+% %%%%%%%%%%%%%%%
+\def\@pyranbB{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,45)(1,1){100}% single bond at 5
+ \putratom{130}{130}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(-15,45)(-1,1){100}% double bond at 5
+ \Put@Line(-45,15)(-1,1){100}% double bond at 5
+ \putlatom{-120}{140}{\@memberb}%left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=-60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,40)(-1,1){90}% % wavy bond at 5
+ }%
+ \putlatom{-130}{130}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 5
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(15,15)(-1,1){120}% double bond at 5
+ \Put@Line(0,-15)(-1,1){120}% double bond at 5
+ \putlatom{-120}{140}{\@memberb}%left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=-60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% % wavy bond at 5
+ }%
+ \putlatom{-130}{130}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-20
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{140}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 4 %
+% %%%%%%%%%%%%%%%
+\def\@pyranc{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-45,0)(-1,0){80}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){80}% single bond at 4
+ \putlatom{32}{-190}{\@memberb}% left type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=-32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){80}% single bond at 4 beta (up)
+ \putlatom{32}{130}{\@memberb}% left type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-30,-30)(-1,-1){100}% single bond at 4
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(-30,30)(-1,1){100}% single bond at 4
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-30,-15)(-1,0){100}% double bond at 4
+ \Put@Line(-30,15)(-1,0){100}% double bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){100}% % wavy bond at 4
+ }%
+ \putlatom{-130}{-30}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-45,0)(-1,0){80}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-1,0){120}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond at 4 alpha (down)
+ \putlatom{32}{-190}{\@memberb}% left type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=-32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond at 4 beta (up)
+ \putlatom{32}{130}{\@memberb}% left type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(0,0)(-1,-1){120}% single bond at 4
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 4
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,-15)(-1,0){120}% double bond at 4
+ \Put@Line(0,15)(-1,0){120}% double bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){120}% % wavy bond at 4
+ }%
+ \putlatom{-130}{-30}{\@memberb}% left type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-1,0){120}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \changes{v2.01}{2001/06/20}{New command for SixSugar}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%
+% % subst. on 6 %
+% %%%%%%%%%%%%%%%
+\def\@pyranbC{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A)
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% right type
+ \else\if\@tmpc B%(B)
+ \yl@xdiff=5
+ \yl@ydiff=-15
+ \Put@Line(-45,45)(-1,1){100}% single bond at 6
+ \putlatom{-130}{140}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(45,15)(1,1){100}% double bond at 6
+ \Put@Line(15,45)(1,1){100}% double bond at 6
+ \putratom{130}{140}{\@memberb}%right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=5\relax
+ \yl@ydiff=5\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,40)(1,1){90}% % wavy bond at 6
+ }%
+ \putratom{130}{130}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 6
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(15,-15)(1,1){120}% double bond at 6
+ \Put@Line(0,15)(1,1){120}% double bond at 6
+ \putratom{130}{140}{\@memberb}%right type
+%2013/06/25
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=5\relax
+ \yl@ydiff=5\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,1){120}% % wavy bond at 6
+ }%
+ \putratom{130}{130}{\@memberb}% right type
+%
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-20
+ \Put@Line(0,0)(1,1){120}% single bond at 6
+ \putratom{130}{140}{\@memberb}% right type
+ \fi\fi\fi
+ \fi
+}%
+%</hcycle>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Pyranose derivatives}
+%
+% The standard skeleton of pyranose is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ***********************
+% * pyranose derivative *
+% ***********************
+%
+% The following numbering is adopted in this macro.
+%
+% 5 e 6
+% ----O
+% d * * f
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+% \end{verbatim}
+%
+% The macro |\pyranose| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+% \begin{verbatim}
+%
+% \pyranose[BONDLIST]{SUBSLIST}
+%
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : mother skeleton
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+%
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 5 substitution positions)
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyranose{1Sb==Cl;2Sa==F}
+% \pyranose{1Sb==Cl;4Sa==F;2Sa==CH$_{3}$}
+% \pyranose[a]{3Sb==OAc;4Sb==\lmoiety{MeO};5Sb==CH$_{2}$OAc}
+% \end{verbatim}
+%
+% The definition of |\@pyranose| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macros |\@pyrana| to |\@pyranc| described above.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpyranoseposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \changes{v2.01}{2001/06/20}{The definition has been changed:
+% the old \cs{pyranose} to \cs{pyranoseold}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macro}{\pyranoseold}
+% \begin{macro}{\@pyranoseold}
+% \begin{macrocode}
+%<*hcycleold>
+\def\pyranoseold{\@ifnextchar[{\@pyranoseold}{\@pyranoseold[r]}}
+\def\@pyranoseold[#1]#2{%
+\@reset@ylsw%
+\ylpyranoseposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){pyranose}%
+(240,400)%2002/4/30 by S. Fujita
+ \Put@Line(0,0)(3,5){120}% %bond 4-5
+ \Put@Line(120,200)(1,0){252}% %bond 5-6
+ \Put@Line(532,0)(-3,5){96}% %bond 1-6
+ {\thicklines%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \Put@Line(412,-200)(3,5){120}% %bond 2-1
+ \Put@Line(120,-200)(1,0){292}}% %bond 3-2
+ \putratom{382}{160}{O}% left type
+ %
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(400,-150)(3,5){90}% %double bond 2-1
+\else \if\member b%
+ \Put@Line(150,-160)(1,0){232}% %double bond 3-2
+\else \if\member c%
+ \Put@Line(50,-12)(3,-5){90}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(50,12)(3,5){90}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(150,160)(1,0){232}% %double bond 5-6
+\else \if\member f%
+ \Put@Line(482,12)(-3,5){70}% %double bond 1-6
+\fi\fi\fi\fi\fi\fi\fi}%
+%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(532,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(120,200){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+ \or\setBScolor{\Put@Direct(412,200){%
+ \if@cclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbC}}% subst. on 6%%added 2001/6/20
+\fi %end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \pyranose macro
+%</hcycleold>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v2.01}{2001/06/20}{The new definition for \cs{pyranose}}
+%
+% \begin{macro}{\pyranose}
+% \begin{macro}{\@pyranose}
+% \begin{macrocode}
+%<*hcycle>
+\def\pyranose{\@ifnextchar[{\@pyranose}{\@pyranose[]}}
+\def\@pyranose[#1]#2{\sixsugarh[#1]{6==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The front skeletal bonds of a pyranose ring are typeset with a bold line and wedged lines.
+% \changes{v5.01}{2013/03/31}{added the definition for \cs{pyranosew}}
+%
+% \begin{macro}{\pyranosew}
+% \begin{macro}{\@pyranosew}
+% \begin{macrocode}
+\def\pyranosew{\@ifnextchar[{\@pyranosew}{\@pyranosew[]}}
+\def\@pyranosew[#1]#2{%
+\sixsugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt}}{#2}[abc]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Pyranose derivatives of slightly large dimension can be
+% drawn by the |\Pyranose| macro.
+%
+% \changes{v2.01}{2001/06/20}{New command: \cs{Pyranose}}
+%
+% \begin{macro}{\Pyranose}
+% \begin{macro}{\@Pyranose}
+% \begin{macrocode}
+\def\Pyranose{\@ifnextchar[{\@Pyranose}{\@Pyranose[]}}
+\def\@Pyranose[#1]#2{\SixSugarh[#1]{6==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The front skeletal bonds of a pyranose ring are typeset with a bold line and wedged lines.
+% This command cannot be used in |\TeX|/|\LaTeX| mode. The PostScript mode or the PDF mode
+% should be used.
+% \changes{v5.01}{2013/03/31}{added the definition for \cs{Pyranosew}}
+%
+% \begin{macro}{\Pyranosew}
+% \begin{macro}{\@Pyranosew}
+% \begin{macrocode}
+\def\Pyranosew{\@ifnextchar[{\@Pyranosew}{\@Pyranosew[]}}
+\def\@Pyranosew[#1]#2{%
+\SixSugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){153};4s==\WedgeAsSubst(0,0)(3,-5){153};%
+3s==\PutBondLine(-17,0)(376,0){2.8pt}}{#2}[abc]}
+%</hcycle>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Furanose derivatives}
+%
+% The standard skeleton of furanose is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ***********************
+% * furanose derivative *
+% ***********************
+%
+% The following numbering is adopted in this macro.
+%
+% 5
+% O
+% d * * e
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+%
+% \end{verbatim}
+%
+% The macro |\furanose| has an argument |SUBSLIST| as well as an optional
+% argument |BONDLIST|.
+% \begin{verbatim}
+% \furanose[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : mother skeleton
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 4 substitution positions)
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%\end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \furanose{1Sa==Cl;2Sb==F}
+%
+% \end{verbatim}
+%
+% The definition of |\@furanose| uses a picture environment, in which
+% bonds are put directly, while subsituents are typset by using
+% the macros |\@pyrana| to |\@pyranc| described above.
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylfuranoseposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\furanoseold}
+% \begin{macro}{\@furanoseold}
+% \begin{macrocode}
+%<*hcycleold>
+\def\furanoseold{\@ifnextchar[{\@furanoseold}{\@furanoseold[r]}}
+\def\@furanoseold[#1]#2{%
+\@reset@ylsw%
+\ylfuranoseposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){furanose}%
+(240,400)%2002/4/30 by S. Fujita
+ \Put@Line(0,0)(5,3){236}% %bond 4-5
+ \Put@Line(532,0)(-5,3){236}% %bond 1-5
+ {\thicklines%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \Put@Line(412,-200)(3,5){120}% %bond 2-1
+ \Put@Line(120,-200)(1,0){292}}% %bond 3-2
+ \putratom{236}{130}{O}% left type
+%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic double bonds
+\else \if\member a%
+ \Put@Line(400,-150)(3,5){80}% %double bond 2-1
+\else \if\member b%
+ \Put@Line(150,-160)(1,0){232}% %double bond 3-2
+\else \if\member c%
+ \Put@Line(50,-12)(3,-5){80}% %double bond 4-3
+\else \if\member d%
+ \Put@Line(50,0)(5,3){180}% %double bond 4-5
+\else \if\member e%
+ \Put@Line(482,0)(-5,3){180}% %double bond 1-5
+\fi\fi\fi\fi\fi\fi}%
+%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(532,0){\@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){\@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){\@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){\@pyranc}}% subst. on 4
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{ShiftPicEnvB}%
+}% %end of \furanoseold macro
+%</hcycleold>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v2.01}{2001/06/20}{The new definition for \cs{furanose}}
+% \begin{macro}{\furanose}
+% \begin{macro}{\@furanose}
+% \begin{macrocode}
+%<*hcycle>
+\def\furanose{\@ifnextchar[{\@furanose}{\@furanose[]}}
+\def\@furanose[#1]#2{\fivesugarh[#1]{5==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The front skeletal bonds of a pyranose ring are typeset with a bold line and wedged lines.
+% \changes{v5.01}{2013/03/31}{New command \cs{furanosew}}
+% \begin{macro}{\furanosew}
+% \begin{macro}{\@furanosew}
+% \begin{macrocode}
+\def\furanosew{\@ifnextchar[{\@furanosew}{\@furanosew[]}}
+\def\@furanosew[#1]#2{%
+\fivesugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt}}{#2}[abc]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Furanose derivatives of slightly large dimension can be
+% drawn by the |\Furanose| macro.
+%
+% \changes{v2.01}{2001/06/20}{New command: \cs{Furanose}}
+%
+% \begin{macro}{\Furanose}
+% \begin{macro}{\@Furanose}
+% \begin{macrocode}
+\def\Furanose{\@ifnextchar[{\@Furanose}{\@Furanose[]}}
+\def\@Furanose[#1]#2{\FiveSugarh[#1]{5==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The front skeletal bonds of a pyranose ring are typeset with a bold line and wedged lines.
+% This command cannot be used in |\TeX|/|\LaTeX| mode. The PostScript mode or the PDF mode
+% should be used.
+% \changes{v5.01}{2013/03/31}{New command \cs{Furanosew}}
+% \begin{macro}{\Furanosew}
+% \begin{macro}{\@Furanosew}
+% \begin{macrocode}
+\def\Furanosew{\@ifnextchar[{\@Furanosew}{\@Furanosew[]}}
+\def\@Furanosew[#1]#2{%
+\FiveSugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){153};%
+4s==\WedgeAsSubst(0,0)(3,-5){153};%
+3s==\PutBondLine(-17,0)(376,0){2.8pt}}{#2}[abc]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Six-Membered Sugar Derivatives of Large Dimension}
+% \subsection{General Conventions}
+%
+% The standard skeleton of cyclitol is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ********************
+% * Sugarh derivative *
+% ********************
+%
+% The following numbering is adopted in this macro.
+%
+% 5 e 6
+% ----
+% d * * f
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+% \end{verbatim}
+%
+%
+% The macro |\SixSugarh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \SixSugarh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+% none or [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 4)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+% \SixSugarh{6==O}{1Sa==OH;2Sa==OH}
+% \end{verbatim}
+%
+% The definition of |\SixSugarh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents dirctly
+% (cf. |\setsixringh| for a |\sixheteroh|)
+% \end{enumerate}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\SixSugarh}
+% \begin{macro}{\@Six@Sugarh}
+% \begin{macro}{\@Six@@Sugarh}
+% \begin{macro}{\@SixSugarh}
+% \begin{macrocode}
+\def\SixSugarh{\@ifnextchar({\@Six@Sugarh(@}{\@Six@Sugarh(@)}}
+\def\@Six@Sugarh(#1){\@ifnextchar[{\@Six@@Sugarh(#1)[@}%
+{\@Six@@Sugarh(#1)[@]}}
+\def\@Six@@Sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@SixSugarh(#1)[#2]{#3}{#4}[@}%
+{\@SixSugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@SixSugarh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+%test for a hetero atom or a spiro substituent on a vertex
+\@reset@ylsw%
+\ylSixSugarhposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){SixSugarh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\molfronttrue
+\set@skel@Sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \Sugarhskbonda etc
+\set@skel@Sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \Sugarhskbondb etc
+\set@skel@Sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \Sugarhskbondc etc
+\molfrontfalse
+\set@skel@Sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \Sugarhskbondd etc
+\set@skel@Sugarhbond{#1}{e}{e}%
+ %bond between 5 and 6 \@eee -> \Sugarhskbonde etc
+\set@skel@Sugarhbond{#1}{f}{f}%
+ %bond between 6 and 1 \@fff -> \Sugarhskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \Sugarhbondd \Sugarhbondf \Sugarhbondb%
+\else \if\member l\relax \Sugarhbonda \Sugarhbondc \Sugarhbonde%
+\else \if\member a\relax \Sugarhbonda%
+\else \if\member b\relax \Sugarhbondb%
+\else \if\member c\relax \Sugarhbondc%
+\else \if\member d\relax \Sugarhbondd%
+\else \if\member e\relax \Sugarhbonde%
+\else \if\member f\relax \Sugarhbondf%
+\else \if\member A% no action: %%left aromatic circle
+% \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+ \ifx\@@tmpa\empty%
+ \XyMTeXWarning{Fused function is unavailable for SixSugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\set@hetatom@Sugarh{#3}{-3}{0}{5}{1}% %subst 4--6
+\set@hetatom@Sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(668,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(513,-255){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(153,-255){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(153,255){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+ \or\setBScolor{\Put@Direct(513,255){%
+ \if@cclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbC}}% subst. on 6
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \SixSugarh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vrtx@SixSugarh| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% sixheteroh nucleus.
+%
+% \begin{macro}{\test@vrtx@SixSugarh}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\test@vrtx@SixSugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@SixSugarh
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\ylSixSugarhposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/25}{New commands for setting substituents}
+%
+% \begin{macro}{\ylSixSugarhposition}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\ylSixSugarhposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-668}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-513}\gdef\@yli{255}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-153}\gdef\@yli{255}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-153}\gdef\@yli{-255}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-513}\gdef\@yli{-255}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Skeletal bonds of Sugarhs}
+%
+% The macro |\set@skel@Sugarhbond| is used in |\SixSugarh| etc.
+% for setting skeletal bonds (outer bonds), when |\@aaa| etc.
+% (produced by |\csname|...|\endcsname|) are equal to `a'
+% etc. (given as \#2). Thinline, thickline and dotted-line
+% skeletal bonds are available.
+%
+% \begin{macro}{\set@skel@Sugarhbond}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\newif\ifmolfront \molfrontfalse
+\newif\if@fivemembered \@fivememberedfalse
+\def\set@skel@Sugarhbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \if@fivemembered
+ \expandafter\csname fdothskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+ \fi
+ \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \@skbondlisttrue
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ \ifmolfront
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \else
+ {\thinlines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \fi
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@Sugarhbond
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\SixSugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\Sugarhskbonda| to |\Sugarhskbondf| are used to set a bond
+% on each edge of a six- or five-membered ring.
+%
+% \begin{verbatim}
+% ************************************
+% * setting skeletal bonds of Sugarhs *
+% ************************************
+% The following numbering is adopted in this macro.
+%
+% e
+% (eee) 5 6 (fff)
+% d ----- c
+% * *
+% the original point ===> 4 * (ddd) * 1 (aaa)
+% (0,0) * * a
+% c -----
+% (ccc) 3 2 (bbb)
+% b
+% \end{verbatim}
+%
+% \begin{macro}{\Sugarhskbonda}
+% The macro |\Sugarhskbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\Sugarhskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(668,0)(-3,-5){153}% %bond 1-2
+ \else%
+ \Put@Line(668,0)(-3,-5){120}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(635,-55)(-3,-5){120}% %bond 1-2
+ \else%
+ \Put@Line(635,-55)(-3,-5){93}% %bond 1-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhskbondf}
+% The macro |\Sugarhskbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 6
+\def\Sugarhskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(668,0)(-3,5){153}% %bond 1-6
+ \else%
+ \Put@Line(668,0)(-3,5){120}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(635,55)(-3,5){120}% %bond 1-6
+ \else%
+ \Put@Line(635,55)(-3,5){93}% %bond 1-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhskbondc}
+% The macro |\Sugarhskbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 3
+\def\Sugarhskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){153}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(33,-55)(3,-5){120}% %bond 4-3
+ \else%
+ \Put@Line(33,-55)(3,-5){93}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhskbondd}
+% The macro |\Sugarhskbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\Sugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(3,5){153}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(3,5){120}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(33,55)(3,5){120}% %bond 4-5
+ \else%
+ \Put@Line(33,55)(3,5){93}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhskbondb}
+% The macro |\Sugarhskbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 3 and 2
+\def\Sugarhskbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(153,-255)(1,0){360}% %bond 3-2
+ \else%
+ \Put@Line(153,-255)(1,0){314}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(199,-255)(1,0){314}% %bond 3-2
+ \else%
+ \Put@Line(199,-255)(1,0){278}% %bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhskbonde}
+% The macro |\Sugarhskbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 6
+\def\Sugarhskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(153,255)(1,0){360}% %bond 5-6
+ \else%
+ \Put@Line(153,255)(1,0){314}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(199,255)(1,0){314}% %bond 5-6
+ \else%
+ \Put@Line(199,255)(1,0){278}% %bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+
+%
+% \subsection{Inner Double Bonds of Sugarhs}
+%
+% The macros |\SixSugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\Sugarhbonda| to |\Sugarhbondf| are used to set a bond
+% on each edge of a six- or five-membered ring.
+%
+% \begin{verbatim}
+% ********************************************
+% * setting skeletal bonds (horizontal type) *
+% ********************************************
+% The following numbering is adopted in this macro.
+%
+% e
+% (eee) 5 6 (fff)
+% d ----- c
+% * *
+% the original point ===> 4 * (ddd) * 1 (aaa)
+% (0,0) * * a
+% c -----
+% (ccc) 3 2 (bbb)
+% b
+% \end{verbatim}
+%
+% \begin{macro}{\Sugarhbonda}
+% The macro |\Sugarhbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\Sugarhbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(605,-22)(-3,-5){100}% %bond 1-2
+ \else%
+ \Put@Line(604,-15)(-3,-5){93}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(587,-52)(-3,-5){93}% %bond 1-2
+ \else%
+ \Put@Line(593,-42)(-3,-5){93}% %bond 1-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhbondf}
+% The macro |\Sugarhbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 6
+\def\Sugarhbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(605,22)(-3,5){100}% %bond 1-6
+ \else%
+ \Put@Line(604,15)(-3,5){97}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(587,52)(-3,5){93}% %bond 1-6
+ \else%
+ \Put@Line(593,42)(-3,5){93}% %bond 1-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhbondc}
+% The macro |\Sugarhbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 3
+\def\Sugarhbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(63,-22)(3,-5){100}% %bond 4-3
+ \else%
+ \Put@Line(64,-15)(3,-5){97}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(81,-52)(3,-5){93}% %bond 4-3
+ \else%
+ \Put@Line(75,-42)(3,-5){93}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhbondd}
+% The macro |\Sugarhbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\Sugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(63,22)(3,5){100}% %bond 4-5
+ \else%
+ \Put@Line(64,15)(3,5){97}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(81,52)(3,5){93}% %bond 4-5
+ \else%
+ \Put@Line(75,42)(3,5){93}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhbondb}
+% The macro |\Sugarhbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 3 and 2
+\def\Sugarhbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(183,-205)(1,0){300}% %bond 3-2
+ \else%
+ \Put@Line(183,-205)(1,0){275}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(203,-205)(1,0){275}% %bond 3-2
+ \else%
+ \Put@Line(198,-205)(1,0){270}% %bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sugarhbonde}
+% The macro |\Sugarhbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 6
+\def\Sugarhbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(183,205)(1,0){300}% %bond 5-6
+ \else%
+ \Put@Line(183,205)(1,0){275}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(203,205)(1,0){275}% %bond 5-6
+ \else%
+ \Put@Line(198,205)(1,0){270}% %bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Hetero Atoms on Sugarh Skeletons}
+%
+% The command |\set@hetatom@Sugarh| is to set a spiro group
+% (stored as |\@memberb|)
+% at a vertix designated by |\@tmpaa| (or originally by |\@tmpa|).
+% The atom modifier `s' designates that the spiro group contains
+% a carbon atom (a vertix) at a spiro position, while `h'
+% represents the presence of a hetero atom at a spiro position.
+% The absence of such atom modifiers shows the substitution
+% of a usual hetero atom. The command |\set@hetatom@Sugarh| is
+% used in such commands as |\SixSugarh| for treating thier ATOMLISTs,
+% e.g. |1==N;1s==\SixSugarh{}{1==(yl)}|.
+%
+% \begin{macro}{\set@hetatom@Sugarh}
+% \changes{v2.01}{2001/6/20}{New command: \cs{set@hetatom@Sugarh}}
+% \begin{macrocode}
+\def\set@hetatom@Sugarh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{185}{225}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{153}{255}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{185}{225}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{483}{225}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{513}{255}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{483}{225}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{608}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{668}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{608}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{493}{-225}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{513}{-255}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{483}{-295}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{175}{-215}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{153}{-255}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{185}{-295}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@Sugarh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Six-Membered Sugar Derivatives of Normal Dimension}
+% \subsection{General Conventions}
+%
+% The standard skeleton of cyclitol is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% *********************
+% * sugarh derivative *
+% *********************
+%
+% The following numbering is adopted in this macro.
+%
+% 5 e 6
+% ----
+% d * * f
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+% \end{verbatim}
+%
+%
+% The macro |\sixsugarh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixsugarh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none or [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : not supproted (+ at the n-hetro atom, n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+% \sixsugarh{6==O}{1Sa==OH;2Sa==OH}
+% \end{verbatim}
+%
+% The definition of |\sixsugarh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents dirctly
+% (cf. |\setsixringh| for a |\sixheteroh|)
+% \end{enumerate}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\sixsugarh}
+% \begin{macro}{\@six@sugarh}
+% \begin{macro}{\@six@@sugarh}
+% \begin{macro}{\@sixsugarh}
+% \begin{macrocode}
+\def\sixsugarh{\@ifnextchar({\@six@sugarh(@}{\@six@sugarh(@)}}
+\def\@six@sugarh(#1){\@ifnextchar[{\@six@@sugarh(#1)[@}%
+{\@six@@sugarh(#1)[@]}}
+\def\@six@@sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixsugarh(#1)[#2]{#3}{#4}[@}%
+{\@sixsugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@sixsugarh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+%test for a hetero atom or a spiro substituent on a vertex
+\@reset@ylsw%
+\ylpyranoseposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixsugarh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\@fivememberedfalse%not five-membered ring
+\molfronttrue%boldfaced lines (thicklines)
+\set@skel@sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \sugarhskbonda etc
+\set@skel@sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \sugarhskbondb etc
+\set@skel@sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \sugarhskbondc etc
+\molfrontfalse%normal lines (thinelines)
+\set@skel@sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \sugarhskbondd etc
+\set@skel@sugarhbond{#1}{e}{e}%
+ %bond between 5 and 6 \@eee -> \sugarhskbonde etc
+\set@skel@sugarhbond{#1}{f}{f}%
+ %bond between 6 and 1 \@fff -> \sugarhskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \sugarhbondd \sugarhbondf \sugarhbondb%
+\else \if\member l\relax \sugarhbonda \sugarhbondc \sugarhbonde%
+\else \if\member a\relax \sugarhbonda%
+\else \if\member b\relax \sugarhbondb%
+\else \if\member c\relax \sugarhbondc%
+\else \if\member d\relax \sugarhbondd%
+\else \if\member e\relax \sugarhbonde%
+\else \if\member f\relax \sugarhbondf%
+\else \if\member A% no action: %%left aromatic circle
+% \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+ \ifx\@@tmpa\empty%
+ \XyMTeXWarning{Fused function is unavailable for sixsugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\set@hetatom@sugarh{#3}{-3}{0}{5}{1}% %subst 4--6
+\set@hetatom@sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(532,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(120,200){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+ \or\setBScolor{\Put@Direct(412,200){%
+ \if@cclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbC}}% subst. on 6
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixsugarh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylpyranoseposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/25}{New commands for setting substituents}
+% \changes{v2.01}{2001/6/20}{Added for position 6}
+%
+% \begin{macro}{\ylpyranoseposition}
+% \begin{macrocode}
+\def\ylpyranoseposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-532}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-412}\gdef\@yli{200}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-120}\gdef\@yli{200}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-120}\gdef\@yli{-200}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-412}\gdef\@yli{-200}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The front skeletal bonds of a pyranose ring are typeset with a bold line and wedged lines.
+% \changes{v5.01}{2013/06/25}{added the definition for \cs{sixsugarhw}}
+%
+% \begin{macro}{\sixsugarhw}
+% \begin{macro}{\@sixsugarhw}
+% \begin{macrocode}
+\def\sixsugarhw{\@ifnextchar[{\@sixsugarhw}{\@sixsugarhw[]}}
+\def\@sixsugarhw[#1]#2#3{%
+\sixsugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt};#2}{#3}[abc]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Skeletal bonds of sugarhs}
+%
+% The macro |\set@skel@sugarhbond| is used in |\sixsugarh| etc.
+% for setting skeletal bonds (outer bonds), when |\@aaa| etc.
+% (produced by |\csname|...|\endcsname|) are equal to `a'
+% etc. (given as \#2). Thinline, thickline and dotted-line
+% skeletal bonds are available.
+%
+% \begin{macro}{\set@skel@sugarhbond}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\set@skel@sugarhbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \if@fivemembered
+ \expandafter\csname fdothskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+ \fi
+ \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc.
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \@skbondlisttrue
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ \ifmolfront
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc.
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \else
+ {\thinlines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \fi
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@sugarhbond
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\sixsugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\sugarhskbonda| to |\sugarhskbondf| are used to set a bond
+% on each edge of a six- or five-membered ring.
+%
+% \begin{verbatim}
+% ************************************
+% * setting skeletal bonds of sugarhs *
+% ************************************
+% The following numbering is adopted in this macro.
+%
+% e
+% (eee) 5 6 (fff)
+% d ----- c
+% * *
+% the original point ===> 4 * (ddd) * 1 (aaa)
+% (0,0) * * a
+% c -----
+% (ccc) 3 2 (bbb)
+% b
+% \end{verbatim}
+%
+% \begin{macro}{\sugarhskbonda}
+% The macro |\sugarhskbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\sugarhskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(532,0)(-3,-5){120}% %bond 1-2
+ \else%
+ \Put@Line(532,0)(-3,-5){96}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+% \Put@Line(635,-55)(-3,-5){120}% %bond 1-2
+ \Put@Line(511,-35)(-3,-5){96}% %bond 1-2
+ \else%
+ \Put@Line(511,-35)(-3,-5){80}% %bond 1-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhskbondf}
+% The macro |\sugarhskbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 6
+\def\sugarhskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(532,0)(-3,5){120}% %bond 1-6
+ \else%
+ \Put@Line(532,0)(-3,5){96}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(511,35)(-3,5){96}% %bond 1-6
+ \else%
+ \Put@Line(511,35)(-3,5){80}% %bond 1-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhskbondc}
+% The macro |\sugarhskbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 3
+\def\sugarhskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(3,-5){96}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(21,-35)(3,-5){96}% %bond 4-3
+ \else%
+ \Put@Line(21,-35)(3,-5){80}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhskbondd}
+% The macro |\sugarhskbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\sugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(3,5){120}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(3,5){97}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(21,35)(3,5){97}% %bond 4-5
+ \else%
+ \Put@Line(21,35)(3,5){80}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhskbondb}
+% The macro |\sugarhskbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 3 and 2
+\def\sugarhskbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(120,-200)(1,0){292}% %bond 3-2
+ \else%
+ \Put@Line(120,-200)(1,0){252}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(160,-200)(1,0){252}% %bond 3-2
+ \else%
+ \Put@Line(160,-200)(1,0){212}% %bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhskbonde}
+% The macro |\sugarhskbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 6
+\def\sugarhskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(120,200)(1,0){292}% %bond 5-6
+ \else%
+ \Put@Line(120,200)(1,0){252}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(160,200)(1,0){252}% %bond 5-6
+ \else%
+ \Put@Line(160,200)(1,0){212}% %bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Hetero Atoms on sugarh Skeletons}
+%
+% The command |\set@hetatom@sugarh| is to set a spiro group
+% (stored as |\@memberb|)
+% at a vertix designated by |\@tmpaa| (or originally by |\@tmpa|).
+% The atom modifier `s' designates that the spiro group contains
+% a carbon atom (a vertix) at a spiro position, while `h'
+% represents the presence of a hetero atom at a spiro position.
+% The absence of such atom modifiers shows the substitution
+% of a usual hetero atom. The command |\set@hetatom@sugarh| is
+% used in such commands as |\sixsugarh| for treating thier ATOMLISTs,
+% e.g. |1==N;1s==\sixsugarh{}{1==(yl)}|.
+%
+% \begin{macro}{\set@hetatom@sugarh}
+% \changes{v2.01}{2001/6/20}{New command: \cs{set@hetatom@sugarh}}
+% \begin{macrocode}
+\def\set@hetatom@sugarh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{155}{180}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{120}{200}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{155}{180}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{382}{180}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{412}{200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{382}{180}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{472}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{532}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{472}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{382}{-240}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{412}{-200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{382}{-240}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{155}{-240}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{120}{-200}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{155}{-240}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sugarh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inner Double Bonds of sugarhs}
+%
+% The macros |\sixsugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\sugarhbonda| to |\sugarhbondf| are used to set a bond
+% on each edge of a six- or five-membered ring.
+%
+% \begin{verbatim}
+% ********************************************
+% * setting skeletal bonds (horizontal type) *
+% ********************************************
+% The following numbering is adopted in this macro.
+% e
+% (eee) 5 6 (fff)
+% d ----- c
+% * *
+% the original point ===> 4 * (ddd) * 1 (aaa)
+% (0,0) * * a
+% c -----
+% (ccc) 3 2 (bbb)
+% b
+% \end{verbatim}
+%
+% \begin{macro}{\sugarhbonda}
+% The macro |\sugarhbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 2
+%\else \if\member a%
+\def\sugarhbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(482,-12)(-3,-5){90}% %double bond 1-2
+ \else%
+ \Put@Line(482,-12)(-3,-5){80}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(394,-160)(3,5){70}% %double bond 2-1
+ \else%
+ \Put@Line(394,-160)(3,5){70}% %double bond 2-1
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhbondf}
+% The macro |\sugarhbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 1 and 6
+\def\sugarhbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(482,12)(-3,5){90}% %double bond 1-6
+ \else%
+ \Put@Line(482,12)(-3,5){80}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(394,160)(3,-5){70}% %double bond 6-1
+ \else%
+ \Put@Line(394,160)(3,-5){70}% %double bond 6-1
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhbondc}
+% The macro |\sugarhbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 3
+\def\sugarhbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(50,-12)(3,-5){90}% %double bond 4-3
+ \else%
+ \Put@Line(50,-12)(3,-5){80}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(138,-160)(-3,5){70}% %double bond 3-4
+ \else%
+ \Put@Line(138,-160)(-3,5){70}% %double bond 3-4
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhbondd}
+% The macro |\sugarhbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\sugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(50,12)(3,5){90}% %double bond 4-5
+ \else%
+ \Put@Line(50,12)(3,5){80}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(138,160)(-3,-5){70}% %double bond 5-4
+ \else%
+ \Put@Line(138,160)(-3,-5){70}% %double bond 5-4
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sugarhbondb}
+% The macro |\sugarhbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 3 and 2
+\def\sugarhbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(150,-160)(1,0){232}% %double bond 3-2
+ \else%
+ \Put@Line(160,-160)(1,0){217}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(170,-160)(1,0){217}% %double bond 3-2
+ \else%
+ \Put@Line(170,-160)(1,0){197}% %double bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\sugarhbonde}
+% The macro |\sugarhbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 6
+\def\sugarhbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(150,160)(1,0){232}% %double bond 5-6
+ \else%
+ \Put@Line(160,160)(1,0){217}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(170,160)(1,0){217}% %double bond 5-6
+ \else%
+ \Put@Line(170,160)(1,0){197}% %double bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Cyclitol Derivaives}
+%
+% Cyclitol derivatives can be drawn by the |\cyclitol| macro.
+%
+% \changes{v2.01}{2001/06/20}{New command: \cs{cyclitol}}
+%
+% \begin{macro}{\cyclitol}
+% \begin{macro}{\@cyclitol}
+% \begin{macrocode}
+\def\cyclitol{\@ifnextchar[{\@cyclitol}{\@cyclitol[]}}
+\def\@cyclitol[#1]#2{\sixsugarh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Cyclitol derivatives of slightly large dimension can be
+% drawn by the |\Cyclitol| macro.
+%
+% \changes{v2.01}{2001/06/20}{New command: \cs{Cyclitol}}
+%
+% \begin{macro}{\Cyclitol}
+% \begin{macro}{\@Cyclitol}
+% \begin{macrocode}
+\def\Cyclitol{\@ifnextchar[{\@Cyclitol}{\@Cyclitol[]}}
+\def\@Cyclitol[#1]#2{\SixSugarh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Five-Membered Sugar Derivatives of Normal Dimension}
+% \subsection{General Conventions}
+%
+% The standard skeleton of cyclitol is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **************************
+% * five-sugarh derivative *
+% **************************
+%
+% The following numbering is adopted in this macro.
+%
+% 5
+% *
+% d * * e
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+%
+% \end{verbatim}
+%
+% The macro |\fivesugarh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fivesugarh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `e' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none or [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : not supported (+ at the n-nitrogen atom, n = 1 to 4)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 5 substitution positions)
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+% \fivesugarh{5==O}{1Sa==OH;2Sa==OH}
+% \end{verbatim}
+%
+% The definition of |\fivesugarh| uses a picture environment and
+% consists of the same unit processes as shown in |\fiveheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents dirctly
+% (cf. |\setsixringh| for a |\fiveheteroh|)
+% \end{enumerate}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \changes{v5.01}{2001/6/25}{bug fix for position 5}
+%
+% \begin{macro}{\fivesugarh}
+% \begin{macro}{\@five@sugarh}
+% \begin{macro}{\@five@@sugarh}
+% \begin{macro}{\@fivesugarh}
+% \begin{macrocode}
+\def\fivesugarh{\@ifnextchar({\@five@sugarh(@}{\@five@sugarh(@)}}
+\def\@five@sugarh(#1){\@ifnextchar[{\@five@@sugarh(#1)[@}%
+{\@five@@sugarh(#1)[@]}}
+\def\@five@@sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@fivesugarh(#1)[#2]{#3}{#4}[@}%
+{\@fivesugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@fivesugarh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+%test for a hetero atom or a spiro substituent on a vertex
+\@reset@ylsw%
+\ylfuranoseposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){fivesugarh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\@fivememberedfalse%common bonds to a six-membered ring
+\molfronttrue%boldfaced lines (thicklines)
+\set@skel@sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \sugarhskbonda etc
+\set@skel@sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \sugarhskbondb etc
+\set@skel@sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \sugarhskbondc etc
+\@fivememberedtrue%bonds for a five-membered ring
+\molfrontfalse%normal lines (thinelines)
+\set@skel@sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \fsugarhskbondd etc
+\set@skel@sugarhbond{#1}{e}{e}%
+ %bond between 5 and 1 \@eee -> \fsugarhskbonde etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax %no action \sugarhbondd \sugarhbondf \sugarhbondb%
+\else \if\member l\relax %no action \sugarhbonda \sugarhbondc \sugarhbonde%
+\else \if\member a\relax \sugarhbonda%
+\else \if\member b\relax \sugarhbondb%
+\else \if\member c\relax \sugarhbondc%
+\else \if\member d\relax \fsugarhbondd%
+\else \if\member e\relax \fsugarhbonde%
+\else \if\member A% no action: %%left aromatic circle
+% \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else%no action
+% \expandafter\twoCH@@R\member//%
+% \set@fusionadd@sixhi
+% \ifx\@@tmpa\empty%
+% \XyMTeXWarning{Fused function is unavailable for fivesugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag%initialize
+\set@hetatom@sugarh{#3}{-3}{0}{2}{1}% %subst 4
+\set@hetatom@sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\set@hteatom@fivesugarh{#3}% %subsituent 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+\or\setBScolor{\Put@Direct(532,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(266,160){%
+ %\if@bclip \@clippingtrue \else \@clippingfalse\fi
+ %\@pyranbB}}% subst. on 5
+ {\if@bclip \@acliptrue \put(0,-386){\@substa}%subst. on 5 bug fix 2013/06/25
+ \else \@aclipfalse% subst. on 5 bug fix 2013/06/25
+ \put(0,-406){\@substa}\fi}\@aclipfalse}}%%%\@pyranbB}}% subst. on 5 bug fix 2013/06/25
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \fivesugarh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\resetflags}
+% \begin{macrocode}
+% (undefined)
+% \end{macrocode}
+% \end{macro}
+%
+% The front skeletal bonds of a furanose ring are typeset with a bold line and wedged lines.
+% \changes{v5.01}{2013/06/25}{added the definition for \cs{fivesugarhw}}
+%
+% \begin{macro}{\fivesugarhw}
+% \begin{macro}{\@fivesugarhw}
+% \begin{macrocode}
+\def\fivesugarhw{\@ifnextchar[{\@fivesugarhw}{\@fivesugarhw[]}}
+\def\@fivesugarhw[#1]#2#3{%
+\fivesugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt};#2}{#3}[abc]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylfuranoseposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/23}{New commands for setting substituents}
+% \changes{v2.01}{2001/6/20}{Added for position 5}
+%
+% \begin{macro}{\ylfuranoseposition}
+% \begin{macrocode}
+\def\ylfuranoseposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-532}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-412}\gdef\@yli{200}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-120}\gdef\@yli{200}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-266}\gdef\@yli{-160}\global\@ylswtrue% subst. on 5
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Skeletal Bonds of fivesugarh}
+%
+% The macros |\fivesugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\sugarhskbonda| to |\sugarhskbondc|
+% (common to |\sixsugarh|) as well as
+% |\fsugarhskbondd| to |\fsugarhskbonde|
+% to set a bond on each edge of a five-membered ring.
+%
+% \begin{macro}{\fsugarhskbondd}
+% The macro |\fsugarhskbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\fsugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(5,3){266}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(5,3){231}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(35,21)(5,3){231}% %bond 4-5
+ \else%
+ \Put@Line(35,21)(5,3){200}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fsugarhskbonde}
+% The macro |\fsugarhskbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\aaa|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 1
+\def\fsugarhskbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(532,0)(-5,3){266}% %bond 5-1
+ \else%
+ \Put@Line(532,0)(-5,3){231}% %bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(497,21)(-5,3){231}% %bond 5-1
+ \else%
+ \Put@Line(497,21)(-5,3){200}% %bond 5-1
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\set@hteatom@fivesugarh}
+% The macro |\set@hteatom@fivesugarh| put a hetero atom
+% on vertex no. 5 of |\fivesugarh|.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\set@hteatom@fivesugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa\relax
+\ifnum\@tmpaa=5\relax
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{236}{130}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{266}{160}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{236}{130}{\@memberb}% left type
+ \fi\fi\fi
+\fi% end of ifnum
+\fi
+}}% end of the macro \set@hetatom@fivesugarh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inner Double Bonds of fivesugarh}
+%
+% The macros |\fivesugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\fsugarhbonda| to |\sugarhbondc|
+% (common to |\sixsugarh|) as well as
+% |\fsugarhbondd| and |\sugarhbonde| are used to set a bond
+% on each edge of a five-membered ring.
+%
+% \begin{macro}{\fsugarhbondd}
+% The macro |\fsugarhbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\fsugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(60,-10)(5,3){190}% %double bond 4-5
+ \else%
+ \Put@Line(60,-10)(5,3){170}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(80,6)(5,3){170}% %double bond 5-4
+ \else%
+ \Put@Line(80,6)(5,3){160}% %double bond 5-4
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fsugarhbonde}
+% The macro |\fsugarhbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 1
+\def\fsugarhbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(472,-10)(-5,3){190}% %double bond 5-1
+ \else%
+ \Put@Line(472,-10)(-5,3){170}% %double bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(452,6)(-5,3){170}% %double bond 5-1
+ \else%
+ \Put@Line(452,6)(-5,3){160}% %double bond 5-1
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Five-Membered Sugar Derivatives of Large Dimension}
+% \subsection{General Conventions}
+%
+% The standard skeleton of cyclitol is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ********************
+% * Sugarh derivative *
+% ********************
+%
+% The following numbering is adopted in this macro.
+%
+%
+% 5
+% *
+% d * * e
+% the original point ===> 4 * * 1
+% (0,0) * * a
+% c -----
+% 3 b 2
+% \end{verbatim}
+%
+%
+% The macro |\FiveSugarh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \FiveSugarh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `e' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none or [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : not suported: plus at n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 5 substitution positions)
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nSA : single bond (down) at n-atom (for n=1)
+% nSB : single bond (up) at n-atom (for n=1)
+% nSa : alpha single bond at n-atom
+% nSb : beta single bond at n-atom
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+% \FiveSugarh{6==O}{1Sa==OH;2Sa==OH}
+% \end{verbatim}
+%
+% The definition of |\FiveSugarh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents dirctly
+% (cf. |\setsixringh| for a |\sixheteroh|)
+% \end{enumerate}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\FiveSugarh}
+% \begin{macro}{\@Five@Sugarh}
+% \begin{macro}{\@Five@@Sugarh}
+% \begin{macro}{\@FiveSugarh}
+% \begin{macrocode}
+\def\FiveSugarh{\@ifnextchar({\@Five@Sugarh(@}{\@Five@Sugarh(@)}}
+\def\@Five@Sugarh(#1){\@ifnextchar[{\@Five@@Sugarh(#1)[@}%
+{\@Five@@Sugarh(#1)[@]}}
+\def\@Five@@Sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@FiveSugarh(#1)[#2]{#3}{#4}[@}%
+{\@FiveSugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@FiveSugarh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%common to six-membered ring
+%test for a hetero atom or a spiro substituent on a vertex
+\@reset@ylsw%
+\ylFiveSugarhposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,800)(-240,-400){FiveSugarh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\molfronttrue
+\@fivememberedfalse%common bonds to a six-membered ring
+\set@skel@Sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \Sugarhskbonda etc
+\set@skel@Sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \Sugarhskbondb etc
+\set@skel@Sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \Sugarhskbondc etc
+\molfrontfalse
+\@fivememberedtrue%only five-membered ring
+\set@skel@Sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \fSugarhskbondd etc
+\set@skel@Sugarhbond{#1}{e}{e}%
+ %bond between 5 and 1 \@eee -> \fSugarhskbonde etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax %%% no action \Sugarhbondd \Sugarhbondf \Sugarhbondb%
+\else \if\member l\relax %% noaction \Sugarhbonda \Sugarhbondc \Sugarhbonde%
+\else \if\member a\relax \Sugarhbonda%
+\else \if\member b\relax \Sugarhbondb%
+\else \if\member c\relax \Sugarhbondc%
+\else \if\member d\relax \fSugarhbondd%
+\else \if\member e\relax \fSugarhbonde%
+\else \if\member A% no action: %%left aromatic circle
+% \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusionadd@sixhi
+% \ifx\@@tmpa\empty%
+% \XyMTeXWarning{Fused function is unavailable for FiveSugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\set@hetatom@Sugarh{#3}{-3}{0}{2}{1}% %subst 4
+\set@hetatom@Sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\set@hteatom@FiveSugarh{#3}% %subst 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(668,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(513,-255){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(153,-255){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(333,200){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \FiveSugarh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylFiveSugarhposition| is to obtain the shift values
+% |\@ylii| and |\@yli| which are used for shifting the standard
+% point of a substituent.
+% \changes{v1.02}{1998/10/25}{New commands for setting substituents}
+%
+% \begin{macro}{\ylFiveSugarhposition}
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\ylFiveSugarhposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-668}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-513}\gdef\@yli{255}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-153}\gdef\@yli{255}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-333}\gdef\@yli{-200}\global\@ylswtrue% subst. on 5
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Skeletal Bonds of FiveSugarh}
+%
+% The macros |\FiveSugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\sugarhskbonda| to |\sugarhskbondc|
+% (common to |\sixsugarh|) as well as
+% |\fSugarhskbondd| to |\fSugarhskbonde|
+% to set a bond on each edge of a five-membered ring.
+%
+% \begin{macro}{\fSugarhskbondd}
+% The macro |\fSugarhskbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\fSugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(5,3){333}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(5,3){298}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(35,21)(5,3){298}% %bond 4-5
+ \else%
+ \Put@Line(35,21)(5,3){263}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fSugarhskbonde}
+% The macro |\fSugarhskbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\aaa|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 1
+\def\fSugarhskbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(668,0)(-5,3){333}% %bond 5-1
+ \else%
+ \Put@Line(668,0)(-5,3){298}% %bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(633,21)(-5,3){298}% %bond 5-1
+ \else%
+ \Put@Line(633,21)(-5,3){263}% %bond 5-1
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\set@hteatom@FiveSugarh}
+% The macro |\set@hteatom@FiveSugarh| put a hetero atom
+% on vertex no. 5 of |\FiveSugarh|.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+\def\set@hteatom@FiveSugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa\relax
+\ifnum\@tmpaa=5\relax
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{303}{170}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{333}{200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{303}{170}{\@memberb}% left type
+ \fi\fi\fi
+\fi% end of ifnum
+\fi
+}}% end of the macro \set@hetatom@FiveSugarh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inner Double Bonds of FiveSugarh}
+%
+% The macros |\FiveSugarh| uses inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\Sugarhbonda| to |\Sugarhbondc|
+% (common to |\SixSugarh|) as well as
+% |\fSugarhbondd| and |\fSugarhbonde| are used to set a bond
+% on each edge of a five-membered ring.
+%
+% \begin{macro}{\fSugarhbondd}
+% The macro |\fSugarhbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 4 and 5
+\def\fSugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(60,-10)(5,3){257}% %double bond 4-5
+ \else%
+ \Put@Line(60,-10)(5,3){237}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(80,6)(5,3){237}% %double bond 5-4
+ \else%
+ \Put@Line(80,6)(5,3){227}% %double bond 5-4
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fSugarhbonde}
+% The macro |\fSugarhbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \changes{v2.01}{2001/6/20}{Newly defined.}
+% \begin{macrocode}
+%bond between 5 and 1
+\def\fSugarhbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(608,-10)(-5,3){257}% %double bond 5-1
+ \else%
+ \Put@Line(608,-10)(-5,3){237}% %double bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(588,6)(-5,3){237}% %double bond 5-1
+ \else%
+ \Put@Line(588,6)(-5,3){227}% %double bond 5-1
+ \fi\fi}%
+%</hcycle>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
+%</hcycle>
diff --git a/macros/latex/contrib/xymtex/base/hcycle.ins b/macros/latex/contrib/xymtex/base/hcycle.ins
new file mode 100644
index 0000000000..14129d36ba
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hcycle.ins
@@ -0,0 +1,55 @@
+\def\batchfile{hcycle.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996,1998,2001,2002,2004,2010,2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2002
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on March 30, 2013
+
+The Present Version:
+Version 5.01 Released on June 25, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files hcycle.dtx and hcycle.ins
+and the derived file hcycle.sty.
+
+=======================================
+\endpreamble
+
+\keepsilent
+
+\generateFile{hcycle.drv}{t}{%
+ \from{hcycle.dtx}{driver}}
+
+\generateFile{hcycle.sty}{t}{%
+ \from{hcycle.dtx}{hcycle}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/hcycle.sty b/macros/latex/contrib/xymtex/base/hcycle.sty
new file mode 100644
index 0000000000..a84112bd6d
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hcycle.sty
@@ -0,0 +1,1798 @@
+%%
+%% This is file `hcycle.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hcycle.dtx (with options: `hcycle')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996,1998,2001,2002,2004,2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2002
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on March 30, 2013
+%%
+%% The Present Version:
+%% Version 5.01 Released on June 25, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files hcycle.dtx and hcycle.ins
+%% and the derived file hcycle.sty.
+%%
+%% =======================================
+%% File: hcycle.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released June 25, 2013 by Shinsaku Fujita}
+\def\j@urnalname{hcycle}
+\def\versi@ndate{June 25, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\unitlength=0.1pt
+\newif\if@clipping \@clippingfalse
+\def\@pyrana{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(45,0)(1,0){80}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond at 1 alpha (down)
+ \putratom{-32}{-190}{\@memberb}% right type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond at 1 beta (up)
+ \putratom{-32}{130}{\@memberb}% right type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(25,-25)(1,-1){100}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(25,25)(1,1){100}% single bond at 1
+ \putratom{130}{110}{\@memberb}% right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(30,-15)(1,0){90}% double bond at 1
+ \Put@Line(30,15)(1,0){90}% double bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(25,0)(1,0){100}% % wavy bond at 1
+ }%
+ \putratom{130}{-30}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(45,0)(1,0){90}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \fi
+ \fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(1,0){120}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond at 1 alpha (down)
+ \putratom{-32}{-190}{\@memberb}% right type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond at 1 beta (up)
+ \putratom{-32}{130}{\@memberb}% right type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{110}{\@memberb}% right type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,-15)(1,0){120}% double bond at 1
+ \Put@Line(0,15)(1,0){120}% double bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,0){120}% % wavy bond at 1
+ }%
+ \putratom{130}{-30}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=30
+ \Put@Line(0,0)(1,0){120}% single bond at 1
+ \putratom{130}{-30}{\@memberb}% right type
+ \fi\fi\fi
+ \fi
+}%
+\def\@pyranb{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta
+ \yl@xdiff=10
+ \yl@ydiff=40
+ \Put@Line(40,-40)(1,-1){100}% single bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10
+ \yl@ydiff=40
+ \Put@Line(-40,-40)(-1,-1){100}% single bond at 2
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(15,-45)(1,-1){100}% double bond at 2
+ \Put@Line(45,-15)(1,-1){100}% double bond at 2
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=40\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,-40)(1,-1){90}% % wavy bond at 2
+ }%
+ \putratom{130}{-180}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(45,45)(1,1){100}% single bond at 1
+ \putratom{130}{110}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(-15,-15)(1,-1){120}% double bond at 1
+ \Put@Line(0,15)(1,-1){120}% double bond at 1
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,-1){120}% % wavy bond at 2
+ }%
+ \putratom{130}{-180}{\@memberb}% right type
+ \else%
+ \yl@xdiff=-10
+ \yl@ydiff=10
+ \Put@Line(0,0)(1,1){120}% single bond at 1
+ \putratom{130}{110}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+\def\@pyranbb{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 3
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,-45)(1,-1){100}% single bond at 3
+ \putratom{130}{-180}{\@memberb}% right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-45,-45)(-1,-1){100}% single bond at 3
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=20
+ \yl@ydiff=60
+ \Put@Line(-15,-45)(-1,-1){100}% double bond at 3
+ \Put@Line(-45,-15)(-1,-1){100}% double bond at 3
+ \putlatom{-130}{-180}{\@memberb}%left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,-40)(-1,-1){90}% % wavy bond at 2
+ }%
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-45,-45)(-1,-1){100}% single bond at 1
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 1
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=20
+ \yl@ydiff=60
+ \Put@Line(15,-15)(-1,-1){120}% double bond at 1
+ \Put@Line(0,15)(-1,-1){120}% double bond at 1
+ \putlatom{-130}{-180}{\@memberb}%left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,-1){120}% % wavy bond at 2
+ }%
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(0,0)(-1,-1){120}% single bond at 1
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+\def\@pyranbB{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A) beta
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(45,45)(1,1){100}% single bond at 5
+ \putratom{130}{130}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(-15,45)(-1,1){100}% double bond at 5
+ \Put@Line(-45,15)(-1,1){100}% double bond at 5
+ \putlatom{-120}{140}{\@memberb}%left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=-60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,40)(-1,1){90}% % wavy bond at 5
+ }%
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-60
+ \Put@Line(-45,45)(-1,1){100}% single bond at 5
+ \putlatom{-130}{130}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 5
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(15,15)(-1,1){120}% double bond at 5
+ \Put@Line(0,-15)(-1,1){120}% double bond at 5
+ \putlatom{-120}{140}{\@memberb}%left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=-60\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,1){120}% % wavy bond at 5
+ }%
+ \putlatom{-130}{130}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-20
+ \Put@Line(0,0)(-1,1){120}% single bond at 1
+ \putlatom{-130}{140}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+\def\@pyranc{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-45,0)(-1,0){80}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){80}% single bond at 4
+ \putlatom{32}{-190}{\@memberb}% left type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=-32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){80}% single bond at 4 beta (up)
+ \putlatom{32}{130}{\@memberb}% left type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(-30,-30)(-1,-1){100}% single bond at 4
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(-30,30)(-1,1){100}% single bond at 4
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-30,-15)(-1,0){100}% double bond at 4
+ \Put@Line(-30,15)(-1,0){100}% double bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-30,0)(-1,0){100}% % wavy bond at 4
+ }%
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(-45,0)(-1,0){80}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-1,0){120}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=-32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond at 4 alpha (down)
+ \putlatom{32}{-190}{\@memberb}% left type
+ \else\if\@tmpc b%(e) beta
+ \yl@xdiff=-32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond at 4 beta (up)
+ \putlatom{32}{130}{\@memberb}% left type
+ \else\if\@tmpc A% alpha
+ \yl@xdiff=10
+ \yl@ydiff=60
+ \Put@Line(0,0)(-1,-1){120}% single bond at 4
+ \putlatom{-130}{-180}{\@memberb}% left type
+ \else\if\@tmpc B% beta
+ \yl@xdiff=10
+ \yl@ydiff=10
+ \Put@Line(0,0)(-1,1){120}% single bond at 4
+ \putlatom{-130}{110}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,-15)(-1,0){120}% double bond at 4
+ \Put@Line(0,15)(-1,0){120}% double bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-1,0){120}% % wavy bond at 4
+ }%
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=30
+ \Put@Line(0,0)(-1,0){120}% single bond at 4
+ \putlatom{-130}{-30}{\@memberb}% left type
+ \fi\fi\fi
+ \fi
+}%
+\def\@pyranbC{%
+ \if@clipping%clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,-45)(0,-1){73}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,45)(0,1){73}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \else\if\@tmpc A%(A)
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% right type
+ \else\if\@tmpc B%(B)
+ \yl@xdiff=5
+ \yl@ydiff=-15
+ \Put@Line(-45,45)(-1,1){100}% single bond at 6
+ \putlatom{-130}{140}{\@memberb}% left type
+ \fi\fi\fi\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(45,15)(1,1){100}% double bond at 6
+ \Put@Line(15,45)(1,1){100}% double bond at 6
+ \putratom{130}{140}{\@memberb}%right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=5\relax
+ \yl@ydiff=5\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,40)(1,1){90}% % wavy bond at 6
+ }%
+ \putratom{130}{130}{\@memberb}% right type
+ \else%
+ \yl@xdiff=5
+ \yl@ydiff=5
+ \Put@Line(45,45)(1,1){100}% single bond at 6
+ \putratom{130}{140}{\@memberb}% left type
+ \fi\fi\fi
+ \else
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10
+ \yl@ydiff=60
+ \Put@Line(0,0)(1,-1){120}% single bond at 6
+ \putratom{130}{-180}{\@memberb}% left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=32
+ \yl@ydiff=72
+ \Put@Line(0,0)(0,-1){118}% single bond alpha (down)
+ \putlratom{-32}{-190}{\@memberb}% left & right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=32
+ \yl@ydiff=-12
+ \Put@Line(0,0)(0,1){118}% single bond beta (up)
+ \putlratom{-32}{130}{\@memberb}% left & right type
+ \fi\fi\fi%\fi\fi%
+ \else \if\@tmpb D%double bond: Added by SF 1998/10/25
+ \yl@xdiff=0
+ \yl@ydiff=-20
+ \Put@Line(15,-15)(1,1){120}% double bond at 6
+ \Put@Line(0,15)(1,1){120}% double bond at 6
+ \putratom{130}{140}{\@memberb}%right type
+ \else\if\@tmpb U%(U) alpha undefined
+ \yl@xdiff=5\relax
+ \yl@ydiff=5\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(1,1){120}% % wavy bond at 6
+ }%
+ \putratom{130}{130}{\@memberb}% right type
+ \else%
+ \yl@xdiff=10
+ \yl@ydiff=-20
+ \Put@Line(0,0)(1,1){120}% single bond at 6
+ \putratom{130}{140}{\@memberb}% right type
+ \fi\fi\fi
+ \fi
+}%
+\def\pyranose{\@ifnextchar[{\@pyranose}{\@pyranose[]}}
+\def\@pyranose[#1]#2{\sixsugarh[#1]{6==O}{#2}}
+\def\pyranosew{\@ifnextchar[{\@pyranosew}{\@pyranosew[]}}
+\def\@pyranosew[#1]#2{%
+\sixsugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt}}{#2}[abc]}
+\def\Pyranose{\@ifnextchar[{\@Pyranose}{\@Pyranose[]}}
+\def\@Pyranose[#1]#2{\SixSugarh[#1]{6==O}{#2}}
+\def\Pyranosew{\@ifnextchar[{\@Pyranosew}{\@Pyranosew[]}}
+\def\@Pyranosew[#1]#2{%
+\SixSugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){153};4s==\WedgeAsSubst(0,0)(3,-5){153};%
+3s==\PutBondLine(-17,0)(376,0){2.8pt}}{#2}[abc]}
+\def\furanose{\@ifnextchar[{\@furanose}{\@furanose[]}}
+\def\@furanose[#1]#2{\fivesugarh[#1]{5==O}{#2}}
+\def\furanosew{\@ifnextchar[{\@furanosew}{\@furanosew[]}}
+\def\@furanosew[#1]#2{%
+\fivesugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt}}{#2}[abc]}
+\def\Furanose{\@ifnextchar[{\@Furanose}{\@Furanose[]}}
+\def\@Furanose[#1]#2{\FiveSugarh[#1]{5==O}{#2}}
+\def\Furanosew{\@ifnextchar[{\@Furanosew}{\@Furanosew[]}}
+\def\@Furanosew[#1]#2{%
+\FiveSugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){153};%
+4s==\WedgeAsSubst(0,0)(3,-5){153};%
+3s==\PutBondLine(-17,0)(376,0){2.8pt}}{#2}[abc]}
+\def\SixSugarh{\@ifnextchar({\@Six@Sugarh(@}{\@Six@Sugarh(@)}}
+\def\@Six@Sugarh(#1){\@ifnextchar[{\@Six@@Sugarh(#1)[@}%
+{\@Six@@Sugarh(#1)[@]}}
+\def\@Six@@Sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@SixSugarh(#1)[#2]{#3}{#4}[@}%
+{\@SixSugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@SixSugarh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+\@reset@ylsw%
+\ylSixSugarhposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){SixSugarh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\molfronttrue
+\set@skel@Sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \Sugarhskbonda etc
+\set@skel@Sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \Sugarhskbondb etc
+\set@skel@Sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \Sugarhskbondc etc
+\molfrontfalse
+\set@skel@Sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \Sugarhskbondd etc
+\set@skel@Sugarhbond{#1}{e}{e}%
+ %bond between 5 and 6 \@eee -> \Sugarhskbonde etc
+\set@skel@Sugarhbond{#1}{f}{f}%
+ %bond between 6 and 1 \@fff -> \Sugarhskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax \Sugarhbondd \Sugarhbondf \Sugarhbondb%
+\else \if\member l\relax \Sugarhbonda \Sugarhbondc \Sugarhbonde%
+\else \if\member a\relax \Sugarhbonda%
+\else \if\member b\relax \Sugarhbondb%
+\else \if\member c\relax \Sugarhbondc%
+\else \if\member d\relax \Sugarhbondd%
+\else \if\member e\relax \Sugarhbonde%
+\else \if\member f\relax \Sugarhbondf%
+\else \if\member A% no action: %%left aromatic circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+ \ifx\@@tmpa\empty%
+ \XyMTeXWarning{Fused function is unavailable for SixSugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\iniatom\iniflag%initialize
+\set@hetatom@Sugarh{#3}{-3}{0}{5}{1}% %subst 4--6
+\set@hetatom@Sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(668,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(513,-255){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(153,-255){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(153,255){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+ \or\setBScolor{\Put@Direct(513,255){%
+ \if@cclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbC}}% subst. on 6
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \SixSugarh macro
+\def\test@vrtx@SixSugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@SixSugarh
+\def\ylSixSugarhposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-668}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-513}\gdef\@yli{255}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-153}\gdef\@yli{255}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-153}\gdef\@yli{-255}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-513}\gdef\@yli{-255}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+\newif\ifmolfront \molfrontfalse
+\newif\if@fivemembered \@fivememberedfalse
+\def\set@skel@Sugarhbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \if@fivemembered
+ \expandafter\csname fdothskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+ \fi
+ \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \@skbondlisttrue
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ \ifmolfront
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \else
+ {\thinlines
+ \if@fivemembered
+ \expandafter\csname fSugarhskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname Sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \fi
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@Sugarhbond
+\def\Sugarhskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(668,0)(-3,-5){153}% %bond 1-2
+ \else%
+ \Put@Line(668,0)(-3,-5){120}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(635,-55)(-3,-5){120}% %bond 1-2
+ \else%
+ \Put@Line(635,-55)(-3,-5){93}% %bond 1-2
+ \fi\fi}%
+\def\Sugarhskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(668,0)(-3,5){153}% %bond 1-6
+ \else%
+ \Put@Line(668,0)(-3,5){120}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(635,55)(-3,5){120}% %bond 1-6
+ \else%
+ \Put@Line(635,55)(-3,5){93}% %bond 1-6
+ \fi\fi}%
+\def\Sugarhskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){153}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(33,-55)(3,-5){120}% %bond 4-3
+ \else%
+ \Put@Line(33,-55)(3,-5){93}% %bond 4-3
+ \fi\fi}%
+\def\Sugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(3,5){153}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(3,5){120}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(33,55)(3,5){120}% %bond 4-5
+ \else%
+ \Put@Line(33,55)(3,5){93}% %bond 4-5
+ \fi\fi}%
+\def\Sugarhskbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(153,-255)(1,0){360}% %bond 3-2
+ \else%
+ \Put@Line(153,-255)(1,0){314}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(199,-255)(1,0){314}% %bond 3-2
+ \else%
+ \Put@Line(199,-255)(1,0){278}% %bond 3-2
+ \fi\fi}%
+\def\Sugarhskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(153,255)(1,0){360}% %bond 5-6
+ \else%
+ \Put@Line(153,255)(1,0){314}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(199,255)(1,0){314}% %bond 5-6
+ \else%
+ \Put@Line(199,255)(1,0){278}% %bond 5-6
+ \fi\fi}%
+
+\def\Sugarhbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(605,-22)(-3,-5){100}% %bond 1-2
+ \else%
+ \Put@Line(604,-15)(-3,-5){93}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(587,-52)(-3,-5){93}% %bond 1-2
+ \else%
+ \Put@Line(593,-42)(-3,-5){93}% %bond 1-2
+ \fi\fi}%
+\def\Sugarhbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(605,22)(-3,5){100}% %bond 1-6
+ \else%
+ \Put@Line(604,15)(-3,5){97}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(587,52)(-3,5){93}% %bond 1-6
+ \else%
+ \Put@Line(593,42)(-3,5){93}% %bond 1-6
+ \fi\fi}%
+\def\Sugarhbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(63,-22)(3,-5){100}% %bond 4-3
+ \else%
+ \Put@Line(64,-15)(3,-5){97}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(81,-52)(3,-5){93}% %bond 4-3
+ \else%
+ \Put@Line(75,-42)(3,-5){93}% %bond 4-3
+ \fi\fi}%
+\def\Sugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(63,22)(3,5){100}% %bond 4-5
+ \else%
+ \Put@Line(64,15)(3,5){97}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(81,52)(3,5){93}% %bond 4-5
+ \else%
+ \Put@Line(75,42)(3,5){93}% %bond 4-5
+ \fi\fi}%
+\def\Sugarhbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(183,-205)(1,0){300}% %bond 3-2
+ \else%
+ \Put@Line(183,-205)(1,0){275}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(203,-205)(1,0){275}% %bond 3-2
+ \else%
+ \Put@Line(198,-205)(1,0){270}% %bond 3-2
+ \fi\fi}%
+\def\Sugarhbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(183,205)(1,0){300}% %bond 5-6
+ \else%
+ \Put@Line(183,205)(1,0){275}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(203,205)(1,0){275}% %bond 5-6
+ \else%
+ \Put@Line(198,205)(1,0){270}% %bond 5-6
+ \fi\fi}%
+\def\set@hetatom@Sugarh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{185}{225}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{153}{255}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{185}{225}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{483}{225}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{513}{255}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{483}{225}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{608}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{668}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{608}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{493}{-225}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{513}{-255}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{483}{-295}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{175}{-215}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{153}{-255}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{185}{-295}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@Sugarh
+\def\sixsugarh{\@ifnextchar({\@six@sugarh(@}{\@six@sugarh(@)}}
+\def\@six@sugarh(#1){\@ifnextchar[{\@six@@sugarh(#1)[@}%
+{\@six@@sugarh(#1)[@]}}
+\def\@six@@sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixsugarh(#1)[#2]{#3}{#4}[@}%
+{\@sixsugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@sixsugarh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+\@reset@ylsw%
+\ylpyranoseposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixsugarh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\@fivememberedfalse%not five-membered ring
+\molfronttrue%boldfaced lines (thicklines)
+\set@skel@sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \sugarhskbonda etc
+\set@skel@sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \sugarhskbondb etc
+\set@skel@sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \sugarhskbondc etc
+\molfrontfalse%normal lines (thinelines)
+\set@skel@sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \sugarhskbondd etc
+\set@skel@sugarhbond{#1}{e}{e}%
+ %bond between 5 and 6 \@eee -> \sugarhskbonde etc
+\set@skel@sugarhbond{#1}{f}{f}%
+ %bond between 6 and 1 \@fff -> \sugarhskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax \sugarhbondd \sugarhbondf \sugarhbondb%
+\else \if\member l\relax \sugarhbonda \sugarhbondc \sugarhbonde%
+\else \if\member a\relax \sugarhbonda%
+\else \if\member b\relax \sugarhbondb%
+\else \if\member c\relax \sugarhbondc%
+\else \if\member d\relax \sugarhbondd%
+\else \if\member e\relax \sugarhbonde%
+\else \if\member f\relax \sugarhbondf%
+\else \if\member A% no action: %%left aromatic circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+ \ifx\@@tmpa\empty%
+ \XyMTeXWarning{Fused function is unavailable for sixsugarh.}\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\iniatom\iniflag%initialize
+\set@hetatom@sugarh{#3}{-3}{0}{5}{1}% %subst 4--6
+\set@hetatom@sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(532,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(120,200){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+ \or\setBScolor{\Put@Direct(412,200){%
+ \if@cclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbC}}% subst. on 6
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixsugarh macro
+\def\ylpyranoseposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-532}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-412}\gdef\@yli{200}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-120}\gdef\@yli{200}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-120}\gdef\@yli{-200}\global\@ylswtrue% subst. on 5
+ \or\gdef\@ylii{-412}\gdef\@yli{-200}\global\@ylswtrue% subst. on 6
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\sixsugarhw{\@ifnextchar[{\@sixsugarhw}{\@sixsugarhw[]}}
+\def\@sixsugarhw[#1]#2#3{%
+\sixsugarh[#1]{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt};#2}{#3}[abc]}
+\def\set@skel@sugarhbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \if@fivemembered
+ \expandafter\csname fdothskbond#3\endcsname% \dothskbonda etc.
+ \else
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+ \fi
+ \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc.
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \@skbondlisttrue
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ \ifmolfront
+ {\thicklines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc.
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \else
+ {\thinlines
+ \if@fivemembered
+ \expandafter\csname fsugarhskbond#3\endcsname% \hskbonda etc
+ \else
+ \expandafter\csname sugarhskbond#3\endcsname% \hskbonda etc.
+ \fi
+ }%
+ \fi
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@sugarhbond
+\def\sugarhskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(532,0)(-3,-5){120}% %bond 1-2
+ \else%
+ \Put@Line(532,0)(-3,-5){96}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(511,-35)(-3,-5){96}% %bond 1-2
+ \else%
+ \Put@Line(511,-35)(-3,-5){80}% %bond 1-2
+ \fi\fi}%
+\def\sugarhskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(532,0)(-3,5){120}% %bond 1-6
+ \else%
+ \Put@Line(532,0)(-3,5){96}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(511,35)(-3,5){96}% %bond 1-6
+ \else%
+ \Put@Line(511,35)(-3,5){80}% %bond 1-6
+ \fi\fi}%
+\def\sugarhskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){120}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(3,-5){96}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(21,-35)(3,-5){96}% %bond 4-3
+ \else%
+ \Put@Line(21,-35)(3,-5){80}% %bond 4-3
+ \fi\fi}%
+\def\sugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(3,5){120}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(3,5){97}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(21,35)(3,5){97}% %bond 4-5
+ \else%
+ \Put@Line(21,35)(3,5){80}% %bond 4-5
+ \fi\fi}%
+\def\sugarhskbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(120,-200)(1,0){292}% %bond 3-2
+ \else%
+ \Put@Line(120,-200)(1,0){252}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(160,-200)(1,0){252}% %bond 3-2
+ \else%
+ \Put@Line(160,-200)(1,0){212}% %bond 3-2
+ \fi\fi}%
+\def\sugarhskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(120,200)(1,0){292}% %bond 5-6
+ \else%
+ \Put@Line(120,200)(1,0){252}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(160,200)(1,0){252}% %bond 5-6
+ \else%
+ \Put@Line(160,200)(1,0){212}% %bond 5-6
+ \fi\fi}%
+\def\set@hetatom@sugarh#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{60}{0}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{60}{-36}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 2
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putlatom{155}{180}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putlatom{120}{200}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putlatom{155}{180}{\@memberb}% % left type
+ \fi\fi\fi
+\or%position 3
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{382}{180}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{412}{200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{382}{180}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 4
+ \if\@tmpb h\relax
+ \@cliptrue%
+ \putratom{472}{0}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@clipfalse%
+ \putratom{532}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@cliptrue%
+ \putratom{472}{-36}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 5
+ \if\@tmpb h\relax
+ \@ecliptrue%
+ \putratom{382}{-240}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@eclipfalse%
+ \putratom{412}{-200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ecliptrue%
+ \putratom{382}{-240}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 6
+ \if\@tmpb h\relax
+ \@fcliptrue%
+ \putlatom{155}{-240}{\@memberb}% % left type
+ \else\if\@tmpb s\relax
+ \@fclipfalse%
+ \putlatom{120}{-200}{\@memberb}% % left type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@fcliptrue%
+ \putlatom{155}{-240}{\@memberb}% % left type
+ \fi\fi\fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@sugarh
+\def\sugarhbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(482,-12)(-3,-5){90}% %double bond 1-2
+ \else%
+ \Put@Line(482,-12)(-3,-5){80}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(394,-160)(3,5){70}% %double bond 2-1
+ \else%
+ \Put@Line(394,-160)(3,5){70}% %double bond 2-1
+ \fi\fi}%
+\def\sugarhbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(482,12)(-3,5){90}% %double bond 1-6
+ \else%
+ \Put@Line(482,12)(-3,5){80}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(394,160)(3,-5){70}% %double bond 6-1
+ \else%
+ \Put@Line(394,160)(3,-5){70}% %double bond 6-1
+ \fi\fi}%
+\def\sugarhbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(50,-12)(3,-5){90}% %double bond 4-3
+ \else%
+ \Put@Line(50,-12)(3,-5){80}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(138,-160)(-3,5){70}% %double bond 3-4
+ \else%
+ \Put@Line(138,-160)(-3,5){70}% %double bond 3-4
+ \fi\fi}%
+\def\sugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(50,12)(3,5){90}% %double bond 4-5
+ \else%
+ \Put@Line(50,12)(3,5){80}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(138,160)(-3,-5){70}% %double bond 5-4
+ \else%
+ \Put@Line(138,160)(-3,-5){70}% %double bond 5-4
+ \fi\fi}%
+\def\sugarhbondb{%
+ \ifx\ccc\empty%
+ \ifx\bbb\empty%
+ \Put@Line(150,-160)(1,0){232}% %double bond 3-2
+ \else%
+ \Put@Line(160,-160)(1,0){217}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(170,-160)(1,0){217}% %double bond 3-2
+ \else%
+ \Put@Line(170,-160)(1,0){197}% %double bond 3-2
+ \fi\fi}%
+
+\def\sugarhbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(150,160)(1,0){232}% %double bond 5-6
+ \else%
+ \Put@Line(160,160)(1,0){217}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(170,160)(1,0){217}% %double bond 5-6
+ \else%
+ \Put@Line(170,160)(1,0){197}% %double bond 5-6
+ \fi\fi}%
+\def\cyclitol{\@ifnextchar[{\@cyclitol}{\@cyclitol[]}}
+\def\@cyclitol[#1]#2{\sixsugarh[#1]{}{#2}}
+\def\Cyclitol{\@ifnextchar[{\@Cyclitol}{\@Cyclitol[]}}
+\def\@Cyclitol[#1]#2{\SixSugarh[#1]{}{#2}}
+\def\fivesugarh{\@ifnextchar({\@five@sugarh(@}{\@five@sugarh(@)}}
+\def\@five@sugarh(#1){\@ifnextchar[{\@five@@sugarh(#1)[@}%
+{\@five@@sugarh(#1)[@]}}
+\def\@five@@sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@fivesugarh(#1)[#2]{#3}{#4}[@}%
+{\@fivesugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@fivesugarh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%
+\@reset@ylsw%
+\ylfuranoseposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){fivesugarh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\@fivememberedfalse%common bonds to a six-membered ring
+\molfronttrue%boldfaced lines (thicklines)
+\set@skel@sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \sugarhskbonda etc
+\set@skel@sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \sugarhskbondb etc
+\set@skel@sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \sugarhskbondc etc
+\@fivememberedtrue%bonds for a five-membered ring
+\molfrontfalse%normal lines (thinelines)
+\set@skel@sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \fsugarhskbondd etc
+\set@skel@sugarhbond{#1}{e}{e}%
+ %bond between 5 and 1 \@eee -> \fsugarhskbonde etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax %no action \sugarhbondd \sugarhbondf \sugarhbondb%
+\else \if\member l\relax %no action \sugarhbonda \sugarhbondc \sugarhbonde%
+\else \if\member a\relax \sugarhbonda%
+\else \if\member b\relax \sugarhbondb%
+\else \if\member c\relax \sugarhbondc%
+\else \if\member d\relax \fsugarhbondd%
+\else \if\member e\relax \fsugarhbonde%
+\else \if\member A% no action: %%left aromatic circle
+\else%no action
+\fi\fi\fi\fi\fi\fi\fi\fi}%
+\iniflag%initialize
+\set@hetatom@sugarh{#3}{-3}{0}{2}{1}% %subst 4
+\set@hetatom@sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\set@hteatom@fivesugarh{#3}% %subsituent 5
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+\or\setBScolor{\Put@Direct(532,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(412,-200){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(120,-200){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(266,160){%
+ %\if@bclip \@clippingtrue \else \@clippingfalse\fi
+ %\@pyranbB}}% subst. on 5
+ {\if@bclip \@acliptrue \put(0,-386){\@substa}%subst. on 5 bug fix 2013/06/25
+ \else \@aclipfalse% subst. on 5 bug fix 2013/06/25
+ \put(0,-406){\@substa}\fi}\@aclipfalse}}%%%\@pyranbB}}% subst. on 5 bug fix 2013/06/25
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \fivesugarh macro
+\def\fivesugarhw{\@ifnextchar[{\@fivesugarhw}{\@fivesugarhw[]}}
+\def\@fivesugarhw[#1]#2#3{%
+\fivesugarh[#1]{5==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
+4s==\WedgeAsSubst(0,0)(3,-5){120};%
+3s==\PutBondLine(-17,0)(307,0){2.8pt};#2}{#3}[abc]}
+\def\ylfuranoseposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-532}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-412}\gdef\@yli{200}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-120}\gdef\@yli{200}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-266}\gdef\@yli{-160}\global\@ylswtrue% subst. on 5
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\fsugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(5,3){266}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(5,3){231}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(35,21)(5,3){231}% %bond 4-5
+ \else%
+ \Put@Line(35,21)(5,3){200}% %bond 4-5
+ \fi\fi}%
+\def\fsugarhskbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(532,0)(-5,3){266}% %bond 5-1
+ \else%
+ \Put@Line(532,0)(-5,3){231}% %bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(497,21)(-5,3){231}% %bond 5-1
+ \else%
+ \Put@Line(497,21)(-5,3){200}% %bond 5-1
+ \fi\fi}%
+
+\def\set@hteatom@fivesugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa\relax
+\ifnum\@tmpaa=5\relax
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{236}{130}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{266}{160}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{236}{130}{\@memberb}% left type
+ \fi\fi\fi
+\fi% end of ifnum
+\fi
+}}% end of the macro \set@hetatom@fivesugarh
+\def\fsugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(60,-10)(5,3){190}% %double bond 4-5
+ \else%
+ \Put@Line(60,-10)(5,3){170}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(80,6)(5,3){170}% %double bond 5-4
+ \else%
+ \Put@Line(80,6)(5,3){160}% %double bond 5-4
+ \fi\fi}%
+\def\fsugarhbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(472,-10)(-5,3){190}% %double bond 5-1
+ \else%
+ \Put@Line(472,-10)(-5,3){170}% %double bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(452,6)(-5,3){170}% %double bond 5-1
+ \else%
+ \Put@Line(452,6)(-5,3){160}% %double bond 5-1
+ \fi\fi}%
+\def\FiveSugarh{\@ifnextchar({\@Five@Sugarh(@}{\@Five@Sugarh(@)}}
+\def\@Five@Sugarh(#1){\@ifnextchar[{\@Five@@Sugarh(#1)[@}%
+{\@Five@@Sugarh(#1)[@]}}
+\def\@Five@@Sugarh(#1)[#2]#3#4{\@ifnextchar[%
+{\@FiveSugarh(#1)[#2]{#3}{#4}[@}%
+{\@FiveSugarh(#1)[#2]{#3}{#4}[@]}}
+\def\@FiveSugarh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@SixSugarh{#3}%common to six-membered ring
+\@reset@ylsw%
+\ylFiveSugarhposition{#4}%shift values
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,800)(-240,-400){FiveSugarh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%%%|\@aaa| etc. are empty if they are omitted.
+\molfronttrue
+\@fivememberedfalse%common bonds to a six-membered ring
+\set@skel@Sugarhbond{#1}{a}{a}%
+ %bond between 1 and 2 \@aaa -> \Sugarhskbonda etc
+\set@skel@Sugarhbond{#1}{b}{b}%
+ %bond between 2 and 3 \@bbb -> \Sugarhskbondb etc
+\set@skel@Sugarhbond{#1}{c}{c}%
+ %bond between 3 and 4 \@ccc -> \Sugarhskbondc etc
+\molfrontfalse
+\@fivememberedtrue%only five-membered ring
+\set@skel@Sugarhbond{#1}{d}{d}%
+ %bond between 4 and 5 \@ddd -> \fSugarhskbondd etc
+\set@skel@Sugarhbond{#1}{e}{e}%
+ %bond between 5 and 1 \@eee -> \fSugarhskbonde etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax %%% no action \Sugarhbondd \Sugarhbondf \Sugarhbondb%
+\else \if\member l\relax %% noaction \Sugarhbonda \Sugarhbondc \Sugarhbonde%
+\else \if\member a\relax \Sugarhbonda%
+\else \if\member b\relax \Sugarhbondb%
+\else \if\member c\relax \Sugarhbondc%
+\else \if\member d\relax \fSugarhbondd%
+\else \if\member e\relax \fSugarhbonde%
+\else \if\member A% no action: %%left aromatic circle
+\fi\fi\fi\fi\fi\fi\fi\fi}%
+\iniatom\iniflag%initialize
+\set@hetatom@Sugarh{#3}{-3}{0}{2}{1}% %subst 4
+\set@hetatom@Sugarh{#3}{3}{3}{7}{1}% %subst 1 -- 3
+\set@hteatom@FiveSugarh{#3}% %subst 5
+\@forsemicol\member:=#4\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\Put@Direct(668,0){%
+ \if@clip \@clippingtrue \else \@clippingfalse\fi
+ \@pyrana}}% subst. on 1
+ \or\setBScolor{\Put@Direct(513,-255){%
+ \if@eclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranb}}% subst. on 2
+ \or\setBScolor{\Put@Direct(153,-255){%
+ \if@fclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbb}}% subst. on 3
+ \or\setBScolor{\Put@Direct(0,0){%
+ \if@aclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranc}}% subst. on 4
+ \or\setBScolor{\Put@Direct(333,200){%
+ \if@bclip \@clippingtrue \else \@clippingfalse\fi
+ \@pyranbB}}% subst. on 5
+\fi %end of ifcase
+\fi\fi}%
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \FiveSugarh macro
+\def\ylFiveSugarhposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa%0 omit
+ \or\gdef\@ylii{-668}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \or\gdef\@ylii{-513}\gdef\@yli{255}\global\@ylswtrue% subst. on 2
+ \or\gdef\@ylii{-153}\gdef\@yli{255}\global\@ylswtrue% subst. on 3
+ \or\gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 4
+ \or\gdef\@ylii{-333}\gdef\@yli{-200}\global\@ylswtrue% subst. on 5
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\fSugarhskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(5,3){333}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(5,3){298}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(35,21)(5,3){298}% %bond 4-5
+ \else%
+ \Put@Line(35,21)(5,3){263}% %bond 4-5
+ \fi\fi}%
+\def\fSugarhskbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(668,0)(-5,3){333}% %bond 5-1
+ \else%
+ \Put@Line(668,0)(-5,3){298}% %bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(633,21)(-5,3){298}% %bond 5-1
+ \else%
+ \Put@Line(633,21)(-5,3){263}% %bond 5-1
+ \fi\fi}%
+
+\def\set@hteatom@FiveSugarh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa\relax
+\ifnum\@tmpaa=5\relax
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{303}{170}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{333}{200}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{303}{170}{\@memberb}% left type
+ \fi\fi\fi
+\fi% end of ifnum
+\fi
+}}% end of the macro \set@hetatom@FiveSugarh
+\def\fSugarhbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(60,-10)(5,3){257}% %double bond 4-5
+ \else%
+ \Put@Line(60,-10)(5,3){237}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(80,6)(5,3){237}% %double bond 5-4
+ \else%
+ \Put@Line(80,6)(5,3){227}% %double bond 5-4
+ \fi\fi}%
+\def\fSugarhbonde{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(608,-10)(-5,3){257}% %double bond 5-1
+ \else%
+ \Put@Line(608,-10)(-5,3){237}% %double bond 5-1
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(588,6)(-5,3){237}% %double bond 5-1
+ \else%
+ \Put@Line(588,6)(-5,3){227}% %double bond 5-1
+ \fi\fi}%
+\endinput
+%%
+%% End of file `hcycle.sty'.
diff --git a/macros/latex/contrib/xymtex/base/hetarom.dtx b/macros/latex/contrib/xymtex/base/hetarom.dtx
new file mode 100644
index 0000000000..a61bca3e29
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetarom.dtx
@@ -0,0 +1,8620 @@
+% \iffalse meta-comment
+%% File: hetarom.dtx
+%
+% Copyright 1993,1996,1998,2000,2002,2004,2006,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% hetarom.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files hetarom.dtx and hetarom.ins
+% and the derived file hetarom.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{November 11, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{September 5, 2006}
+% \def\versi@nno{ver4.03b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetarom}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{9032}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/27}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.00a}{1998/11/11}{bug fix}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clip infomation}
+% \changes{v2.01}{2001/06/21}{The command \cs{dotorline} is added.}
+% \changes{v3.00}{2002/04/30}{sfpicture environment etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.02}{2004/12/20}{Exception to wedged bonds}
+% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{ggg} to \cs{gggA}}
+% \changes{v4.03b}{2006/9/5}{Bug fix: \cs{decahetero} and \cs{nonahetero}}
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \changes{v5.01}{2013/03/19}{Three and four-membered specfic commands are added}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{hetarom.dtx}[2013/03/19 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{hetarom.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Heterocycles of vertical type by {\sffamily hetarom.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{hetarom.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{hetarom:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% hetarom & hetarom.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*hetarom>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released March 19, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{hetarom}
+\def\versi@ndate{March 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for hetarom.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * hetarom.sty: list of commands *
+% *********************************
+%
+% <Various flags (switches)>
+%
+% \if@gclip \@gclipfalse \@gcliptrue
+% \if@hclip \@hclipfalse \@hcliptrue
+% \if@iclip \@iclipfalse \@icliptrue
+% \if@jclip \@jclipfalse \@jcliptrue
+% \iniflag
+% \iniatom
+% \aaa
+% \bbb
+% \ccc
+% \ddd
+% \eee
+% \fff
+% \gggA
+% \hhh
+% \iii
+% \jjj
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-Membered Heterocycles>
+% Setting inner double bonds
+%
+% \bonda
+% \bondb
+% \bondc
+% \bondd
+% \bonde
+% \bondf
+% \bondhoriz
+% \bondhorizi
+%
+% Setting skeletal bonds
+%
+% \skbonda
+% \skbondf
+% \skbondc
+% \skbondd
+% \skbondb
+% \skbonde
+% \skbondhoriz
+% \skbondhorizi
+%
+% Setting dotted skeletal bonds
+%
+% \dotskbonda
+% \dotskbondf
+% \dotskbondc
+% \dotskbondd
+% \dotskbondb
+% \dotskbonde
+% \dotskbondhoriz
+% \dotskbondhorizi
+%
+% Basic Macros
+%
+% \sixheterov \@sixheterov
+% \sixheterovi \@sixheterovi
+%
+% Application Macros
+%
+% \pyridinev \@pyridinev
+% \pyridinevi \@pyridinevi
+% \pyrazinev \@pyrazinev
+% \pyrimidinev \@pyrimidinev
+% \pyrimidinevi \@pyrimidinevi
+% \pyridazinev \@pyridazinev
+% \pyridazinevi \@pyridazinevi
+% \triazinev \@triazinev
+% \triazinevi \@triazinevi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Five-Membered Heterocycles>
+% Basic Macros
+%
+% \fiveheterov \@fiveheterov
+% \fiveheterovi \@fiveheterovi
+%
+% Application Macros
+%
+% \pyrrolev \@pyrrolev
+% \pyrazolev \@pyrazolev
+% \imidazolev \@imidazolev
+% \isoxazolev \@isoxazolev
+% \oxazolev \@oxazolev
+%
+% \furanv \@furanv
+% \thiophenev \@thiophenev
+%
+% \pyrrolevi \@pyrrolevi
+% \pyrazolevi \@pyrazolevi
+% \imidazolevi \@imidazolevi
+% \isoxazolevi \@isoxazolevi
+% \oxazolevi \@oxazolevi
+%
+% \furanvi \@furanvi
+% \thiophenevi \@thiophenevi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-Six-Fused Heterocycles>
+% Basic Macros
+%
+% \decaheterov \@decaheterov
+% \decaheterovi \@decaheterovi
+% \decaheterovb \@decaheterovb
+% \decaheterovt \@decaheterovt
+%
+% Adjustment Macros (for structures as substituents)
+% \changes{v1.02}{1998/10/16}{Newly added command}
+%
+% \clipdetection
+% \ylhetposition
+% \ylhetpositionb
+% \ylhetpositiont
+%
+% Application Macros
+%
+% \quinolinev \@quinolinev
+% \quinolinevi \@quinolinevi
+% \quinolinevb \@quinolinevb
+% \quinolinevt \@quinolinevt
+%
+% \isoquinolinev \@isoquinolinev
+% \isoquinolinevi \@isoquinolinevi
+% \isoquinolinevb \@isoquinolinevb
+% \isoquinolinevt \@isoquinolinevt
+%
+% \quinoxalinev \@quinoxalinev
+% \quinoxalinevi \@quinoxalinevi
+% \quinoxalinevb \@quinoxalinevb
+% \quinoxalinevt \@quinoxalinevt
+%
+% \quinazolinev \@quinazolinev
+% \quinazolinevi \@quinazolinevi
+% \quinazolinevb \@quinazolinevb
+% \quinazolinevt \@quinazolinevt
+%
+% \cinnolinev \@cinnolinev
+% \cinnolinevi \@cinnolinevi
+% \cinnolinevb \@cinnolinevb
+% \cinnolinevt \@cinnolinevt
+%
+% \pteridinev \@pteridinev
+% \pteridinevi \@pteridinevi
+% \pteridinevb \@pteridinevb
+% \pteridinevt \@pteridinevt
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-Five-Fused Heterocycles>
+% Basic Macros
+%
+% \nonaheterov \@nonaheterov
+% \nonaheterovi \@nonaheterovi
+%
+% Application Macros
+%
+% \purinev \@purinev
+% \purinevi \@purinevi
+% \indolev \@indolev
+% \indolevi \@indolevi
+% \indolizinev \@indolizinev
+% \indolizinevi \@indolizinevi
+% \isoindolev \@isoindolev
+% \isoindolevi \@isoindolevi
+% \benzofuranev \@benzofuranev
+% \benzofuranevi \@benzofuranevi
+% \isobenzofuranev \@isobenzofuranev
+% \isobenzofuranevi \@isobenzofuranevi
+% \benzoxazolev \@benzoxazolev
+% \benzoxazolevi \@benzoxazolevi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Four-Membered Heterocycles>
+% Setting bonds
+% \bondshoriz \bondshorizi
+% \skbondshoriz \skbondshorizi
+%
+% Basic Macros
+%
+% \fourhetero \@fourhetero
+%
+% Application Macros
+%
+% \oxetane
+% \azetidine
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Four-Membered Heterocycles>
+% Setting inner double bonds
+%
+% \bondtria \bondtrib
+% \skbondtria \skbondtrib
+% \Bondtria \Bondtrib
+% \skBondtria \skBondtrib
+%
+% Basic Macros
+%
+% (\fourhetero) (\@fourhetero)
+% \set@fusionadd@fourv \set@fusion@fourv
+%
+% <Three-Membered Heterocycles>
+%
+% \threehetero \@threehetero
+% \threeheteroi \@threeheteroi
+%
+% \threeheterov \@threeheterov
+% \threeheterovi \@threeheterovi
+%
+% \set@fusionadd@threev \set@fusion@threev
+% \set@fusionadd@threevi \set@fusion@threevi
+%
+% Application Macros
+%
+% \oxiranev \oxiranevi
+% \aziridinev \aziridinevi
+% \thiiranev \thiiranevi
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Building Units>
+%
+% \sixunitv \@sixunitv
+% \fiveunitv \@fiveunitv
+% \fiveunitvi \@fiveunitvi
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf hetarom.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}%
+\unitlength=0.1pt%
+% \end{macrocode}
+%
+% The following switches and macros have been moved to {\sf chemstr.sty};
+% hence, they are commented out.
+% \begin{macrocode}
+% % ****************************
+% % * various flags (switches) *
+% % ****************************
+% \newif\if@gclip \@gclipfalse%
+% \newif\if@hclip \@hclipfalse%
+% \newif\if@iclip \@iclipfalse%
+% \newif\if@jclip \@jclipfalse%
+% \def\iniflag{%
+% \@aclipfalse \@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
+% \@fclipfalse\@gclipfalse\@hclipfalse\@iclipfalse\@jclipfalse%
+% \@clipfusefalse}%
+% \def\iniatom{%
+% \def\aaa{}\def\bbb{}\def\ccc{}\def\ddd{}\def\eee{}\def\fff{}%
+% \def\gggA{}\def\hhh{}\def\iii{}\def\jjj{}%
+% \def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}\def\@eee{}\def\@fff{}%
+% }%
+% \def\resetbdsw{\gdef\@aaa{a}\gdef\@bbb{b}\gdef\@ccc{c}%
+% \gdef\@ddd{d}\gdef\@eee{e}\gdef\@fff{f}}%
+% \end{macrocode}
+%
+% \section{Initialization}
+%
+% \begin{macrocode}
+\iniatom%
+% \end{macrocode}
+%
+% \section{Macros for setting bonds}
+% \subsection{Inner double bonds}
+%
+% The macros |\sixhetero| and |\fivehetero| use internal macros for setting
+% inner double bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\bonda| to |\bondf| are used to set a bond
+% on each edge of a six- or five-membered ring; and
+% the inner macros |\bondz| to |\bondzi| draw horizontal bonds
+% of a five-membered ring.
+%
+% Note that
+% comments (conerning locant numbers) on the end of each row have
+% lost the exact meaning,
+% since such a command moiety is used in many macros after copying.
+%
+% \begin{verbatim}
+% ******************************
+% * setting inner double bonds *
+% ******************************
+% The following numbering is adopted in these macros.
+% aaa
+% 1
+% f * a
+% fff 6 * * 2 bbb
+% e | | b
+% | |
+% eee 5 * * 3 ccc
+% d * c
+% 4 <===== the original point
+% ddd
+% \end{verbatim}
+%
+% \begin{macro}{\bonda}
+% The macro |\bonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 1 and 2
+\def\bonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(6,364)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(35,340)(5,-3){100}% %double bond 1-2
+ \else%
+ \Put@Line(35,352)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondb}
+% The macro |\bondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 3 and 2
+ \def\bondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(138,129)(0,1){148}% %double bond 3-2
+ \else%
+ \Put@Line(138,143)(0,1){134}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(138,129)(0,1){134}% %double bond 3-2
+ \else%
+ \Put@Line(138,143)(0,1){110}% %double bond 3-2
+ \fi%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondc}
+% The macro |\bondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 4 and 3
+ \def\bondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+ \else%
+ \Put@Line(6,42)(5,3){100}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,66)(5,3){100}% %double bond 4-3
+ \else%
+ \Put@Line(35,60)(5,3){100}% %double bond 4-3
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondd}
+% The macro |\bondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 4 and 5
+ \def\bondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+ \else%
+ \Put@Line(-6,42)(-5,3){100}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-35,66)(-5,3){100}% %double bond 4-5
+ \else%
+ \Put@Line(-35,60)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bonde}
+% The macro |\bonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 5 and 6
+\def\bonde{%
+ \ifx\fff\empty%
+ \ifx\eee\empty%
+ \Put@Line(-138,129)(0,1){148}% %double bond 5-6
+ \else%
+ \Put@Line(-138,143)(0,1){134}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-138,129)(0,1){134}% %double bond 5-6
+ \else%
+ \Put@Line(-138,143)(0,1){110}% %double bond 5-6
+ \fi%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondf}
+% The macro |\bondf| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 1 and 6
+\def\bondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-6,364)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-35,340)(-5,-3){100}% %double bond 1-6
+% \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6 bug fix 2010/10/01
+ \else%
+ \Put@Line(-35,352)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondz}
+% The macro |\bondz| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% horizontal inner bond for five-membered rings
+\def\bondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-138,270)(1,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(-138,270)(1,0){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(-120,270)(1,0){258}% %double bond 4-3
+ \else%
+ \Put@Line(-120,270)(1,0){239}% %double bond 4-3
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondzi}
+% The macro |\bondzi| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% horizontal inner bond for five-membered rings (inverse type)
+\def\bondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-138,136)(1,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(-138,136)(1,0){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(-120,136)(1,0){258}% %double bond 4-3
+ \else%
+ \Put@Line(-120,136)(1,0){239}% %double bond 4-3
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Skeletal bonds}
+%
+% The macros |\sixhetero| and |\fivehetero| use inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\skbonda| to |\skbondf| are used to set a bond
+% on each edge of a six- or five-membered ring; and
+% the inner macros |\skbondz| to |\skbondzi| draw horizontal bonds
+% of a five-membered ring.
+%
+% \begin{verbatim}
+% **************************
+% * setting skeletal bonds *
+% **************************
+% The following numbering is adopted in this macro.
+% aaa
+% 1
+% f * a
+% fff 6 * * 2 bbb
+% e | | b
+% | |
+% eee 5 * * 3 ccc
+% d * c
+% 4 <===== the original point
+% ddd
+%
+% \end{verbatim}
+%
+% \begin{macro}{\skbonda}
+% The macro |\skbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 2
+\def\skbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \else%
+ \Put@Line(0,406)(5,-3){136}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(35,385)(5,-3){136}% %bond 1-2
+ \else%
+ \Put@Line(35,385)(5,-3){100}% %bond 1-2
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondf}
+% The macro |\skbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 6
+\def\skbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \else%
+ \Put@Line(0,406)(-5,-3){136}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-35,385)(-5,-3){136}% %bond 1-6
+ \else%
+ \Put@Line(-35,385)(-5,-3){100}% %bond 1-6
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondc}
+% The macro |\skbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 3
+\def\skbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(5,3){136}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,21)(5,3){138}% %bond 4-3
+ \else%
+ \Put@Line(35,21)(5,3){100}% %bond 4-3
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondd}
+% The macro |\skbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 5
+\def\skbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(-5,3){136}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-35,21)(-5,3){138}% %bond 4-5
+ \else%
+ \Put@Line(-35,21)(-5,3){100}% %bond 4-5
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondb}
+% The macro |\skbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 3 and 2
+\def\skbondb{%
+ \ifx\bbb\empty%%
+ \ifx\ccc\empty%%
+ \Put@Line(171,103)(0,1){200}% %bond 3-2
+ \else%
+ \Put@Line(171,143)(0,1){160}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%%
+ \Put@Line(171,103)(0,1){150}% %bond 3-2
+ \else%
+ \Put@Line(171,143)(0,1){110}% %bond 3-2
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbonde}
+% The macro |\skbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 5 and 6
+\def\skbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(-171,103)(0,1){200}% %bond 5-6
+ \else%
+ \Put@Line(-171,103)(0,1){150}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-171,143)(0,1){160}% %bond 5-6
+ \else%
+ \Put@Line(-171,143)(0,1){110}% %bond 5-6
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondhoriz}
+% The macro |\skbondhoriz| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%horizontal bond for five-membered rings
+\def\skbondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-171,303)(1,0){342}% %bond 4-3
+ \else%
+ \Put@Line(-171,303)(1,0){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(171,303)(-1,0){300}% %bond 4-3
+ \else%
+ \Put@Line(-129,303)(1,0){258}% %bond 4-3
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondhorizi}
+% The macro |\skbondhorizi| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%horizontal bond for five-membered rings (inverse type)
+\def\skbondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-171,103)(1,0){342}% %bond 4-3
+ \else%
+ \Put@Line(-171,103)(1,0){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(171,103)(-1,0){300}% %bond 4-3
+ \else%
+ \Put@Line(-129,103)(1,0){258}% %bond 4-3
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\set@outskel@sixv}
+% The macro |\set@outskel@sixv| is to typeset a series of
+% outer-skeleton bonds to six rings. It is
+% used in |\sixheterov| and |\sixheterovi|.
+%
+% \begin{macrocode}
+\def\set@outskel@sixv{%
+ \skbonda% bond between 1 and 2
+ \skbondf% bond between 1 and 6
+ \skbondc% bond between 4 and 3
+ \skbondd% bond between 4 and 5
+ \skbondb% bond between 3 and 2
+ \skbonde% bond between 5 and 6
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Dotted Skeletal Bonds}
+%
+% The macros |\sixfusev| etc. use inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\dotskbonda| to |\dotskbondf| are used
+% to set a dotted bond on each edge of a six- or five-membered ring.
+%
+% \begin{macro}{\dotskbonda}
+% The macro |\dotskbonda| is the dotted couterpart of |\skbonda|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 2
+\def\dotskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,406)(5,-3){171}/(0,406)(171,303)%
+ \else%
+ \dotorline(0,406)(5,-3){136}/(0,406)(136,324)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(35,385)(5,-3){136}/(35,386)(171,303)%
+ \else%
+ \dotorline(35,385)(5,-3){100}/(35,386)(136,324)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondb}
+% The macro |\dotskbondb| is the dotted couterpart of |\skbondb|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 3 and 2
+\def\dotskbondb{%
+ \ifx\bbb\empty%%
+ \ifx\ccc\empty%%
+ \dotorline(171,103)(0,1){200}/(171,103)(171,303)%
+ \else%
+ \dotorline(171,143)(0,1){160}/(171,143)(171,303)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%%
+ \dotorline(171,103)(0,1){150}/(171,103)(171,253)%
+ \else%
+ \dotorline(171,143)(0,1){110}/(171,143)(171,253)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondc}
+% The macro |\dotskbondc| is the dotted couterpart of |\skbondc|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\ddd|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 3
+\def\dotskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%%
+ \dotorline(0,0)(5,3){171}/(0,0)(171,103)%
+ \else%
+ \dotorline(0,0)(5,3){136}/(0,0)(136,81)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(35,21)(5,3){138}/(35,21)(171,103)%
+ \else%
+ \dotorline(35,21)(5,3){100}/(35,21)(136,81)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondd}
+% The macro |\dotskbondd| is the dotted couterpart of |\skbondd|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 5
+\def\dotskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \dotorline(0,0)(-5,3){171}/(0,0)(-171,103)%
+ \else%
+ \dotorline(0,0)(-5,3){136}/(0,0)(-136,81)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(-35,21)(-5,3){138}/(-35,21)(-171,103)%
+ \else%
+ \dotorline(-35,21)(-5,3){100}/(-35,21)(-136,81)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbonde}
+% The macro |\dotskbonde| is the dotted couterpart of |\skbonde|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 5 and 6
+\def\dotskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \dotorline(-171,103)(0,1){200}/(-171,103)(-171,303)%
+ \else%
+ \dotorline(-171,103)(0,1){150}/(-171,103)(-171,253)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-171,143)(0,1){160}/(-171,143)(-171,303)%
+ \else%
+ \dotorline(-171,143)(0,1){110}/(-171,143)(-171,253)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondf}
+% The macro |\dotskbondf| is the dotted couterpart of |\skbondf|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 6
+\def\dotskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \dotorline(0,406)(-5,-3){171}/(0,406)(-171,303)%
+ \else%
+ \dotorline(0,406)(-5,-3){136}/(0,406)(-136,325)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-35,385)(-5,-3){136}/(-35,385)(-171,303)%
+ \else%
+ \dotorline(-35,385)(-5,-3){100}/(-35,385)(-136,325)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondhoriz}
+% The macro |\dotskbondhoriz| is the dotted couterpart of |\skbondhoriz|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%horizontal bond for five-membered rings
+\def\dotskbondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(-171,303)(1,0){342}/(-171,303)(171,303)%
+ \else%
+ \dotorline(-171,303)(1,0){300}/(-171,303)(129,303)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(171,303)(-1,0){300}/(171,303)(-129,303)%
+ \else%
+ \dotorline(-129,303)(1,0){258}/(-129,303)(129,303)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondhorizi}
+% The macro |\dotskbondhorizi| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%horizontal bond for five-membered rings (inverse type)
+\def\dotskbondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(-171,103)(1,0){342}/(-171,103)(171,103)%
+ \else%
+ \dotorline(-171,103)(1,0){300}/(-171,103)(129,103)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(171,103)(-1,0){300}/(171,103)(-129,103)%
+ \else%
+ \dotorline(-129,103)(1,0){258}/(-129,103)(129,103)%
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@skel@bond| is used in such commands as |\sixheterov|
+% and |\sixfusev| for setting skeletal bonds (outer bonds),
+% when |\@aaa| etc. (produced by |\csname|...|\endcsname|) are equal
+% to `a' etc. (given as \#2). Thinline, thickline and dotted-line
+% skeletal bonds are available.
+%
+% \begin{macro}{\if@skbondlist}
+% \begin{macrocode}
+\newif\if@skbondlist
+\@skbondlistfalse
+% \end{macrocode}
+% \end{macro}% from fusering.sty to hetarom.sty
+%
+% \changes{v4.02}{2004/12/20}{The positions of \cs{@skbondlisttrue} are changed.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\set@skel@bond}
+% \begin{macrocode}
+\def\set@skel@bond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dotskbond#3\endcsname% \dotskbonda etc.
+% \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname skbond#3\endcsname% \skbonda etc.
+ }%
+% \@skbondlisttrue
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname skbond#3\endcsname% \skbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@bond
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@skel@longbond| is used in |\fivefusev| etc.
+% for setting skeletal bonds (outer bonds), when |\@aaa| etc.
+% (produced by |\csname|...|\endcsname|) are equal to `a'
+% etc. (given as \#2). Thinline, thickline and dotted-line
+% skeletal bonds are available.
+%
+% hetarom.dtx
+% \changes{v4.02}{2004/12/20}{The positions of \cs{@skbondlisttrue} are changed.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\set@skel@longbond}
+% \begin{macrocode}
+\newif\iflongskbond \longskbondfalse
+\def\set@skel@longbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \longskbondtrue%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dot#3\endcsname% \dotskbonda etc.
+% \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname #3\endcsname% \skbonda etc.
+ }%
+% \@skbondlisttrue
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname #3\endcsname% \skbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+ \longskbondfalse
+}% end of \set@skel@longbond
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\@bond@@omit| is used in |\sixheterov| etc.
+% for detecting omitted bonds, where |\@aaa| etc. are empty if
+% they are omitted.
+%
+% \begin{macro}{\@bond@@omit}
+% \begin{macrocode}
+\def\@bond@@omit#1{%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax\gdef\@aaa{}\fi%
+\if\memBer A\relax\gdef\@aaa{}\fi%
+\if\memBer b\relax\gdef\@bbb{}\fi%
+\if\memBer B\relax\gdef\@bbb{}\fi%
+\if\memBer c\relax\gdef\@ccc{}\fi%
+\if\memBer C\relax\gdef\@ccc{}\fi%
+\if\memBer d\relax\gdef\@ddd{}\fi%
+\if\memBer D\relax\gdef\@ddd{}\fi%
+\if\memBer e\relax\gdef\@eee{}\fi%
+\if\memBer E\relax\gdef\@eee{}\fi%
+\if\memBer f\relax\gdef\@fff{}\fi%
+\if\memBer F\relax\gdef\@fff{}\fi%
+\if\memBer g\relax\gdef\@ggg{}\fi%
+\if\memBer G\relax\gdef\@ggg{}\fi%
+\if\memBer h\relax\gdef\@hhh{}\fi%
+\if\memBer H\relax\gdef\@hhh{}\fi%
+\if\memBer i\relax\gdef\@iii{}\fi%
+\if\memBer I\relax\gdef\@iii{}\fi%
+\if\memBer j\relax\gdef\@jjj{}\fi%
+\if\memBer J\relax\gdef\@jjj{}\fi%
+\if\memBer k\relax\gdef\@kkk{}\fi%
+\if\memBer K\relax\gdef\@kkk{}\fi%
+}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Six-membered heterocyles}
+% \subsection{Vertical type}
+%
+% The standard skeleton of a six-membered heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% *************************
+% * sixhetero derivatives *
+% * (vertical type) *
+% *************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% | |
+% 5 * * 3
+% *
+% 4 <===== the original point
+% \end{verbatim}
+%
+% The macro |\sixheterov| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixheterov(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none or r : sixhetero (right-handed)
+% l : sixhetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixheterov{1==N}{1==Cl;2==F}
+% \sixheterov[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \sixheterov[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\sixheterov| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringv|.
+% \end{enumerate}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/15}{Adding \cs{test@vertix@sixv}}
+%
+% \begin{macro}{\sixheterov}
+% \begin{macro}{\@six@heterov}
+% \begin{macro}{\@six@@heterov}
+% \begin{macro}{\@sixheterov}
+% \begin{macrocode}
+\def\sixheterov{\@ifnextchar({\@six@heterov(@}{\@six@heterov(@)}}
+\def\@six@heterov(#1){\@ifnextchar[{\@six@@heterov(#1)[@}%
+{\@six@@heterov(#1)[@]}}
+\def\@six@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterov(#1)[#2]{#3}{#4}[@}%
+{\@sixheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterov(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixheterov}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{%
+\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{c}% bond between 3 and 4 \@ccc -> \skbondc etc
+\set@skel@bond{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 6 and 1 \@fff -> \skbondf etc
+}%
+%%%%%\set@outskel@sixv % replaced by above 1998/12/30
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \bondd \bondf \bondb%
+\else\if\member l\relax \bonda \bondc \bonde%
+\else\if\member a\relax \bonda%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondc%
+\else\if\member d\relax \bondd%
+\else\if\member e\relax \bonde%
+\else\if\member f\relax \bondf%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixv%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{0}{0}{7}{0}% %atom 1--6%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{0}{0}{7}{0}% %subst 1--6
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \sixheterov macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The standard skeleton of a six-membered heterocycle of inverse type
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% **********************************
+% * sixhetero derivatives *
+% * (vertical type, inverse type) *
+% **********************************
+% The following numbering is adopted in this macro.
+%
+% 4
+% *
+% 5 * * 3
+% | |
+% | |
+% 6 * * 2
+% *
+% 1 <===== the original point
+% \end{verbatim}
+%
+% The macro |\sixheterovi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixheterovi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none or r : sixhetero (right-handed)
+% l : sixhetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixheterovi{1==N}{1==Cl;2==F}
+% \sixheterovi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \sixheterovi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+%
+% \end{verbatim}
+%
+% The definition of |\sixheterovi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringv|.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\sixheterovi}
+% \begin{macro}{\@six@heterovi}
+% \begin{macro}{\@six@@heterovi}
+% \begin{macro}{\@sixheterovi}
+% \begin{macrocode}
+\def\sixheterovi{\@ifnextchar({\@six@heterovi(@}{\@six@heterovi(@)}}
+\def\@six@heterovi(#1){\@ifnextchar[{\@six@@heterovi(#1)[@}%
+{\@six@@heterovi(#1)[@]}}
+\def\@six@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterovi(#1)[#2]{#3}{#4}[@}%
+{\@sixheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterovi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{c}{b}{a}{f}{e}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{5}{0}{5}{-1}% %subst 1--4
+\ylposition{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixheterovi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{a}% bond between 3 and 4 \@ccc -> \skbonda etc
+\set@skel@bond{#1}{d}{f}% bond between 4 and 5 \@ddd -> \skbondf etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{d}% bond between 6 and 1 \@fff -> \skbondd etc
+}%
+%%%\set@outskel@sixv% replaced by the above 1998/12/30
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \bondd \bondf \bondb%
+\else\if\member l\relax \bonda \bondc \bonde%
+\else\if\member a\relax \bondc%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bonda%
+\else\if\member d\relax \bondf%
+\else\if\member e\relax \bonde%
+\else\if\member f\relax \bondd%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixvi%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{5}{0}{5}{-1}% %atom 1--4%
+\set@hetatom@sixv{#3}{11}{4}{7}{-1}% %atom 5 and 6%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringv{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \sixheterovi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pyridine derivatives of vertical type}
+%
+% The macros |\sixheterov| and |\sixheterovi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a six-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ************************
+% * pyridine derivatives *
+% * (vertical type) *
+% ************************
+%
+% \pyridinev[BONDLIST]{SUBSLIST}
+% \pyridinevi[BONDLIST]{SUBSLIST}
+% \pyrazinev[BONDLIST]{SUBSLIST}
+% \pyrimidinev[BONDLIST]{SUBSLIST}
+% \pyrimidinevi[BONDLIST]{SUBSLIST}
+% \triazinev[BONDLIST]{SUBSLIST}
+% \triazinevi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none or r : pyridine (right-handed)
+% l : pyridine (left-handed)
+% [] : fully saturated ring
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyridinev{1==Cl;2==F}
+% \pyridinev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \pyridinev[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\pridinev}
+% \begin{macro}{\pridinevi}
+% \begin{macrocode}
+\def\pyridinev{\@ifnextchar[{\@pyridinev[@}{\@pyridinev[r]}}
+\def\@pyridinev[#1]#2{%
+\iforigpt \typeout{command `pyridinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N}{#2}}%end of \pyridinev macro
+\def\pyridinevi{\@ifnextchar[{\@pyridinevi[@}{\@pyridinevi[r]}}
+\def\@pyridinevi[#1]#2{%
+\iforigpt \typeout{command `pyridinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N}{#2}}%end of \pyridinevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyrazinev}
+% \begin{macro}{\pyrazinevi}
+% \begin{macrocode}
+\def\pyrazinev{\@ifnextchar[{\@pyrazinev[@}{\@pyrazinev[r]}}
+\def\@pyrazinev[#1]#2{%
+\iforigpt \typeout{command `pyrazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;4==N}{#2}}%end of \pyrazinev macro
+%the same formula with an alternative locant numbering
+\def\pyrazinevi{\@ifnextchar[{\@pyrazinevi[@}{\@pyrazinevi[r]}}
+\def\@pyrazinevi[#1]#2{%
+\iforigpt \typeout{command `pyrazinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;4==N}{#2}}%end of \pyrazinevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyrimidinev}
+% \begin{macro}{\pyrimidinevi}
+% \begin{macrocode}
+\def\pyrimidinev{\@ifnextchar[{\@pyrimidinev[@}{\@pyrimidinev[r]}}
+\def\@pyrimidinev[#1]#2{%
+\iforigpt \typeout{command `pyrimidinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;3==N}{#2}}%end of \pyrimidinev macro
+\def\pyrimidinevi{\@ifnextchar[{\@pyrimidinevi[@}{\@pyrimidinevi[r]}}
+\def\@pyrimidinevi[#1]#2{%
+\iforigpt \typeout{command `pyrimidinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;3==N}{#2}}%end of \pyrimidinevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyridazinev}
+% \begin{macro}{\pyridazinevi}
+% \begin{macrocode}
+\def\pyridazinev{\@ifnextchar[{\@pyridazinev[@}{\@pyridazinev[r]}}
+\def\@pyridazinev[#1]#2{%
+\iforigpt \typeout{command `pyridazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;2==N}{#2}}%end of \pyridazinev macro
+\def\pyridazinevi{\@ifnextchar[{\@pyridazinevi[@}{\@pyridazinevi[r]}}
+\def\@pyridazinevi[#1]#2{%
+\iforigpt \typeout{command `pyridazinev' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;2==N}{#2}}%end of \pyridazinevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\triazinev}
+% \begin{macro}{\triazinevi}
+% \begin{macrocode}
+\def\triazinev{\@ifnextchar[{\@triazinev[@}{\@triazinev[r]}}
+\def\@triazinev[#1]#2{%
+\iforigpt \typeout{command `triazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;3==N;5==N}{#2}}%end of \triazinev macro
+\def\triazinevi{\@ifnextchar[{\@triazinevi[@}{\@triazinevi[r]}}
+\def\@triazinevi[#1]#2{%
+\iforigpt \typeout{command `triazinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;3==N;5==N}{#2}}%end of \triazinevi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Five-membered heterocycles}
+% \subsection{Vertical type}
+%
+% The standard skeleton of a five-membered heterocycle
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% **************************
+% * fivehetero derivatives *
+% * (vertical type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% 4 _____ 3
+% | |
+% | |
+% 5 * * 2
+% *
+% 1 <===== the original point
+% \end{verbatim}
+%
+% The macro |\fiveheterov| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fiveheterov(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `e' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or minus) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveheterov{1==N}{1==H;2==F}
+% \fiveheterov[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \fiveheterov[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\fiveheterov| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/10/31}{Add: fused and spiro rings}
+%
+% \begin{macro}{\fiveheterov}
+% \begin{macro}{\@five@heterov}
+% \begin{macro}{\@five@@heterov}
+% \begin{macro}{\@fiveheterov}
+% \begin{macrocode}
+\def\fiveheterov{\@ifnextchar({\@five@heterov(@}{\@five@heterov(@)}}
+\def\@five@heterov(#1){\@ifnextchar[{\@five@@heterov(#1)[@}%
+{\@five@@heterov(#1)[@]}}
+\def\@five@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterov(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterov(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+% %%%%%%%%%%%%%
+% % atom list %
+% %%%%%%%%%%%%%
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{a}%
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{5}{-1}% % for 1 to 3
+\ylposition{#4}{10}{4}{7}{-1}% % for 4 to 5
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fiveheterov}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhoriz}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \bondc%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondhoriz%
+\else\if\member d\relax \bonde%
+\else\if\member e\relax \bondd%
+\else\if\member A\relax%
+ \Put@oCircle(0,173){180}%aromatic circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivev
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixv{#3}{10}{4}{7}{-1}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringv{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \fiveheterov macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The standard skeleton of a five-membered heterocycle of inverse type
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% *****************************
+% * fivehetero derivatives *
+% * (vertical type, inverse) *
+% *****************************
+% The following numbering is adopted in this macro.
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% |_____|
+% 4 3
+% *
+% (0,0) <===== the original point
+% \end{verbatim}
+%
+% The macro |\fiveheterovi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fiveheterovi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or minus) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveheterovi{1==N}{1==H;2==F}
+% \fiveheterovi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \fiveheterovi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\fiveheterovi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+%
+% \begin{macro}{\fiveheterovi}
+% \begin{macro}{\@five@heterovi}
+% \begin{macro}{\@five@@heterovi}
+% \begin{macro}{\@fiveheterovi}
+% \begin{macrocode}
+\def\fiveheterovi{\@ifnextchar({\@five@heterovi(@}{\@five@heterovi(@)}}
+\def\@five@heterovi(#1){\@ifnextchar[{\@five@@heterovi(#1)[@}%
+{\@five@@heterovi(#1)[@]}}
+\def\@five@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterovi(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterovi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%
+% % atom list %
+% %%%%%%%%%%%%%
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{d}% d -- dummy
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{4}{0}% % for 1 to 3
+\ylposition{#4}{1}{4}{7}{0}% % for 4 to 5
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fiveheterov}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhorizi}%
+ % bond between 3 and 4 \@ccc -> \skbondhorizi etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 5 and 6 \@eee -> \skbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \bonda%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondhorizi%
+\else\if\member d\relax \bonde%
+\else\if\member e\relax \bondf%
+\else\if\member A\relax%
+ \Put@oCircle(0,233){180}%aromatic circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivevi
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixv{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixv{#3}{1}{4}{7}{0}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringv{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringv{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \fiveheterovi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pyrrole derivatives of vertical type}
+%
+% The macro |\fiveheterov| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a five-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************************
+% * pyrrole derivatives and others *
+% * (vertical type) *
+% ***********************************
+%
+% \pyrrolev[BONDLIST]{SUBSLIST}
+% \pyrazolev[BONDLIST]{SUBSLIST}
+% \imidazolev[BONDLIST]{SUBSLIST}
+% \isoxazolev[BONDLIST]{SUBSLIST}
+% \oxazolev[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyrrolev{1==H;2==F}
+% \pyrrolev[]{1==H;2==F}
+% \imidazolev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \isoxazolev[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\pyrrolev}
+% \begin{macro}{\pyrazolev}
+% \begin{macro}{\imidazolev}
+% \begin{macro}{\isoxazolev}
+% \begin{macro}{\oxazolev}
+% \begin{macrocode}
+\def\pyrrolev{\@ifnextchar[{\@pyrrolev[@}{\@pyrrolev[bd]}}
+\def\@pyrrolev[#1]#2{%
+\iforigpt \typeout{command `pyrrolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N}{#2}}
+\def\pyrazolev{\@ifnextchar[{\@pyrazolev[@}{\@pyrazolev[bd]}}
+\def\@pyrazolev[#1]#2{%
+\iforigpt \typeout{command `pyrazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N;2==N}{#2}}
+\def\imidazolev{\@ifnextchar[{\@imidazolev[@}{\@imidazolev[bd]}}
+\def\@imidazolev[#1]#2{%
+\iforigpt \typeout{command `imidazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N;3==N}{#2}}
+\def\isoxazolev{\@ifnextchar[{\@isoxazolev[@}{\@isoxazolev[bd]}}
+\def\@isoxazolev[#1]#2{%
+\iforigpt \typeout{command `isoxazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O;2==N}{#2}}
+\def\oxazolev{\@ifnextchar[{\@oxazolev[@}{\@oxazolev[bd]}}
+\def\@oxazolev[#1]#2{%
+\iforigpt \typeout{command `oxazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O;3==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\furanv}
+% \begin{macro}{\thiophenev}
+% \begin{macrocode}
+\def\furanv{\@ifnextchar[{\@furanv[@}{\@furanv[bd]}}
+\def\@furanv[#1]#2{%
+\iforigpt \typeout{command `furanv' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O}{#2}}
+\def\thiophenev{\@ifnextchar[{\@thiophenev[@}{\@thiophenev[bd]}}
+\def\@thiophenev[#1]#2{%
+\iforigpt \typeout{command `thiophenev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pyrrole derivatives of inverse vertical type}
+%
+% The macro |\fiveheterovi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a five-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************************
+% * pyrrole derivatives and others *
+% * (vertical type, inverse) *
+% ***********************************
+%
+% \pyrrolevi[BONDLIST]{SUBSLIST}
+% \pyrazolevi[BONDLIST]{SUBSLIST}
+% \imidazolevi[BONDLIST]{SUBSLIST}
+% \isoxazolevi[BONDLIST]{SUBSLIST}
+% \oxazolevi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyrrolevi{1==H;2==F}
+% \pyrrolevi[]{1==H;2==F}
+% \imidazolevi[c]{1==Cl;4==F;2==CH$_{3}$}
+% \isoxazolevi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\pyrrolevi}
+% \begin{macro}{\pyrazolevi}
+% \begin{macro}{\imidazolevi}
+% \begin{macro}{\isoxazolevi}
+% \begin{macro}{\oxazolevi}
+% \begin{macrocode}
+\def\pyrrolevi{\@ifnextchar[{\@pyrrolevi[@}{\@pyrrolevi[bd]}}
+\def\@pyrrolevi[#1]#2{%
+\iforigpt \typeout{command `pyrrolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N}{#2}}
+\def\pyrazolevi{\@ifnextchar[{\@pyrazolevi[@}{\@pyrazolevi[bd]}}
+\def\@pyrazolevi[#1]#2{%
+\iforigpt \typeout{command `pyrazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N;2==N}{#2}}
+\def\imidazolevi{\@ifnextchar[{\@imidazolevi[@}{\@imidazolevi[bd]}}
+\def\@imidazolevi[#1]#2{%
+\iforigpt \typeout{command `imidazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N;3==N}{#2}}
+\def\isoxazolevi{\@ifnextchar[{\@isoxazolevi[@}{\@isoxazolevi[bd]}}
+\def\@isoxazolevi[#1]#2{%
+\iforigpt \typeout{command `isoxazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O;2==N}{#2}}
+\def\oxazolevi{\@ifnextchar[{\@oxazolevi[@}{\@oxazolevi[bd]}}
+\def\@oxazolevi[#1]#2{%
+\iforigpt \typeout{command `oxazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O;3==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\furanvi}
+% \begin{macro}{\thiophenevi}
+% \begin{macrocode}
+\def\furanvi{\@ifnextchar[{\@furanvi[@}{\@furanvi[bd]}}
+\def\@furanvi[#1]#2{%
+\iforigpt \typeout{command `furanvi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O}{#2}}
+\def\thiophenevi{\@ifnextchar[{\@thiophenevi[@}{\@thiophenevi[bd]}}
+\def\@thiophenevi[#1]#2{%
+\iforigpt \typeout{command `thiophenevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Six-to-six fused heterocyles}
+% \subsection{Vertical type}
+%
+% The standard skeleton of a six-to-six fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **************************
+% * decahetero derivatives *
+% * (vertical type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% 8 (10)1
+% * 8a *
+% 7 * * * * 2
+% | | |
+% | | |
+% 6 * * * * 3
+% * 4a *
+% 5 (9) 4
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decaheterov| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheterov(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' and `B' represent aromatic circles. The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheterov{1==N}{1==Cl;2==F}
+% \decaheterov[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheterov[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheterov| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Spiro rings and fused rings
+% \cs{test@vertix@sixv}, \cs{test@vertix@decav}, etc.}
+% \changes{v4.03b}{2006/9/5}{bug fix \cs{ggg} to \cs{gggA} etc. in \cs{test@vertix@sixv}}
+%
+% \begin{macro}{\decaheterov}
+% \begin{macro}{\@deca@heterov}
+% \begin{macro}{\@deca@@heterov}
+% \begin{macro}{\@decaheterov}
+% \begin{macrocode}
+\def\decaheterov{\@ifnextchar({\@deca@heterov(@}{\@deca@heterov(@)}}
+\def\@deca@heterov(#1){\@ifnextchar[{\@deca@@heterov(#1)[@}%
+{\@deca@@heterov(#1)[@]}}
+\def\@deca@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterov(#1)[#2]{#3}{#4}[@}%
+{\@decaheterov(#1)[#2]{#3}{#4}[@]}}%
+\def\@decaheterov(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\test@vertix@decav{#3}{g}{h}{i}{j}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylhetposition{#4}{0}{0}{5}{0}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-1}{3}{7}{0}% %substituents on 5 to 7
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-7}{0}{2}{0}% %substituent on 8
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{7}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{1}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterov}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@bond{#1}{c}{c}}%
+ % bond between 3 and 4 \@ccc -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{d}{d}}%
+ % bond between 4 and 4a \@ddd -> \skbondd etc
+\Put@Direct(342,0){\set@skel@bond{#1}{k}{e}}%
+ % bond between 4a and 8a \@kkk -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{f}}%
+ % bond between 8a and 1 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee \let\eee=\fff \let\fff=\gggA%
+ \let\ccc=\iii \let\bbb=\jjj%
+\set@skel@bond{#1}{i}{a}% bond between 8 and 8a \@iii -> \skbonda etc
+\set@skel@bond{#1}{e}{c}% bond between 5 and 4a \@eee -> \skbondc etc
+\set@skel@bond{#1}{f}{d}% bond between 5 and 6 \@fff -> \skbondd etc
+\set@skel@bond{#1}{g}{e}% bond between 6 and 7 \@ggg -> \skbonde etc
+\set@skel@bond{#1}{h}{f}% bond between 7 and 8 \@hhh -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member b\relax
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member d\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+% \else\if\@@tmpa 10\relax%
+ \else\ifx\@@tmpa\aaz\relax%1998/10/17
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.00a}{2000/11/11}{The
+% \cs{iniflag} command is added to 5- and 8-substitution.}
+% \changes{v2.01}{2001/6/20}{The \cs{storeclipinfo} command is added.}
+% \changes{v4.03b}{2006/9/5}{The \cs{storeclipinfo} command, bugfixed}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms and spiro rings %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{0}{0}{5}{0}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+% \if@clip \global\@cliptrue\fi
+\storeclipinfo%2001/06/20
+}% %substituents on 1 to 4
+{%
+%\developclipinfo%2001/06/20 %2006/9/5deleted
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+ \set@hetatom@sixv{#3}{-1}{3}{7}{0}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi
+%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+ \@clipfalse%2006/9/5added
+%
+\storeclipinfo%2001/06/20
+}%substituents on 5 to 7
+}{%
+%\developclipinfo%2001/06/20 2006/9/5deleted
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+ \set@hetatom@sixv{#3}{-7}{0}{2}{0}%
+%% \@hclipfalse \if@aclip \global\@hcliptrue \fi
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+ \@aclipfalse%2006/9/5added
+\storeclipinfo%%2001/06/20
+%%====\clipinfo====%%%2006/9/5test
+}%%substituent on 8
+}{%
+%\developclipinfo%%2001/06/20 2006/9/5deleted
+\Put@Direct(0,0){\set@vrtx@fuse{#3}%
+% \if@iclip \global\@icliptrue \fi
+% \if@jclip \global\@jcliptrue \fi
+\storeclipinfo%%2001/06/20
+}% fused positions
+}%
+%====\clipinfo====%%2006/9/5test
+\developclipinfo%%2001/06/20
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%2006/9/5bugfix
+\Put@Direct(342,0){\setsixringv{#4}{0}{0}{5}{0}}% %substituents on 1 to 4
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+ \@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{-1}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 8
+\Put@Direct(0,0){\setsixringv{#4}{-7}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-8}{7}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-9}{1}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterov macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The |\clipdetection| command is used for the detection of
+% clippings for a six-six ring. In particular, the clippings
+% at the fused positions are detected in the |\decaheterov| command,
+% where the data are applied to the command
+% |\ylatombondposition| (chemstr.dtx).
+% \changes{v1.02}{1998/10/16}{Newly added command}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\clipdetection}
+% \begin{macrocode}
+\def\clipdetection{%
+% hetero atom on 1
+\ifx\aaa\empty\else%
+ \@acliptrue%
+\fi%
+% hetero atom on 2
+\ifx\bbb\empty\else%
+ \@bcliptrue%
+\fi%
+% hetero atom on 3
+\ifx\ccc\empty\else%
+ \@ccliptrue%
+\fi%
+% hetero atom on 4
+\ifx\ddd\empty\else%
+ \@cliptrue%
+\fi%
+% hetero atom on 4a
+{\let\eee=\iii%
+\ifx\eee\empty\else%
+% \global\@icliptrue%
+ \@icliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+% hetero atom on 8a
+{\let\fff=\jjj%
+\ifx\fff\empty\else%
+% \global\@jcliptrue%
+ \@jcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+% hetero atom on 5
+{\let\ddd=\eee%
+\ifx\ddd\empty\else
+% \global\@ecliptrue%
+ \@ecliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+% hetero atom on 6
+{\let\eee=\fff%
+\ifx\eee\empty\else%
+% \global\@fcliptrue%
+ \@fcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+% hetero atom on 7
+{\let\fff=\gggA%
+\ifx\fff\empty\else%
+% \global\@gcliptrue%
+ \@gcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+% hetero atom on 8
+{\let\aaa=\hhh%
+\ifx\aaa\empty\else%
+% \global\@hcliptrue%
+ \@hcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+}% end \clipdetection
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\ylhetposition| is used in the |\decaheterov| command,
+% giving the sift values for drawing a structure as a substituent.
+% \changes{v1.02}{1998/10/16}{Newly added command}
+% \changes{v5.01}{2012/03/25}{Bug fixed}
+%
+% \begin{macro}{\ylhetposition}
+% \begin{macrocode}
+\def\ylhetposition#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+% \end{macrocode}
+%
+% The flags |\@lyatrue| etc are not used in a revised edition.
+%
+% \begin{macrocode}
+ \or
+ \ifx\aaa\empty
+ \ifx\hhh\empty% aaa and hhh are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% hhh is present
+ \def\@ylii{0}\def\@yli{-442}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \def\@ylii{0}\def\@yli{-442}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylbtrue% subst. on 2
+% \def\@ylii{-513}\def\@yli{-303}\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \def\@ylii{-213}\def\@yli{-327}\@ylswtrue%\@ylbtrue% subst. on 2
+% \def\@ylii{-555}\def\@yli{-327}\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylctrue% subst. on 3
+% \def\@ylii{-513}\def\@yli{-103}\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \def\@ylii{-213}\def\@yli{-79}\@ylswtrue%\@ylctrue% subst. on 3
+% \def\@ylii{-555}\def\@yli{-79}\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \ifx\eee\empty% ddd and eee are absent
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else% eee present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \ifx\iii\empty
+ \ifx\fff\empty% eee, iii and fff are absent
+% \def\@ylii{173}\def\@yli{-103}\@ylswtrue%\@yletrue% subst. on 5
+ \def\@ylii{171}\def\@yli{-103}\@ylswtrue%\@yletrue% subst. on 5 refined 2013/03/25
+ \else% fff is present
+ \def\@ylii{213}\def\@yli{-79}\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+% \else% iii is present; fused position => no action here
+% \def\@ylii{0}\def\@yli{-36}\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \else% eee is present
+% \def\@ylii{213}\def\@yli{-79}\@ylswtrue%\@yletrue% subst. on 5
+ \def\@ylii{171}\def\@yli{-103}\@ylswtrue%\@yletrue% subst. on 5 bug fix 2013/03/25
+ \fi
+ \or
+ \ifx\fff\empty
+ \ifx\jjj\empty
+ \ifx\gggA\empty% fff, jjj, and ggg are absent
+% \def\@ylii{173}\def\@yli{-303}\@ylswtrue%\@ylftrue% subst. on 6
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylftrue% subst. on 6 refined 2013/03/25
+ \else%ggg is present
+ \def\@ylii{213}\def\@yli{-327}\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+% \else%jjj is present; fused position => no action here
+% \def\@ylii{213}\def\@yli{-327}\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+ \else%fff is present
+ \def\@ylii{213}\def\@yli{-327}\@ylswtrue%\@ylftrue% subst. on 6
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The standard skeleton of a six-to-six fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **********************************
+% * decahetero derivatives *
+% * (vertical type, inverse type) *
+% **********************************
+% The following numbering is adopted in this macro.
+%
+% 5 (9) 4
+% * 4a *
+% 6 * * * * 3
+% | | |
+% | | |
+% 7 * * * * 2
+% * 8a *
+% 8 (10)1
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decaheterovi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheterovi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheterovi{1==N}{1==Cl;2==F}
+% \decaheterovi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheterovi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheterovi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterovi|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Spiro rings and fused rings:
+% \cs{test@vertix@decavi}, etc.}
+% \changes{v2.01}{2001/06/20}{The \cs{storeclipinfo} command, etc.}
+%
+% \begin{macro}{\decaheterovi}
+% \begin{macro}{\@deca@heterovi}
+% \begin{macro}{\@deca@@heterovi}
+% \begin{macro}{\@decaheterovi}
+% \begin{macrocode}
+\def\decaheterovi{\@ifnextchar({\@deca@heterovi(@}{\@deca@heterovi(@)}}
+\def\@deca@heterovi(#1){\@ifnextchar[{\@deca@@heterovi(#1)[@}%
+{\@deca@@heterovi(#1)[@]}}
+\def\@deca@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovi(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+%%\test@vertix@sixv{#3}{d}{c}{b}{a}{h}{g}%
+%%\test@vertix@decav{#3}{f}{e}{i}{j}{@}{@}%{i}{j} fixed
+\test@vertix@decavi{#3}%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylhetposition{#4}{5}{0}{5}{-1}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{12}{3}{7}{-1}% %substituents on 6 to 8
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-4}{0}{2}{0}% %substituent on 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \ylatombondposition{#4}{-9}{7}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{1}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterovi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{c}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 3 and 4 \@ccc -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{d}}%
+ % bond between 4 and 4a \@ddd -> \skbondd etc
+\Put@Direct(342,0){\set@skel@bond{#1}{k}{e}}%
+ % bond between 4a and 8a \@kkk -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{d}{f}}%
+ % bond between 8a and 1 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{e}{a}% bond between 8 and 8a \@eee -> \skbonda etc
+\set@skel@bond{#1}{i}{c}% bond between 5 and 4a \@iii -> \skbondc etc
+\set@skel@bond{#1}{h}{d}% bond between 5 and 6 \@hhh -> \skbondd etc
+\set@skel@bond{#1}{g}{e}% bond between 6 and 7 \@ggg -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 7 and 8 \@fff -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member d\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 8a
+}%
+\else\if\member e\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 8 and 8a
+}%
+\else\if\member f\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+}%
+\else\if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member i\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 5 and 4a
+}%
+\else\if\member j\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 4 and 4a
+}%
+\else\if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{4a}\def\aay{8a}\def\aaz{10}%
+ \if\@@tmpa 4\relax% % plus charge etc.
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax% 1998/10/17 by S. Fujita
+% \else\if\@@tmpa 10\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms and spiro rings %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\@tmpclipfalse
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{12}{3}{7}{-1}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%%bug fix 2013/03/25
+ \@fclipfalse \if@eclip \@fcliptrue \fi%%bug fix 2013/03/25
+ \@eclipfalse \if@clip \@ecliptrue \@clipfalse \fi%%bug fix 2013/03/25
+\storeclipinfo
+}%substituents on 6 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-4}{0}{2}{0}%
+% \@aclipfalse \if@aclip \global\@hcliptrue \fi%
+% \@aclipfalse \if@aclip \@hcliptrue \fi%
+ \@hclipfalse \if@aclip \@hcliptrue \@aclipfalse\fi%bug fix 2013/03/25
+ \storeclipinfo
+}%%substituent on 5
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevi{#3}%
+ \@tmpclipfalse
+% \if@iclip \global\@tmpcliptrue \fi
+% \if@jclip \global\@icliptrue \fi
+% \if@tmpclip \global\@jcliptrue \fi
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \fi
+ \if@tmpclip \@jcliptrue \fi
+ \storeclipinfo
+}% fused positions
+\developclipinfo
+%to be done after all
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{5}{0}{5}{-1}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+% \if@clip \global\@cliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(342,0){\setsixringv{#4}{5}{0}{5}{-1}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 6 to 8
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{12}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 5
+\Put@Direct(0,0){\setsixringv{#4}{-4}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-9}{7}}% %10 for 8a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{1}}% %9 for 4a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vertix@decavi| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% decaheterovi nucleus.
+%
+% \begin{macro}{\if@tmpclip}
+% \begin{macro}{\test@vertix@decavi}
+% \begin{macrocode}
+\newif\if@tmpclip \@tmpclipfalse
+\def\test@vertix@decavi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%3
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\jjj{@}%4a
+ \else\if\@tmpb s%
+ \def\aaa{}%4
+ \else\if\@tmpb h%
+ \def\aaa{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\aaa{@}%4
+ \fi\fi\fi\fi%
+ \or%5
+ \if\@tmpb s\relax\def\hhh{}\else\def\hhh{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%7
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%
+ \if\@tmpb a%
+ \xdef\iii{@}%8a
+ \else\if\@tmpb s%
+ \xdef\eee{}%8s
+ \else\if\@tmpb h%
+ \xdef\eee{@}%8h
+ \else\ifx\@tmpb\empty%
+ \xdef\eee{@}%8
+ \fi\fi\fi\fi%
+\or%9 (= 4a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\or%10 (= 8a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@vrtx@decafusevi| is used to set
+% a hetero atom or on a vertex of a bridgehead location.
+%
+% \begin{macro}{\set@vrtx@decafusevi}
+% \begin{macrocode}
+\def\set@vrtx@decafusevi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\or%10 (= 8a)
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevi
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@fusion@decavi| is used to set
+% a fused ring or on an edge of the decaheterovi nucleus.
+%
+% \begin{macro}{\set@fusion@decavi}
+% \begin{macrocode}
+\def\set@fusion@decavi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decavi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-bottom type}
+% The macro |\decaheterovb| is used for drawing six-six heterocyclic
+% derivatives of vertical-bottom type (numbering from the bottom
+% to the left-upper part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``bottom'' means that the benzene ring with young locant numbers
+% is located at the bottom.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+%
+% The standard skeleton of a six-to-six fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \changes{v1.02}{1998/10/16}{Newly added command}
+% \changes{v2.01}{2001/06/20}{The \cs{storeclipinfo} command, etc.}
+%
+% \begin{verbatim}
+% ***************************
+% * decahetro derivatives *
+% * (vertical bottom type) *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% 7
+% *
+% 6 * * 8
+% | |
+% | | 0G (4a)
+% 5 * * *
+% 0F(4a) * * 1
+% | |
+% | |
+% 4 * * 2
+% *
+% 3
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decaheterovb| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheterovb(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' and `B' represent aromatic circles. The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheterovb{1==N}{1==Cl;2==F}
+% \decaheterovb[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheterovb[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheterovb| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/25}{Spiro rings and fused rings}
+%
+% \begin{macro}{\decaheterovb}
+% \begin{macro}{\@deca@heterovb}
+% \begin{macro}{\@deca@@heterovb}
+% \begin{macro}{\@decaheterovb}
+% \begin{macrocode}
+\def\decaheterovb{\@ifnextchar({\@deca@heterovb(@}{\@deca@heterovb(@)}}
+\def\@deca@heterovb(#1){\@ifnextchar[{\@deca@@heterovb(#1)[@}%
+{\@deca@@heterovb(#1)[@]}}
+\def\@deca@@heterovb(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovb(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovb(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovb(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@decavb{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+{\let\eee=\ddd\let\ddd=\ccc
+\let\ccc=\bbb\let\bbb=\aaa
+\ylhetpositionb{#4}{1}{1}{6}{0}% %substituents on 1 to 4
+}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetpositionb{#4}{0}{4}{7}{0}% %substituents on 5 to 6
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{\let\aaa=\gggA \let\bbb=\hhh
+\ylhetpositionb{#4}{-6}{0}{3}{0}% %substituents on 7 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{9}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{3}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-406}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1000,1200)(-550,-240){decaheterob}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\eee=\ddd\let\ddd=\ccc
+ \let\ccc=\bbb\let\bbb=\aaa
+ \let\aaa=\jjj \let\fff=\iii
+\set@skel@bond{#1}{j}{a}% bond between 8a and 1 \@jjj -> \skbonda etc
+\set@skel@bond{#1}{a}{b}% bond between 1 and 2 \@aaa -> \skbondb etc
+\set@skel@bond{#1}{b}{c}% bond between 2 and 3 \@bbb -> \skbondc etc
+\set@skel@bond{#1}{c}{d}% bond between 3 and 4 \@ccc -> \skbondd etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 4a \@ddd -> \skbonde etc
+\set@skel@bond{#1}{k}{f}% bond between 4a and 8a \@kkk -> \skbondf etc
+}%
+{\let\aaa=\gggA\let\bbb=\hhh\let\ccc=\jjj\let\ddd=\iii
+\Put@Direct(-171,303){\set@skel@bond{#1}{h}{a}}%
+ % bond between 7 and 8 \@hhh -> \skbonda etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{i}{b}}%
+ % bond between 8 and 8a \@iii -> \skbondb etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{e}{d}}%
+ % bond between 4a and 5 \@eee -> \skbondd etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \skbonde etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{g}{f}}%
+ % bond between 6 and 7 \@ggg -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\gggA\let\bbb=\hhh\let\ccc=\jjj\let\ddd=\iii
+ \Put@Direct(-171,303){\bonda}% bond between 7 and 8
+ \Put@Direct(-171,303){\bonde}% bond between 5 and 6
+}%
+{\let\eee=\ddd\let\ddd=\ccc
+ \let\ccc=\bbb\let\bbb=\aaa
+ \let\aaa=\jjj \let\fff=\iii
+ \Put@Direct(0,0){\bondb}% bond between 1 and 2
+ \Put@Direct(0,0){\bondd}% bond between 3 and 4
+ \Put@Direct(0,0){\bondf}% bond between 4a and 4b
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+{\let\ccc=\bbb\let\bbb=\aaa
+ \Put@Direct(0,0){\bondb}% bond between 1 and 2
+}%
+\else\if\member b\relax
+{\let\ddd=\ccc\let\ccc=\bbb
+ \Put@Direct(0,0){\bondc}% bond between 2 and 3
+}%
+\else\if\member c\relax
+{\let\eee=\ddd\let\ddd=\ccc
+ \Put@Direct(0,0){\bondd}% bond between 3 and 4
+}%
+\else\if\member d\relax%
+{\let\fff=\eee\let\eee=\ddd
+ \Put@Direct(0,0){\bonde}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ddd=\iii%
+ \Put@Direct(-171,303){\bondd}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+ \Put@Direct(-171,303){\bonde}% bond between 5 and 6
+\else\if\member g\relax%
+{\let\aaa=\gggA
+ \Put@Direct(-171,303){\bondf}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\aaa=\gggA \let\bbb=\hhh%
+ \Put@Direct(-171,303){\bonda}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\bbb=\hhh \let\ccc=\jjj%
+ \Put@Direct(-171,303){\bondb}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\bbb=\aaa\let\aaa=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\aaa=\jjj\let\fff=\iii%
+ \Put@Direct(0,0){\bondf}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\ccc=\jjj\let\ddd=\iii%
+ \Put@Direct(-171,303){\bondc}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(-171,506){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-120}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-209}{431}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-209}{546}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-209}{585}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-111}{546}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{-209}{371}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavb
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \changes{v2.00a}{2000/11/11}{The
+% \cs{iniflag} command is added to 5- and 8-substitution.}
+% \changes{v5.01}{2013/03/23}{bug fix subs 7 to 8.}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom
+\Put@Direct(-171,303){\set@hetatom@sixv{#3}{0}{4}{7}{0}%
+%\if@eclip \global\@ecliptrue\fi%
+%\if@fclip \global\@fcliptrue\fi%
+\storeclipinfo
+}% %substituents on 5 to 6
+\developclipinfo
+\Put@Direct(-171,303){\set@hetatom@sixv{#3}{-6}{0}{3}{0}%
+% \@gclipfalse \if@aclip \global\@gcliptrue \fi%
+% \@hclipfalse \if@bclip \global\@hcliptrue \fi%
+ \@gclipfalse \if@aclip \@gcliptrue \fi%
+% \@hclipfalse \if@bclip \@hcliptrue \fi%
+ \@hclipfalse \if@bclip \@hcliptrue \@bclipfalse \fi%bugfix 2013/03/23
+\storeclipinfo
+}% %substituents on 7 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevb{#3}%
+% \if@iclip \global\@icliptrue \fi
+% \if@jclip \global\@jcliptrue \fi
+\storeclipinfo
+}%9 %for 4a position, %10 for 8a position
+\developclipinfo
+%to be done after all
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+\set@hetatom@sixv{#3}{1}{1}{6}{0}%
+%\@aclipfalse \if@bclip \global\@acliptrue \fi%
+%\@bclipfalse \if@cclip \global\@bcliptrue \fi%
+%\@cclipfalse \if@clip \global\@ccliptrue \fi%
+%\@clipfalse \if@eclip \global\@cliptrue \fi%
+\@aclipfalse \if@bclip \@acliptrue \fi%
+\@bclipfalse \if@cclip \@bcliptrue \fi%
+\@cclipfalse \if@clip \@ccliptrue \fi%
+\@clipfalse \if@eclip \@cliptrue \fi%
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%
+\@eclipfalse \if@clip \@ecliptrue \fi%
+\@clipfalse \if@cclip \@cliptrue \fi%
+\@cclipfalse \if@bclip \@ccliptrue \fi%
+\@bclipfalse \if@aclip \@bcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{1}{1}{6}{0}}% %substituents on 1 to 4
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+\Put@Direct(-171,303){\setsixringv{#4}{0}{4}{7}{0}}% %substituents on 5 to 6
+}%
+{%
+ \@aclipfalse \if@gclip \@acliptrue \fi%
+ \@bclipfalse \if@hclip \@bcliptrue \fi%
+\Put@Direct(-171,303){\setsixringv{#4}{-6}{0}{3}{0}}% %substituents on 7 to 8
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(-171,303){\setatombond{#4}{-8}{9}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(0,406){\setatombond{#4}{-9}{3}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovb macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylhetpositionb| is used in the |\decaheterovb| command,
+% giving the sift values for drawing a structure as a substituent.
+% \changes{v1.02}{1998/10/16}{Newly added command}
+%
+% \begin{macro}{\ylhetpositionb}
+% \begin{macrocode}
+\def\ylhetpositionb#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty%
+ \ifx\gggA\empty% aaa and ggg are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% ggg is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \ifx\hhh\empty% aaa and hhh are absent
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else%hhh is present
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \gdef\@ylii{173}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else% eee is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \gdef\@ylii{173}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else%fff is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\test@vertix@decavb| determines the presence of
+% a hetro atom or a spriro ring at each of the vertices.
+% \changes{v2.00}{1998/12/25}{Added: spiro rings}
+%
+% \begin{macro}{\test@vertix@decavb}
+% \begin{macrocode}
+\def\test@vertix@decavb#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or% \xdef\aaa{\@memberb}%1
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or% \xdef\bbb{\@memberb}%2
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or% \xdef\ccc{\@memberb}%3
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\iii{@}%4a
+ \else\if\@tmpb s%
+ \def\ddd{}%4
+ \else\if\@tmpb h%
+ \def\ddd{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\ddd{@}%4
+ \fi\fi\fi\fi%
+ \or% \xdef\eee{\@memberb}%5
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or% \xdef\fff{\@memberb}%6
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or% \xdef\gggA{\@memberb}%7
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\jjj{@}%8a
+ \else\if\@tmpb s%
+ \def\hhh{}%8
+ \else\if\@tmpb h%
+ \def\hhh{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\hhh{@}%4
+ \fi\fi\fi\fi%
+\or% \xdef\iii{\@memberb}%9 (= 4a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\or% \xdef\jjj{\@memberb}%10 (= 8a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\fi\fi}%
+}% end of the macro \test@vertix@decavb
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@vrtx@decafusevb| typesets a hetero atom
+% at each fused position.
+% \changes{v2.00}{1998/12/25}{Added: spiro rings}
+% \changes{v2.01}{2001/06/20}{\cs{global} omitted}
+%
+% \begin{macro}{\set@vrtx@decafusevb}
+% \begin{macrocode}
+\def\set@vrtx@decafusevb#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{-135}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putratom{-31}{356}{\@memberb}% % right type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{-135}{280}{\@memberb}% % left type
+\or%10 (= 8a)
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putratom{-31}{356}{\@memberb}% % right type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevb
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Vertical-top type}
+%
+% The macro |\decaheterovt| is used for drawing six-to-six fused derivatives
+% of vertical-bottom type (numbering from the top to the left-down part).
+% The word ``vertical'' means that each benzene ring is a vertical type.
+% The word ``top'' means that the benzene ring with young locant numbers
+% is located at the top.
+% The skeleton and endocyclic double bonds are drawn directly,
+% while substituents and exocyclic bonds are placed by useing
+% the inner macro |\setsixringv|.
+% \changes{v1.02}{1998/10/18}{Newly added command}
+% \changes{v2.01}{2001/06/20}{The \cs{storeclipinfo} command, etc.}
+%
+% \begin{verbatim}
+% ****************************
+% * decaheterovt derivatives *
+% * (vertical-top type) *
+% ****************************
+% The following numbering is adopted in this macro.
+%
+% 2
+% *
+% 1 * * 3
+% | |
+% | |
+% 0G (8a) * * 4
+% 8 * * 0F(4a)
+% | |
+% | |
+% 7 * * 5
+% *
+% 6
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\decaheterovt| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheterovt(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' and `B' represent aromatic circles. The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheterovt{1==N}{1==Cl;2==F}
+% \decaheterovt[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheterovt[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheterovt| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/10/31}{Add: Spiro and fused rings}
+% \changes{v5.01}{2013/03/23}{Bug fix: omit vacant at 1 position}
+%
+% \begin{macro}{\decaheterovt}
+% \begin{macro}{\@deca@heterovt}
+% \begin{macro}{\@deca@@heterovt}
+% \begin{macro}{\@decaheterovt}
+% \begin{macrocode}
+\def\decaheterovt{\@ifnextchar({\@deca@heterovt(@}{\@deca@heterovt(@)}}
+\def\@deca@heterovt(#1){\@ifnextchar[{\@deca@@heterovt(#1)[@}%
+{\@deca@@heterovt(#1)[@]}}
+\def\@deca@@heterovt(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovt(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovt(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovt(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@decavb{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+{\let\fff=\aaa
+\ylhetpositiont{#4}{5}{5}{7}{0}% %substituent on 1
+}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{\let\aaa=\bbb\let\bbb=\ccc\let\ccc=\ddd
+\ylhetpositiont{#4}{-1}{0}{4}{0}% %substituents on 2 to 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{\let\ccc=\eee\let\ddd=\fff
+\let\eee=\gggA\let\fff=\hhh
+\ylhetpositiont{#4}{-2}{2}{7}{0}% %substituents on 5 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{5}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{11}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-406}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterovt}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{%
+ \let\fff=\aaa \let\aaa=\bbb \let\bbb=\ccc
+ \let\ccc=\ddd \let\ddd=\iii \let\eee=\jjj
+\Put@Direct(171,303){\set@skel@bond{#1}{b}{a}}%
+ % bond between 2 and 3 \@bbb -> \skbonda etc
+\Put@Direct(171,303){\set@skel@bond{#1}{c}{b}}%
+ % bond between 3 and 4 \@ccc -> \skbondb etc
+\Put@Direct(171,303){\set@skel@bond{#1}{d}{c}}%
+ % bond between 4 and 4a \@ddd -> \skbondc etc
+\Put@Direct(171,303){\set@skel@bond{#1}{k}{d}}%
+ % bond between 4a and 8a \@kkk -> \skbondd etc
+\Put@Direct(171,303){\set@skel@bond{#1}{j}{e}}%
+ % bond between 8a and 1 \@jjj -> \skbonde etc
+\Put@Direct(171,303){\set@skel@bond{#1}{a}{f}}%
+ % bond between 1 and 2 \@aaa -> \skbondf etc
+}%
+{%
+ \let\aaa=\jjj\let\bbb=\iii
+ \let\ccc=\eee\let\ddd=\fff
+ \let\eee=\gggA\let\fff=\hhh
+\set@skel@bond{#1}{e}{b}% bond between 4a and 5 \@eee -> \skbondb etc
+\set@skel@bond{#1}{f}{c}% bond between 5 and 6 \@fff -> \skbondc etc
+\set@skel@bond{#1}{g}{d}% bond between 6 and 7 \@ggg -> \skbondd etc
+\set@skel@bond{#1}{h}{e}% bond between 7 and 8 \@hhh -> \skbonde etc
+\set@skel@bond{#1}{i}{f}% bond between 8 and 8a \@iii -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{%
+ \let\ccc=\eee\let\ddd=\fff\let\eee=\gggA\let\fff=\gggA
+ \Put@Direct(0,0){\bondc}% bond between 7 and 8
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+{%
+ \let\fff=\aaa\let\aaa=\bbb
+ \let\bbb=\ccc\let\ccc=\ddd
+ \let\ddd=\iii\let\eee=\jjj
+ \Put@Direct(171,303){\bondf}% bond between 1 and 2
+ \Put@Direct(171,303){\bondb}% bond between 3 and 4
+ \Put@Direct(171,303){\bondd}% bond between 4a and 8a
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+{\let\fff=\aaa\let\aaa=\bbb
+ \Put@Direct(171,303){\bondf}% bond between 1 and 2
+}%
+\else\if\member b\relax
+{\let\aaa=\bbb\let\bbb=\ccc
+ \Put@Direct(171,303){\bonda}% bond between 2 and 3
+}%
+\else\if\member c\relax
+{\let\bbb=\ccc\let\ccc=\ddd
+ \Put@Direct(171,303){\bondb}% bond between 3 and 4
+}%
+\else\if\member d\relax%
+{\let\ccc=\ddd\let\ddd=\eee
+ \Put@Direct(171,303){\bondc}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ccc=\eee\let\bbb=\iii%
+ \Put@Direct(0,0){\bondb}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+{\let\ccc=\eee\let\ddd=\fff
+ \Put@Direct(0,0){\bondc}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\ddd=\fff\let\eee=\gggA
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\eee=\gggA \let\fff=\hhh%
+ \Put@Direct(0,0){\bonde}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\aaa=\jjj \let\fff=\hhh%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\fff=\aaa\let\eee=\jjj%
+ \Put@Direct(171,303){\bonde}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\aaa=\jjj\let\bbb=\iii%
+ \Put@Direct(0,0){\bonda}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\jjj\let\ddd=\iii%
+ \Put@Direct(171,303){\bondd}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(171,506){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putlatom{111}{546}{\@@tmpb}% % left type
+ \else\if\@@tmpa 2\relax%
+ \putlatom{209}{585}{\@@tmpb}% % left type
+ \else\if\@@tmpa 3\relax%
+ \putratom{209}{546}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{209}{431}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-120}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavt
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-2}{2}{7}{0}%
+% \@hclipfalse \if@fclip \global\@hcliptrue \fi%
+% \@gclipfalse \if@eclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@clip \global\@fcliptrue \fi%
+% \@eclipfalse \if@cclip \global\@ecliptrue \fi%
+ \@hclipfalse \if@fclip \@hcliptrue \fi%
+ \@gclipfalse \if@eclip \@gcliptrue \fi%
+ \@fclipfalse \if@clip \@fcliptrue \fi%
+ \@eclipfalse \if@cclip \@ecliptrue \fi%
+\storeclipinfo
+}% %substituents on 5 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevt{#3}%
+% \if@iclip \global\@icliptrue \fi
+% \if@jclip \global\@jcliptrue \fi
+\storeclipinfo
+}%9 %for 4a position, %10 for 8a position
+\developclipinfo
+%to be done after all (exept aclip)
+\Put@Direct(171,303){\set@hetatom@sixv{#3}{-1}{0}{4}{0}%
+%\@clipfalse \if@cclip \global\@cliptrue \fi%
+%\@cclipfalse \if@bclip \global\@ccliptrue \fi%
+%\@bclipfalse \if@aclip \global\@bcliptrue \fi%
+\@clipfalse \if@cclip \@cliptrue \fi%
+\@cclipfalse \if@bclip \@ccliptrue \fi%
+%\@bclipfalse \if@aclip \@bcliptrue \fi%bug fix 2013/03/23
+\@bclipfalse \if@aclip \@bcliptrue \@aclipfalse \fi%
+\storeclipinfo
+}% %substituents on 2 to 4
+\developclipinfo
+{%
+\@fclipfalse%locally cancelled 1999/2/15 by Shinsaku Fujita
+\Put@Direct(171,303){\set@hetatom@sixv{#3}{5}{5}{7}{0}%
+%\@aclipfalse \if@fclip \global\@acliptrue \fi%
+\@aclipfalse \if@fclip \@acliptrue \fi%
+\storeclipinfo
+}% %substituent on 1
+\developclipinfo
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%
+\@fclipfalse \if@aclip \@fcliptrue \fi%
+\Put@Direct(171,303){\setsixringv{#4}{5}{5}{7}{0}}% %substituent on 1
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+\@aclipfalse \if@bclip \@acliptrue \fi%
+\@bclipfalse \if@cclip \@bcliptrue \fi%
+\@cclipfalse \if@clip \@ccliptrue \fi%
+\Put@Direct(171,303){\setsixringv{#4}{-1}{0}{4}{0}}% %substituents on 2 to 4
+}%
+{%
+ \@cclipfalse \if@eclip \@ccliptrue \fi%
+ \@clipfalse \if@fclip \@cliptrue \fi%
+ \@eclipfalse \if@gclip \@ecliptrue \fi%
+ \@fclipfalse \if@hclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{-2}{2}{7}{0}}% %substituents on 5 to 8
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{5}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(0,406){\setatombond{#4}{-9}{11}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovt macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylhetpositiont| is used in the |\decaheterovt| command,
+% giving the sift values for drawing a structure as a substituent.
+% \changes{v1.02}{1998/10/18}{Newly added command}
+%
+% \begin{macro}{\ylhetpositiont}
+% \begin{macrocode}
+\def\ylhetpositiont#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty%
+ \ifx\bbb\empty% aaa and bbb are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% bbb is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \ifx\ccc\empty% aaa and ccc are absent
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else%ccc is present
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or
+ \ifx\ccc\empty
+ \ifx\ddd\empty
+ \ifx\eee\empty% ccc, ddd, eee are absent
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue%subst. on 3
+ \else%eee is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \else%ddd is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \else%ccc is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \ifx\fff\empty%ddd and fff are absent
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else%fff present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \ifx\gggA\empty%eee and ggg are absent
+ \gdef\@ylii{173}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else% ggg is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \else% eee is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \ifx\hhh\empty%fff and hhh are absent
+ \gdef\@ylii{173}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else%hhh is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+ \else%fff is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@vrtx@decafusevt| is used to typeset a hetero
+% atom at each fused vertex (4a or 8a) of a decaheterovt ring.
+%
+% \begin{macro}{\set@vrtx@decafusevt}
+% \begin{macrocode}
+\def\set@vrtx@decafusevt#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \global\@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{135}{280}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{31}{356}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+% \global\@icliptrue%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{135}{280}{\@memberb}% % right type
+\or%10 (= 8a)
+% \global\@jcliptrue%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{31}{356}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevt
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Short-cut commands for fused heterocycles}
+%
+% The macros |\decaheterov|, |\decaheterovb|, and
+% |\decaheterovt| can be used in the form of a fixed |ATOMLIST|.
+% Hence, the resulting commands for drawing a fused heterocyle
+% with one or more nitrogen atoms have an argument |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ****************************************************
+% * heterocycles having two fused six-membered rings *
+% * (vertical type) *
+% ****************************************************
+%
+% \quinolinev[BONDLIST]{SUBSLIST}
+% \quinolinevi[BONDLIST]{SUBSLIST}
+% \quinolinevb[BONDLIST]{SUBSLIST}
+% \quinolinevt[BONDLIST]{SUBSLIST}
+%
+% \isoquinolinev[BONDLIST]{SUBSLIST}
+% \isoquinolinevi[BONDLIST]{SUBSLIST}
+% \isoquinolinevb[BONDLIST]{SUBSLIST}
+% \isoquinolinevt[BONDLIST]{SUBSLIST}
+%
+% \quinoxalinev[BONDLIST]{SUBSLIST}
+% \quinoxalinevi[BONDLIST]{SUBSLIST}
+% \quinoxalinevb[BONDLIST]{SUBSLIST}
+% \quinoxalinevt[BONDLIST]{SUBSLIST}
+%
+% \quinazolinev[BONDLIST]{SUBSLIST}
+% \quinazolinevi[BONDLIST]{SUBSLIST}
+% \quinazolinevb[BONDLIST]{SUBSLIST}
+% \quinazolinevt[BONDLIST]{SUBSLIST}
+%
+% \cinnolinev[BONDLIST]{SUBSLIST}
+% \cinnolinevi[BONDLIST]{SUBSLIST}
+% \cinnolinevb[BONDLIST]{SUBSLIST}
+% \cinnolinevt[BONDLIST]{SUBSLIST}
+%
+% \pteridinev[BONDLIST]{SUBSLIST}
+% \pteridinevi[BONDLIST]{SUBSLIST}
+% \pteridinevb[BONDLIST]{SUBSLIST}
+% \pteridinevt[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected
+% from a to k (K), each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The optiona `A' and `B' typeset aromatic circles.
+% The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \quinolinev{3==Cl;2==F}
+% \quinolinev{3==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\quinolinev}
+% \begin{macro}{\quinolinevi}
+% \begin{macro}{\quinolinevb}
+% \begin{macro}{\quinolinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{quinolinevb} and \cs{quinolinevt}}
+% \begin{macrocode}
+\def\quinolinev{%
+ \@ifnextchar[{\@quinolinev[@}{\@quinolinev[acfhk]}}
+\def\@quinolinev[#1]#2{%
+\iforigpt \typeout{command `quinolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N}{#2}}
+\def\quinolinevi{%
+ \@ifnextchar[{\@quinolinevi[@}{\@quinolinevi[acfhk]}}
+\def\@quinolinevi[#1]#2{%
+\iforigpt \typeout{command `quinolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N}{#2}}
+\def\quinolinevb{%
+ \@ifnextchar[{\@quinolinevb[@}{\@quinolinevb[acfhk]}}
+\def\@quinolinevb[#1]#2{%
+\iforigpt \typeout{command `quinolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N}{#2}}
+\def\quinolinevt{%
+ \@ifnextchar[{\@quinolinevt[@}{\@quinolinevt[acfhk]}}
+\def\@quinolinevt[#1]#2{%
+\iforigpt \typeout{command `quinolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isoquinolinev}
+% \begin{macro}{\isoquinolinevi}
+% \begin{macro}{\isoquinolinevb}
+% \begin{macro}{\isoquinolinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{isoquinolinevb} and \cs{isoquinolinevt}}
+% \begin{macrocode}
+\def\isoquinolinev{%
+ \@ifnextchar[{\@isoquinolinev[@}{\@isoquinolinev[acfhk]}}
+\def\@isoquinolinev[#1]#2{%
+\iforigpt \typeout{command `isoquinolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{2==N}{#2}}
+\def\isoquinolinevi{%
+ \@ifnextchar[{\@isoquinolinevi[@}{\@isoquinolinevi[acfhk]}}
+\def\@isoquinolinevi[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{2==N}{#2}}%
+\def\isoquinolinevb{%
+ \@ifnextchar[{\@isoquinolinevb[@}{\@isoquinolinevb[acfhk]}}
+\def\@isoquinolinevb[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevb' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovb[#1]{2==N}{#2}}%
+\def\isoquinolinevt{%
+ \@ifnextchar[{\@isoquinolinevt[@}{\@isoquinolinevt[acfhk]}}
+\def\@isoquinolinevt[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{2==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\quinoxalinev}
+% \begin{macro}{\quinoxalinevi}
+% \begin{macro}{\quinoxalinevb}
+% \begin{macro}{\quinoxalinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{quinoxalinevb} and \cs{quinoxalinevt}}
+% \begin{macrocode}
+\def\quinoxalinev{%
+ \@ifnextchar[{\@quinoxalinev[@}{\@quinoxalinev[acfhk]}}
+\def\@quinoxalinev[#1]#2{%
+\iforigpt \typeout{command `quinoxalinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevi{%
+ \@ifnextchar[{\@quinoxalinevi[@}{\@quinoxalinevi[acfhk]}}
+\def\@quinoxalinevi[#1]#2{%but v--->vi 2013/03/22
+\iforigpt \typeout{command `quinoxalinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevb{%
+ \@ifnextchar[{\@quinoxalinevb[@}{\@quinoxalinevb[acfhk]}}
+\def\@quinoxalinevb[#1]#2{%
+\iforigpt \typeout{command `quinoxalinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevt{%
+ \@ifnextchar[{\@quinoxalinevt[@}{\@quinoxalinevt[acfhk]}}
+\def\@quinoxalinevt[#1]#2{%
+\iforigpt \typeout{command `quinoxalinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;4==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\quinazolinev}
+% \begin{macro}{\quinazolinevi}
+% \begin{macro}{\quinazolinevb}
+% \begin{macro}{\quinazolinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{quinazolinevb} and \cs{quinazolinevt}}
+% \begin{macrocode}
+\def\quinazolinev{%
+ \@ifnextchar[{\@quinazolinev[@}{\@quinazolinev[acfhk]}}
+\def\@quinazolinev[#1]#2{%
+\iforigpt \typeout{command `quinazolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;3==N}{#2}}
+\def\quinazolinevi{%
+ \@ifnextchar[{\@quinazolinevi[@}{\@quinazolinevi[acfhk]}}
+\def\@quinazolinevi[#1]#2{%
+\iforigpt \typeout{command `quinazolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;3==N}{#2}}
+\def\quinazolinevb{%
+ \@ifnextchar[{\@quinazolinevb[@}{\@quinazolinevb[acfhk]}}
+\def\@quinazolinevb[#1]#2{%
+\iforigpt \typeout{command `quinazolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;3==N}{#2}}
+\def\quinazolinevt{%
+ \@ifnextchar[{\@quinazolinevt[@}{\@quinazolinevt[acfhk]}}
+\def\@quinazolinevt[#1]#2{%
+\iforigpt \typeout{command `quinazolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;3==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cinnolinev}
+% \begin{macro}{\cinnolinevi}
+% \begin{macro}{\cinnolinevb}
+% \begin{macro}{\cinnolinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{cinnolinevb} and \cs{cinnolinevt}}
+% \begin{macrocode}
+\def\cinnolinev{%
+ \@ifnextchar[{\@cinnolinev[@}{\@cinnolinev[acfhk]}}
+\def\@cinnolinev[#1]#2{%
+\iforigpt \typeout{command `cinnolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;2==N}{#2}}
+\def\cinnolinevi{%
+ \@ifnextchar[{\@cinnolinevi[@}{\@cinnolinevi[acfhk]}}
+\def\@cinnolinevi[#1]#2{%
+\iforigpt \typeout{command `cinnolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;2==N}{#2}}
+\def\cinnolinevb{%
+ \@ifnextchar[{\@cinnolinevb[@}{\@cinnolinevb[acfhk]}}
+\def\@cinnolinevb[#1]#2{%
+\iforigpt \typeout{command `cinnolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;2==N}{#2}}
+\def\cinnolinevt{%
+ \@ifnextchar[{\@cinnolinevt[@}{\@cinnolinevt[acfhk]}}
+\def\@cinnolinevt[#1]#2{%
+\iforigpt \typeout{command `cinnolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;2==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pteridinev}
+% \begin{macro}{\pteridinevi}
+% \begin{macro}{\pteridinevb}
+% \begin{macro}{\pteridinevt}
+% \changes{v1.02}{1998/10/18}{Newly added commands:
+% \cs{pteridinevb} and \cs{pteridinevt}}
+% \begin{macrocode}
+\def\pteridinev{\@ifnextchar[{\@pteridinev[@}{\@pteridinev[acfhk]}}
+\def\@pteridinev[#1]#2{%
+\iforigpt \typeout{command `pteridinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevi{\@ifnextchar[{\@pteridinevi[@}{\@pteridinevi[acfhk]}}
+\def\@pteridinevi[#1]#2{%
+\iforigpt \typeout{command `pteridinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevb{\@ifnextchar[{\@pteridinevb[@}{\@pteridinevb[acfhk]}}
+\def\@pteridinevb[#1]#2{%
+\iforigpt \typeout{command `pteridinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevt{\@ifnextchar[{\@pteridinevt[@}{\@pteridinevt[acfhk]}}
+\def\@pteridinevt[#1]#2{%
+\iforigpt \typeout{command `pteridinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;3==N;5==N;8==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Six-to-five fused heterocycles}
+% \subsection{Vertical type}
+%
+% The standard skeleton of a six-to-five fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **************************
+% * nonahetero derivatives *
+% * (vertical type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% 4
+% * 3a(8)
+% 5 * * _____ 3
+% | | |
+% | | |
+% 6 * * * * 2
+% * 7a *
+% 7 (9) 1
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\nonaheterov| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \nonaheterov(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `j' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% j : 3a,4a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle (six-membered ring)
+% B : aromatic circle (five-membered ring)
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 9 atoms)
+%
+% for n = 1 to 7
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 3a or 7b (n=3 or 7)
+% e.g. 3a==N (or 8==N) for N at 4a-position
+% 7a==N (or 9==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to j: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \nonaheterov{1==N}{1==Cl;2==F}
+% \nonaheterov[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\nonaheterov| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times in
+% a restricted fashion.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused and spiro rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\nonaheterov}
+% \begin{macro}{\@nona@heterov}
+% \begin{macro}{\@nona@@heterov}
+% \begin{macro}{\@nonaheterov}
+% \begin{macrocode}
+\def\nonaheterov{\@ifnextchar({\@nona@heterov(@}{\@nona@heterov(@)}}
+\def\@nona@heterov(#1){\@ifnextchar[{\@nona@@heterov(#1)[@}%
+{\@nona@@heterov(#1)[@]}}
+\def\@nona@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterov(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterov(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@nonav{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{5}{-1}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylposition{#4}{11}{3}{7}{-1}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\aaa=\hhh
+\ylposition{#4}{-3}{0}{2}{0}%%substituent on 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{7}% %9 %for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{1}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){nonaheterov}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@longbond{#1}{c}{skbondhoriz}}%
+ % bond between 3 and 3a \@ccc -> \skbondhoriz etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{e}}%
+ % bond between 3a and 7a \@jjj -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{i}{d}}%
+ % bond between 7a and 1 \@iii -> \skbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{d}{a}% bond between 3a and 4 \@ddd -> \skbonda etc
+\set@skel@bond{#1}{h}{c}% bond between 7 and 7a \@hhh -> \skbondc etc
+\set@skel@bond{#1}{g}{d}% bond between 6 and 7 \@ggg -> \skbondd etc
+\set@skel@bond{#1}{f}{e}% bond between 5 and 6 \@fff -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 4 and 5 \@eee -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 3a and 7a
+ \Put@Direct(0,0){\bondf}% bond between 4 and 5
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bondhoriz}% bond between 3 and 3a
+\else\if\member d\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 4 and 3a
+}%
+\else\if\member e\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 4 and 5
+}%
+\else\if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 7 and 7a
+}%
+\else\if\member i\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 1 and 7a
+}%
+\else\if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 7a and 3a
+}%
+\else\if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 7a and 3a
+}%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B\relax%left aromatic circle
+ \Put@oCircle(342,173){180}% %circle 1993/11/20 S.Fujita
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms and spiro rings %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\@tmpclipfalse
+%position 7 should be treated before
+%position 1 (using the same \if@clip)
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{11}{3}{7}{-1}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+%\developclipinfo%2006/9/5 deleted
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{5}{1}{5}{-1}%
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+% \if@clip \global\@cliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 3
+%\developclipinfo%2006/9/5 deleted
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-3}{0}{2}{0}%
+% \@aclipfalse \if@aclip \global\@hcliptrue \fi%
+ \@hclipfalse \if@aclip \@hcliptrue \fi%
+\storeclipinfo
+}%%substituent on 4
+%\developclipinfo%2006/9/5 deleted
+\Put@Direct(0,0){\set@vrtx@nonafusev{#3}%
+ \@tmpclipfalse
+% \if@iclip \global\@tmpcliptrue \fi
+% \if@jclip \global\@icliptrue \fi
+% \if@tmpclip \global\@jcliptrue \fi
+ \if@iclip \@tmpcliptrue \fi
+% \if@jclip \@icliptrue \fi
+% \if@tmpclip \@jcliptrue \fi
+ \if@jclip \@icliptrue \else \@iclipfalse \fi
+ \if@tmpclip \@jcliptrue \else \@jclipfalse \fi
+\storeclipinfo
+%%%====\clipinfo====%%%2006/9/5test
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(342,0){\setsixringv{#4}{5}{1}{5}{-1}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{11}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 4
+\Put@Direct(0,0){\setsixringv{#4}{-3}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-8}{7}}% %9 for 7a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-7}{1}}% %8 for 3a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \nonaheterov macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vertix@nonav| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% nonaheterov nucleus.
+% \changes{v2.00}{1998/12/05}{New command: \cs{test@vertix@nonav}}
+%
+% \begin{macro}{\test@vertix@nonav}
+% \begin{macrocode}
+\def\test@vertix@nonav#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%3%
+ \if\@tmpb a\relax%
+ \def\jjj{@}%3a
+ \else\if\@tmpb s\relax%
+ \def\bbb{}%3
+ \else\if\@tmpb h\relax%
+ \def\bbb{@}%3
+ \else\ifx\@tmpb\empty\relax%
+ \def\bbb{@}%3
+ \fi\fi\fi\fi%
+ \or%4
+ \if\@tmpb s\relax\def\hhh{}\else\def\hhh{@}\fi
+ \or%5
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%7
+ \if\@tmpb a%
+ \xdef\iii{@}%7a
+ \else\if\@tmpb s\relax%
+ \xdef\eee{}%7s
+ \else\if\@tmpb h\relax%
+ \xdef\eee{@}%7h
+ \else\ifx\@tmpb\empty\relax%
+ \xdef\eee{@}%7
+ \fi\fi\fi\fi%
+\or%8 (= 3a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\or%9 (= 7a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\fi\fi}}% end of \test@vertix@nonav
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@vrtx@nonafusev| is used to set
+% a hetero atom or on a vertex of a bridgehead location.
+%
+% \begin{macro}{\set@vrtx@nonafusev}
+% \begin{macrocode}
+\def\set@vrtx@nonafusev#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+% \global\@icliptrue%
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\or%9 (= 7a)
+% \global\@jcliptrue%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusev
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+%
+% The standard skeleton of a six-to-five fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **********************************
+% * nonahetero derivatives *
+% * (vertical type, inverse type) *
+% **********************************
+% The following numbering is adopted in this macro.
+%
+% 7(10) 1
+% * 7a *
+% 6 * * * * 2
+% | | |
+% | |_____|
+% 5 * * 3
+% * 3a(8)
+% 4
+% ^
+% |
+% the original point
+% \end{verbatim}
+%
+% The macro |\nonaheterovi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \nonaheterovi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `j' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% j : 3a,4a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle (six-membered ring)
+% B : aromatic circle (five-membered ring)
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 9 atoms)
+%
+% for n = 1 to 7
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 3a or 7b (n=3 or 7)
+% e.g. 3a==N (or 8==N) for N at 4a-position
+% 7a==N (or 9==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to j: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \nonaheterovi{1==N}{1==Cl;2==F}
+% \nonaheterovi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\nonaheterovi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| several times in
+% a restricted fashion.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/05}{Added: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\nonaheterovi}
+% \begin{macro}{\@nona@heterovi}
+% \begin{macro}{\@nona@@heterovi}
+% \begin{macro}{\@nonaheterovi}
+% \begin{macrocode}
+\def\nonaheterovi{\@ifnextchar({\@nona@heterovi(@}{\@nona@heterovi(@)}}
+\def\@nona@heterovi(#1){\@ifnextchar[{\@nona@@heterovi(#1)[@}%
+{\@nona@@heterovi(#1)[@]}}
+\def\@nona@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterovi(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterovi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%initialize
+\test@vertix@nonavi{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{4}{0}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylposition{#4}{0}{3}{7}{0}%%substituents on 4 to 6
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\aaa=\hhh
+\ylposition{#4}{-6}{0}{2}{0}%%substituent on 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{7}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{1}% %9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){nonaheterovi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@longbond{#1}{c}{skbondhorizi}}%
+ % bond between 3 and 3a \@ccc -> \skbondhoriz etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{e}}%
+ % bond between 3a and 7a \@jjj -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{i}{f}}%
+ % bond between 7a and 1 \@iii -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{h}{a}% bond between 7a and 7 \@hhh -> \skbonda etc
+\set@skel@bond{#1}{d}{c}% bond between 3a and 4 \@ddd -> \skbondc etc
+\set@skel@bond{#1}{e}{d}% bond between 4 and 5 \@eee -> \skbondd etc
+\set@skel@bond{#1}{f}{e}% bond between 5 and 6 \@fff -> \skbonde etc
+\set@skel@bond{#1}{g}{f}% bond between 6 and 7 \@ggg -> \skbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+ \let\ccc=\iii\let\bbb=\jjj
+ \Put@Direct(0,0){\bondb}% bond between 3a and 7a
+ \Put@Direct(0,0){\bondf}% bond between 6 and 7
+ \Put@Direct(0,0){\bondd}% bond between 4 and 5
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bondhorizi}% bond between 3 and 3a
+\else\if\member d\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 4 and 3a
+}%
+\else\if\member e\relax%
+{\let\ddd=\eee\let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 4 and 5
+}%
+\else\if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 7 and 6
+}%
+\else\if\member h\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 7 and 7a
+}%
+\else\if\member i\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 7a
+}%
+\else\if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 7a and 3a
+}%
+\else\if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 7a and 3a
+}%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B\relax%left aromatic circle
+ \Put@oCircle(342,233){180}% %circle 1993/11/20 S.Fujita
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonavi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms and spiro rings %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{0}{0}{4}{0}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+ \@xclipfalse \if@aclip \@xcliptrue \@aclipfalse\fi%avoid conflict position 7 2013/03/24
+\storeclipinfo
+}% %substituents on 1 to 3
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{0}{3}{7}{0}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+\storeclipinfo
+}%substituents on 4 to 6
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-6}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+\storeclipinfo
+}%%substituent on 7
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@nonafusevi{#3}%
+\storeclipinfo
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{%
+\@aclipfalse \if@xclip \@acliptrue \fi% %avoid conflict 2013/3/24
+\Put@Direct(342,0){\setsixringv{#4}{0}{0}{4}{0}}% %substituents on 1 to 3
+}%
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 4 to 6
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{0}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 7
+\Put@Direct(0,0){\setsixringv{#4}{-6}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-7}{7}}% %8 for 3a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{1}}% %9 for 7a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \nonaheterovi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vertix@nonavi| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% nonaheterovi nucleus.
+% \changes{v2.00}{1998/12/05}{New command: \cs{test@vertix@nonavi}}
+%
+% \begin{macro}{\test@vertix@nonavi}
+% \begin{macrocode}
+\def\test@vertix@nonavi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or%3%
+ \if\@tmpb a\relax%
+ \def\iii{@}%3a
+ \else\if\@tmpb s\relax%
+ \def\ccc{}%3
+ \else\if\@tmpb h\relax%
+ \def\ccc{@}%3
+ \else\ifx\@tmpb\empty\relax%
+ \def\ccc{@}%3
+ \fi\fi\fi\fi%
+ \or%4
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or%5
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%7
+ \if\@tmpb a%
+ \xdef\jjj{@}%7a
+ \else\if\@tmpb s\relax%
+ \xdef\hhh{}%7s
+ \else\if\@tmpb h\relax%
+ \xdef\hhh{@}%7h
+ \else\ifx\@tmpb\empty\relax%
+ \xdef\hhh{@}%7
+ \fi\fi\fi\fi%
+\or%8 (= 3a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\or%9 (= 7a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@vrtx@nonafusevi| is used to set
+% a hetero atom on a vertex of a bridgehead location.
+% \changes{v2.00}{1998/12/05}{New command: \cs{set@vrtx@nonafusevi}}
+%
+% \begin{macro}{\set@vrtx@nonafusevi}
+% \begin{macrocode}
+\def\set@vrtx@nonafusevi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a\relax%
+% \global\@icliptrue%
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a\relax%
+% \global\@jcliptrue%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+% \global\@icliptrue%
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\or%9 (= 7a)
+% \global\@jcliptrue%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusevi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Short-cut commands for fused heterocycles}
+%
+% The macros |\nonaheterov| and |\nonaheterovi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a fused heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% **********************************************************
+% * heterocycles having fused six- and five-membered rings *
+% * (vertical type) *
+% **********************************************************
+%
+% N-heterocycles:
+%
+% \indolev[BONDLIST]{SUBSLIST}
+% \indolevi[BONDLIST]{SUBSLIST}
+%
+% \isoindolev[BONDLIST]{SUBSLIST}
+% \isoindolevi[BONDLIST]{SUBSLIST}
+%
+% \indolizinev[BONDLIST]{SUBSLIST}
+% \indolizinevi[BONDLIST]{SUBSLIST}
+% (different from the IUPAC numbering)
+%
+% \purinev[BONDLIST]{SUBSLIST}
+% \purinevi[BONDLIST]{SUBSLIST}
+% (different from the IUPAC numbering)
+%
+% O-heterocycles:
+%
+% \benzofuranev[BONDLIST]{SUBSLIST}
+% \benzofuranevi[BONDLIST]{SUBSLIST}
+%
+% \isobenzofuranevi[BONDLIST]{SUBSLIST}
+%
+% \benzoxazolev[BONDLIST]{SUBSLIST}
+% \benzoxazolevi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The optiona `A' and `B' typeset aromatic circles.
+% The option
+% `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+%
+% e.g.
+%
+% \indolev{1==N}{1==Cl;2==F}
+% \indolev[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\purinev}
+% \begin{macro}{\purinevi}
+% \begin{macrocode}
+\def\purinev{\@ifnextchar[{\@purinev[@}{\@purinev[ra]}}
+\def\@purinev[#1]#2{%
+\iforigpt \typeout{command `purinev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==N;3==N;5==N;7==N}{#2}}
+\def\purinevi{\@ifnextchar[{\@purinevi[@}{\@purinevi[ra]}}
+\def\@purinevi[#1]#2{%
+\iforigpt \typeout{command `purinevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==N;3==N;5==N;7==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\indolev}
+% \begin{macro}{\indolevi}
+% \begin{macrocode}
+\def\indolev{\@ifnextchar[{\@indolev[@}{\@indolev[rb]}}
+\def\@indolev[#1]#2{%
+\iforigpt \typeout{command `indolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==N}{#2}}
+\def\indolevi{\@ifnextchar[{\@indolevi[@}{\@indolevi[rb]}}
+\def\@indolevi[#1]#2{%
+\iforigpt \typeout{command `indolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\indolizinev}
+% \begin{macro}{\indolizinevi}
+% \begin{macrocode}
+\def\indolizinev{%
+ \@ifnextchar[{\@indolizinev[@}{\@indolizinev[aceg]}}
+\def\@indolizinev[#1]#2{%
+\iforigpt \typeout{command `indolizinev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{7a==N}{#2}}
+\def\indolizinevi{%
+ \@ifnextchar[{\@indolizinevi[@}{\@indolizinevi[aceg]}}
+\def\@indolizinevi[#1]#2{%
+\iforigpt \typeout{command `indolizinevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{7a==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isoindolev}
+% \begin{macro}{\isoindolevi}
+% \begin{macrocode}
+\def\isoindolev{\@ifnextchar[{\@isoindolev[@}{\@isoindolev[cegi]}}
+\def\@isoindolev[#1]#2{%
+\iforigpt \typeout{command `isoindolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{2==N}{#2}}
+\def\isoindolevi{\@ifnextchar[{\@isoindolevi[@}{\@isoindolevi[cegi]}}
+\def\@isoindolevi[#1]#2{%
+\iforigpt \typeout{command `isoindolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{2==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\benzofuranev}
+% \begin{macro}{\benzofuranevi}
+% \begin{macrocode}
+\def\benzofuranev{%
+ \@ifnextchar[{\@benzofuranev[@}{\@benzofuranev[rb]}}
+\def\@benzofuranev[#1]#2{%
+\iforigpt \typeout{command `benzofuranev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==O}{#2}}
+\def\benzofuranevi{%
+ \@ifnextchar[{\@benzofuranevi[@}{\@benzofuranevi[rb]}}
+\def\@benzofuranevi[#1]#2{%
+\iforigpt \typeout{command `benzofuranevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isobenzofuranev}
+% \begin{macro}{\isobenzofuranevi}
+% \begin{macrocode}
+\def\isobenzofuranev{\@ifnextchar[{\@isobenzofuranev[@}%
+ {\@isobenzofuranev[cegi]}}
+\def\@isobenzofuranev[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{2==O}{#2}}
+\def\isobenzofuranevi{\@ifnextchar[{\@isobenzofuranevi[@}%
+ {\@isobenzofuranevi[cegi]}}
+\def\@isobenzofuranevi[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{2==O}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\benzoxazolev}
+% \begin{macro}{\benzoxazolevi}
+% \begin{macrocode}
+\def\benzoxazolev{%
+ \@ifnextchar[{\@benzoxazolev[@}{\@benzoxazolev[rb]}}
+\def\@benzoxazolev[#1]#2{%
+\iforigpt \typeout{command `benzoxazolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==O;3==N}{#2}}
+\def\benzoxazolevi{%
+ \@ifnextchar[{\@benzoxazolevi[@}{\@benzoxazolevi[rb]}}
+\def\@benzoxazolevi[#1]#2{%
+\iforigpt \typeout{command `benzoxazolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==O;3==N}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Building blocks}
+% \subsection{Six-membered ring unit}
+%
+% The old function (v1.01) of |\sixunitv| as a fusing ring unit
+% is succeeded by |\sixfusev| and |\sixfusevi|.
+% The command |\sixunitv| has been changed into a subsidiary
+% command of |\sixheterov| (v2.00).
+%
+% The macro |\sixunitv| is a six-membered fragment that can be
+% fused to another ring structure to produce a new ring system.
+% The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * six-membered unit *
+% * (vertical type) *
+% **********************
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% | |
+% 5 * * 3
+% *
+% 4 <===== the original point
+% \end{verbatim}
+%
+% The macro |\sixunitv| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \sixunitv[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixhunitv{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% The definition of |\sixunitv| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv|.
+% \end{enumerate}
+%
+% \changes{v1.01a}{1998/06/08}{\cs{sixunitv} bug fix:
+% \cs{bbb} to \cs{fff} and \cs{ccc} to \cs{eee}}
+%
+% \begin{macro}{\sixunitv}
+% \begin{macro}{\@sixunitv}
+% \begin{macrocode}
+\def\sixunitv{\@ifnextchar[{\@sixunitv[@}{\@sixunitv[@]}}
+\def\@sixunitv[#1]#2#3#4{\sixheterov[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/04/30}{\cs{sixunitv}: Old definition deleted.}
+%
+% \subsection{Five-membered ring unit}
+% \subsubsection{Vertical type}
+%
+% The old function (v1.01) of |\fiveunitv| as a fusing ring unit
+% is succeeded by |\fivefusev|.
+% The command |\fiveunitv| has been changed into a subsidiary
+% command of |\fiveheterov| (v2.00).
+%
+% The macro |\fiveunitv| is a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * five-membered unit *
+% * (vertical type) *
+% **********************
+%
+% 4 _______ 3
+% | |
+% | |
+% 5 * * 2
+% *
+% 1 <===== the original point
+% \end{verbatim}
+%
+% The macro |\fiveunitv| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \fiveunitv[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveunitv{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% The definition of |\fiveunitv| uses a picture environment and
+% consists of the same unit processes as shown in |\fiveheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+%
+% \begin{macro}{\fiveunitv}
+% \begin{macro}{\@fiveunitv}
+% \begin{macrocode}
+\def\fiveunitv{\@ifnextchar[{\@fiveunitv[@}{\@fiveunitv[r]}}
+\def\@fiveunitv[#1]#2#3#4{\fiveheterov[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/04/30}{\cs{fivunitv}: Old definition deleted.}
+%
+% \subsubsection{Inverse vertical type}
+%
+% The old function (v1.01) of |\fiveunitvi| as a fusing ring unit
+% is succeeded by |\fivefusevi|.
+% The command |\fiveunitvi| has been changed into a subsidiary
+% command of |\fiveheterovi| (v2.00).
+%
+% The macro |\fiveunitvi| typesets a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************************
+% * five-membered unit *
+% * (vertical type, inverse type) *
+% ************************************
+%
+% 1
+% *
+% 6 * * 2
+% | |
+% |_____|
+% 4 3
+% *
+% (0,0) <===== the original point
+% \end{verbatim}
+%
+% The macro |\fiveunitvi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \fiveunitvi[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveunitvi{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% The definition of |\fiveunitvi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+%
+% \begin{macro}{\fiveunitvi}
+% \begin{macro}{\@fiveunitvi}
+% \begin{macrocode}
+\def\fiveunitvi{\@ifnextchar[{\@fiveunitvi[@}{\@fiveunitvi[r]}}
+\def\@fiveunitvi[#1]#2#3#4{\fiveheterovi[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/04/30}{\cs{fivunitvi}: Old definition deleted.}
+%
+% \section{Four-membered heterocycles}
+% \subsection{Horizontal bonds}
+%
+% \begin{macro}{\bondshoriz}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%
+% % horizontal bond %
+% %%%%%%%%%%%%%%%%%%%
+% horizontal inner bond for four-membered rings
+\def\bondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-138,270)(1,0){134}%double bond 4-3
+ \else%
+ \Put@Line(-138,270)(1,0){115}%double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(-120,270)(1,0){115}%double bond 4-3
+ \else%
+ \Put@Line(-120,270)(1,0){96}%double bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+% horizontal inner bond for four-membered rings (inverse type)
+\def\bondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-138,136)(1,0){134}%double bond 4-3
+ \else%%
+ \Put@Line(-138,136)(1,0){115}%double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(-120,136)(1,0){115}%double bond 4-3
+ \else%
+ \Put@Line(-120,136)(1,0){96}%double bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondshoriz}
+% \begin{macrocode}
+%horizontal bond for four-membered rings
+\def\skbondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-171,303)(1,0){200}%bond 4-3
+ \else%
+ \Put@Line(-171,303)(1,0){158}%bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(29,303)(-1,0){158}%bond 4-3
+ \else%
+ \Put@Line(-129,303)(1,0){116}%bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondshorizi}
+% \begin{macrocode}
+%horizontal bond for four-membered rings (inverse type)
+\def\skbondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-171,103)(1,0){200}%bond 4-3
+ \else%
+ \Put@Line(-171,103)(1,0){158}%bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(29,103)(-1,0){158}%bond 4-3
+ \else%
+ \Put@Line(-129,103)(1,0){116}%bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondshoriz}
+% \begin{macrocode}
+%horizontal bond for four-membered rings
+\def\dotskbondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(-171,303)(1,0){200}/(-171,303)(29,303)%
+ \else%
+ \dotorline(-171,303)(1,0){158}/(-171,303)(-29,303)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(29,303)(-1,0){158}/(29,303)(-129,303)%
+ \else%
+ \dotorline(-129,303)(1,0){116}/(-129,303)(-13,303)%
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondshorizi}
+% \begin{macrocode}
+%horizontal bond for four-membered rings (inverse type)
+\def\dotskbondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(-171,103)(1,0){200}/(-171,103)(29,103)%
+ \else%
+ \dotorline(-171,103)(1,0){158}/(-171,103)(-29,103)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(29,103)(-1,0){158}/(29,103)(-129,103)%
+ \else%
+ \dotorline(-129,103)(1,0){116}/(-129,103)(-13,103)%
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Drawing four-membered heterocycles}
+%
+% The macro |\fourhetero| typesets a four-membered ring. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **************************
+% * fourhetero derivatives *
+% * (vertical type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% c
+% 4 _____ 3
+% d | | b
+% | |
+% 1 ----- 2<===== the original point
+% a
+% \end{verbatim}
+%
+% The macro |\fourhetero| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fourhetero(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `d' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $4$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% e : 4,1-double bond
+%
+% {n+} : plus at the n-nitrogen atom (n = 1 to 4)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 4 atoms)
+%
+% for n = 1 to 4
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to d: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fourhetero{1==N}{1==H;2==F}
+% \fourhetero[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \fourhetero[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\fourhetero| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+%
+% \begin{macro}{\fourhetero}
+% \begin{macro}{\@four@hetero}
+% \begin{macro}{\@four@@hetero}
+% \begin{macro}{\@fourhetero}
+% \begin{macrocode}
+\def\fourhetero{\@ifnextchar({\@four@hetero(@}{\@four@hetero(@)}}
+\def\@four@hetero(#1){\@ifnextchar[{\@four@@hetero(#1)[@}%
+{\@four@@hetero(#1)[@]}}
+\def\@four@@hetero(#1)[#2]#3#4{\@ifnextchar[%
+{\@fourhetero(#1)[#2]{#3}{#4}[@}%
+{\@fourhetero(#1)[#2]{#3}{#4}[@]}}
+\def\@fourhetero(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{b}{f}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{4}{-1}% for 2 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{4}{4}{6}{0}% for 1
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{2}{5}{7}{0}% for 4
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-571,-137){fourhetero}%
+(571,137)(171,-103)%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@longbond{#1}{a}{skbondshorizi}}%
+ % bond between 1 and 2 \@aaa -> \skbondshorizi etc
+\Put@Direct(-142,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,0){\set@skel@longbond{#1}{c}{skbondshoriz}}%
+ % bond between 3 and 4 \@ccc -> \skbondshoriz etc
+\Put@Direct(0,0){\set@skel@bond{#1}{d}{e}}%
+ % bond between 4 and 1 \@ddd -> \skbonde etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax \Put@Direct(0,0){\bondshorizi}%
+\else\if\member b\relax \Put@Direct(-142,0){\bondb}%
+\else\if\member c\relax \Put@Direct(0,0){\bondshoriz}%
+\else\if\member d\relax \Put@Direct(0,0){\bonde}%
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fourv
+\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % setting heteroatoms %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-142,0){\set@hetatom@sixv{#3}{5}{1}{4}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 2 to 3
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{4}{4}{6}{0}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 1
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{2}{5}{7}{0}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 4
+\developclipinfo%added 2001/06/20 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-142,0){\setsixringv{#4}{5}{1}{4}{-1}}% for 2 to 3
+\Put@Direct(0,0){\setsixringv{#4}{4}{4}{6}{0}}% for 1
+\Put@Direct(0,0){\setsixringv{#4}{2}{5}{7}{0}}% for 4
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \fourhetero macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@fusionadd@fourv| is an inner command contained
+% in the definition of |\fourhetero| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@fourv|.
+%
+% \begin{macro}{\set@fusionadd@fourv}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusionadd@fourv}}
+% \begin{macrocode}
+\def\set@fusionadd@fourv{%
+ \if\@@tmpa 1\relax%
+ \putlatom{-200}{120}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{233}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putlatom{-200}{233}{\scriptsize \@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@fourv
+ \fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@fourv| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@fourv}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@fourv}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@fourv{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa d\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-173}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{27}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{27}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{27}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{27}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@fourv
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \changes{v5.01}{2013/3/19}{added \cs{oxetane}, \cs{thietane}, and \cs{azetidine} }
+% \begin{macro}{\oxetane}
+% \begin{macro}{\azetidine}
+% \begin{macro}{\thietane}
+% \begin{macrocode}
+\def\oxetane{\@ifnextchar[{\@oxetane[@}{\@oxetane[]}}
+\def\@oxetane[#1]#2{%
+\iforigpt \typeout{command `oxetane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==O}{#2}}
+\def\azetidine{\@ifnextchar[{\@azetidine[@}{\@azetidine[]}}
+\def\@azetidine[#1]#2{%
+\iforigpt \typeout{command `azetidine' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==N}{#2}}
+\def\thietane{\@ifnextchar[{\@thietane[@}{\@thietane[]}}
+\def\@thietane[#1]#2{%
+\iforigpt \typeout{command `thietane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{Three-membered heterocycles}
+% \subsection{Vertical type}
+% \subsubsection{Sloped bonds}
+%
+% \begin{macro}{\bondtria}
+% \begin{macrocode}
+% **********************
+% * bonds for triangle *
+% **********************
+% fff 3--------2bbb
+% ` /
+% ddd `1/ <===== the original point
+% bond between 1 and 2
+ \def\bondtria{%
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-6,42)(3,5){72}% %double bond 1-2
+ \else%
+ \Put@Line(-6,42)(3,5){60}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(6,62)(3,5){60}% %double bond 1-2
+ \else%
+ \Put@Line(10,32)(3,5){60}% %double bond 1-2
+ \fi%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bondtrib}
+% \begin{macrocode}
+% bond between 1 and 3
+ \def\bondtrib{%
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \Put@Line(6,42)(-3,5){72}% %double bond 1-3
+ \else%
+ \Put@Line(6,42)(-3,5){60}% %double bond 1-3
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-6,62)(-3,5){60}% %double bond 1-2
+ \else%
+ \Put@Line(6,42)(-3,5){60}% %double bond 1-2
+ \fi%
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondtria}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\skbondtria{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,5){80}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(103,171)(-3,-5){80}% %bond 1-2
+ \else%
+ \Put@Line(35,21)(3,5){60}% %bond 1-2
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skbondtrib}
+% \begin{macrocode}
+%bond between 1 and 3
+\def\skbondtrib{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \Put@Line(0,0)(-3,5){103}% %bond 1-3
+ \else%
+ \Put@Line(0,0)(-3,5){80}% %bond 1-3
+ \fi%
+ \else%
+% \ifx\eee\empty%bug fix 1993/11/19
+ \ifx\fff\empty%
+ \Put@Line(-103,171)(3,-5){80}% %bond 1-3
+ \else%
+ \Put@Line(-35,21)(-3,5){60}% %bond 1-3
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondtria}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\dotskbondtria{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,0)(3,5){103}/(0,0)(103,171)%
+ \else%
+ \dotorline(0,0)(3,5){80}/(0,0)(80,133)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(103,171)(-3,-5){80}/(103,171)(23,38)%
+ \else%
+ \dotorline(35,21)(3,5){60}/(35,21)(95,121)%
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dotskbondtrib}
+% \begin{macrocode}
+%bond between 1 and 3
+\def\dotskbondtrib{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \dotorline(0,0)(-3,5){103}/(0,0)(-103,171)%
+ \else%
+ \dotorline(0,0)(-3,5){80}/(0,0)(-80,133)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-103,171)(3,-5){80}/(-103,171)(-23,38)%
+ \else%
+ \dotorline(-35,21)(-3,5){60}/(-35,21)(-95,121)%
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Drawing three-membered heterocycles}
+%
+% The macro |\threehetero| typesets a three-membered ring. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ****************************
+% * thereehetero derivatives *
+% * (vertical type) *
+% ****************************
+%
+% b
+% 3--------2
+% c ` / a
+% `1/ <===== the original point
+% \end{verbatim}
+%
+% The macro |\threehetero| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threehetero(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \threeheterov(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `c' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to c: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threehetero{1==N}{1==Cl;2==F}
+% \threehetero[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \threehetero{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\threehetero| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\threehetero}
+% \begin{macro}{\@three@hetero}
+% \begin{macro}{\@three@@hetero}
+% \begin{macro}{\@threehetero}
+% \begin{macrocode}
+\def\threehetero{\@ifnextchar({\@three@hetero(@}{\@three@hetero(@)}}
+\def\@three@hetero(#1){\@ifnextchar[{\@three@@hetero(#1)[@}%
+{\@three@@hetero(#1)[@]}}
+\def\@three@@hetero(#1)[#2]#3#4{\@ifnextchar[%
+{\@threehetero(#1)[#2]{#3}{#4}[@}%
+{\@threehetero(#1)[#2]{#3}{#4}[@]}}
+\def\@threehetero(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{b}{f}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{3}{3}{5}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{68}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{0}{1}{3}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{132}\fi
+\else
+\ylposition{#4}{3}{5}{7}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{132}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-240){threeheterov}%
+(468,240)(68,0)%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skbondtria}}%
+ % bond between 1 and 2 \@aaa -> \skbondtria etc
+\Put@Direct(0,-132){\set@skel@longbond{#1}{b}{skbondshoriz}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skbondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skbondtria etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\bondtria}%
+\else\if\member b\relax\Put@Direct(0,-126){\bondshoriz}%
+\else\if\member c\relax\Put@Direct(-68,0){\bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,108){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threev
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,0){\set@hetatom@sixv{#3}{3}{3}{5}{0}%
+%\if@clip\global\@cliptrue\fi
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(-142,-132){\set@hetatom@sixv{#3}{0}{1}{3}{0}%
+%\if@bclip\global\@bcliptrue\fi
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(0,-132){\set@hetatom@sixv{#3}{3}{5}{7}{0}%
+%\if@fclip\global\@fcliptrue\fi
+\storeclipinfo
+}%subst 3
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,0){\setsixringv{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-142,-132){\setsixringv{#4}{0}{1}{3}{0}}%subst 2
+\Put@Direct(0,-132){\setsixringv{#4}{3}{5}{7}{0}}%subst 3
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \threehetero macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\threeheterov}
+% \begin{macrocode}
+\let\threeheterov=\threehetero
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@fusionadd@threev| is an inner command contained
+% in the definition of |\threehetero| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@threev|.
+%
+% \begin{macro}{\set@fusionadd@threev}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusionadd@threev}}
+% \begin{macrocode}
+\def\set@fusionadd@threev{%
+ \if\@@tmpa 0\relax%
+ \putratom{-94}{92}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-94}{60}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{-52}{120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-126}{126}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-30}{-20}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{52}{110}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-250}{110}{\scriptsize\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@threev
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@threev| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@threev}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@threev}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@threev{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa b\relax%
+ \putlratom{29}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{-171}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{29}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{-171}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threev
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.01}{2013/3/19}{added \cs{oxiranev}, \cs{aziridinev}, and \cs{thiiranev} }
+% \begin{macro}{\oxiranev}
+% \begin{macro}{\aziridinev}
+% \begin{macro}{\thiiranev}
+% \begin{macrocode}
+\def\oxiranev{\@ifnextchar[{\@oxiranev[@}{\@oxiranev[]}}
+\def\@oxiranev[#1]#2{%
+\iforigpt \typeout{command `oxiranev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==O}{#2}}
+\def\aziridinev{\@ifnextchar[{\@aziridinev[@}{\@aziridinev[]}}
+\def\@aziridinev[#1]#2{%
+\iforigpt \typeout{command `aziridinev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==N}{#2}}
+\def\thiiranev{\@ifnextchar[{\@thiiranev[@}{\@thiiranev[]}}
+\def\@thiiranev[#1]#2{%
+\iforigpt \typeout{command `thiiranev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Inverse vertical type}
+% \subsubsection{Sloped bonds}
+%
+% \changes{v1.02}{1998/10/20}{Newly added commands:
+% \cs{Bondtria}}
+% \begin{macro}{\Bondtria}
+% \begin{macrocode}
+% **********************
+% * bonds for triangle *
+% **********************
+%
+% aaa /1` <===== the original point
+% / `
+% eee 3--------2ccc
+% bond between 1 and 2
+ \def\Bondtria{%
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-6,-42)(3,-5){72}% %double bond 1-2
+ \else%
+ \Put@Line(-6,-42)(3,-5){60}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(6,-62)(3,-5){60}% %double bond 1-2
+ \else%
+ \Put@Line(10,-32)(3,-5){60}% %double bond 1-2
+ \fi%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Newly added commands: \cs{Bondtrib}}
+% \begin{macro}{\Bondtrib}
+% \begin{macrocode}
+% bond between 1 and 3
+ \def\Bondtrib{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(6,-42)(-3,-5){72}% %double bond 1-3
+ \else%
+ \Put@Line(6,-42)(-3,-5){60}% %double bond 1-3
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-6,-62)(-3,-5){60}% %double bond 1-2
+ \else%
+ \Put@Line(6,-42)(-3,-5){60}% %double bond 1-2
+ \fi%
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Newly added commands:
+% \cs{skBondtria}}
+% \begin{macro}{\skBondtria}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\skBondtria{%
+% \begin{sfpicture}(200,200)(0,0)
+% \begin{sfpicture}(0,0)(0,0)
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,-5){80}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(103,-171)(-3,5){80}% %bond 1-2
+ \else%
+ \Put@Line(35,-21)(3,-5){60}% %bond 1-2
+ \fi%
+ \fi
+%\end{sfpicture}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{1998/10/20}{Newly added commands:
+% \cs{skBondtrib}}
+% \begin{macro}{\skBondtrib}
+% \begin{macrocode}
+%bond between 1 and 3
+\def\skBondtrib{%
+% \begin{sfpicture}(0,0)(0,0)
+% \begin{sfpicture}(200,200)(0,0)
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(-3,-5){103}% %bond 1-3
+ \else%
+ \Put@Line(0,0)(-3,-5){80}% %bond 1-3
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-103,-171)(3,5){80}% %bond 1-3
+ \else%
+ \Put@Line(-35,-21)(-3,-5){60}% %bond 1-3
+ \fi%
+ \fi
+%\end{sfpicture}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.00}{1998/12/25}{Newly added commands:
+% \cs{dotskBondtria}}
+% \begin{macro}{\dotskBondtria}
+% \begin{macrocode}
+%bond between 1 and 2
+\def\dotskBondtria{%
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \dotorline(0,0)(3,-5){103}/(0,0)(103,-171)%
+ \else%
+ \dotorline(0,0)(3,-5){80}/(0,0)(80,-133)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(103,-171)(-3,5){80}/(103,-171)(23,-38)%
+ \else%
+ \dotorline(35,-21)(3,-5){60}/(35,-21)(95,-121)%
+ \fi%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.00}{1998/12/25}{Newly added commands:
+% \cs{dotskBondtrib}}
+% \begin{macro}{\dotskBondtrib}
+% \begin{macrocode}
+%bond between 1 and 3
+\def\dotskBondtrib{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \dotorline(0,0)(-3,-5){103}/(0,0)(-103,-171)%
+ \else%
+ \dotorline(0,0)(-3,-5){80}/(0,0)(-80,-133)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(-103,-171)(3,5){80}/(-103,-171)(-23,-38)%
+ \else%
+ \dotorline(-35,-21)(-3,-5){60}/(-35,-21)(-95,-121)%
+ \fi%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Drawing three-membered heterocycles (inverse)}
+%
+% The macro |\threeheteroi| typesets a three-membered ring of
+% inverse vertical type. The following numbering is adopted
+% in this macro.
+% \changes{v1.02}{1998/10/20}{Newly added commands:
+% \cs{threeheteroi}}
+%
+% \begin{verbatim}
+% ****************************
+% * thereehetero derivatives *
+% * (inverse vertical type) *
+% ****************************
+%
+% /1` <===== the original point
+% c / ` a
+% 3--------2
+% b
+% \end{verbatim}
+%
+% The macro |\threeheteroi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threeheteroi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \threeheterovi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `c' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to c: see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threeheteroi{1==N}{1==Cl;2==F}
+% \threeheteroi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \threeheteroi{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\threehetero| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\threeheteroi}
+% \begin{macro}{\@three@heteroi}
+% \begin{macro}{\@three@@heteroi}
+% \begin{macro}{\@threeheteroi}
+% \begin{macrocode}
+\def\threeheteroi{\@ifnextchar({\@three@heteroi(@}{\@three@heteroi(@)}}
+\def\@three@heteroi(#1){\@ifnextchar[{\@three@@heteroi(#1)[@}%
+{\@three@@heteroi(#1)[@]}}
+\def\@three@@heteroi(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheteroi(#1)[#2]{#3}{#4}[@}%
+{\@threeheteroi(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheteroi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{c}{e}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{2}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{68}\def\@@yli{406}\fi
+\else
+\ylposition{#4}{1}{2}{4}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{275}\fi
+\else
+\ylposition{#4}{2}{4}{6}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{275}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-340){threeheterovi}%
+(468,340)(68,0)%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skBondtria}}%
+ % bond between 1 and 2 \@aaa -> \skBondtria etc
+\Put@Direct(0,-275){\set@skel@longbond{#1}{b}{skbondshorizi}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skBondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skBondtrib etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\Bondtria}%
+\else\if\member b\relax\Put@Direct(0,-274){\bondshorizi}%
+\else\if\member c\relax\Put@Direct(-68,0){\Bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,-108){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threevi
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,-406){\set@hetatom@sixv{#3}{0}{0}{2}{0}%
+%\if@aclip\global\@acliptrue\fi
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(0,-275){\set@hetatom@sixv{#3}{2}{4}{6}{0}%
+%\if@eclip\global\@ecliptrue\fi
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-142,-275){\set@hetatom@sixv{#3}{1}{2}{4}{0}%
+%\if@cclip\global\@ccliptrue\fi
+\storeclipinfo
+}%subst 2
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-68,-406){\setsixringv{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(0,-275){\setsixringv{#4}{2}{4}{6}{0}}%subst 3
+\Put@Direct(-142,-275){\setsixringv{#4}{1}{2}{4}{0}}%subst 2
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \threeheteroi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\threeheterovi}
+% \begin{macrocode}
+\let\threeheterovi=\threeheteroi
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@fusionadd@threevi| is an inner command contained
+% in the definition of |\threeheteroi| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@threevi|.
+%
+% \begin{macro}{\set@fusionadd@threevi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusionadd@threevi}}
+% \begin{macrocode}
+\def\set@fusionadd@threevi{%
+ \if\@@tmpa 0\relax%
+ \putratom{-94}{-120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-94}{-80}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{-52}{-150}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-126}{-150}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-30}{0}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{32}{-130}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-230}{-130}{\scriptsize\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@threevi
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@threevi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@threevi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@threevi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@threevi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa b\relax%
+ \putlratom{29}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{-171}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{29}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{-171}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threevi
+%</hetarom>
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.01}{2013/3/19}{added \cs{oxiranev}, \cs{aziridinev}, and \cs{thiiranev} }
+% \begin{macro}{\oxiranevi}
+% \begin{macro}{\aziridinevi}
+% \begin{macro}{\thiiranevi}
+% \begin{macrocode}
+\def\oxiranevi{\@ifnextchar[{\@oxiranevi[@}{\@oxiranevi[]}}
+\def\@oxiranevi[#1]#2{%
+\iforigpt \typeout{command `oxiranevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==O}{#2}}
+\def\aziridinevi{\@ifnextchar[{\@aziridinevi[@}{\@aziridinevi[]}}
+\def\@aziridinevi[#1]#2{%
+\iforigpt \typeout{command `aziridinevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==N}{#2}}
+\def\thiiranevi{\@ifnextchar[{\@thiiranevi[@}{\@thiiranevi[]}}
+\def\@thiiranevi[#1]#2{%
+\iforigpt \typeout{command `thiiranevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/hetarom.ins b/macros/latex/contrib/xymtex/base/hetarom.ins
new file mode 100644
index 0000000000..dc95b4b86f
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetarom.ins
@@ -0,0 +1,58 @@
+\def\batchfile{hetarom.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 1998, 2000, 2001, 2002, 2004, 2006, 2010, 2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1998 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.00a Released on November 11, 2000
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.00 Released on August 30, 2004
+Version 4.02 Released on December 20, 2004
+Version 4.03b Released on September 5, 2006 (decaheterov, nonaheterov bug fix)
+Version 5.00 Released on October 01, 2010
+
+The Present Version:
+Version 5.01 Released on March 19, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files hetarom.dtx and hetarom.ins
+and the derived file hetarom.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{hetarom.drv}{t}{%
+ \from{hetarom.dtx}{driver}}
+
+\generateFile{hetarom.sty}{t}{%
+ \from{hetarom.dtx}{hetarom}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/hetarom.sty b/macros/latex/contrib/xymtex/base/hetarom.sty
new file mode 100644
index 0000000000..4dda36dc13
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetarom.sty
@@ -0,0 +1,3638 @@
+%%
+%% This is file `hetarom.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hetarom.dtx (with options: `hetarom')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 1998, 2000, 2001, 2002, 2004, 2006, 2010, 2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1998 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.00a Released on November 11, 2000
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.00 Released on August 30, 2004
+%% Version 4.02 Released on December 20, 2004
+%% Version 4.03b Released on September 5, 2006 (decaheterov, nonaheterov bug fix)
+%% Version 5.00 Released on October 01, 2010
+%%
+%% The Present Version:
+%% Version 5.01 Released on March 19, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files hetarom.dtx and hetarom.ins
+%% and the derived file hetarom.sty.
+%%
+%% =======================================
+%%
+%% File: hetarom.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released March 19, 2013 by Shinsaku Fujita}
+\def\j@urnalname{hetarom}
+\def\versi@ndate{March 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}%
+\unitlength=0.1pt%
+\iniatom%
+\def\bonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(6,364)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(35,340)(5,-3){100}% %double bond 1-2
+ \else%
+ \Put@Line(35,352)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+ \def\bondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(138,129)(0,1){148}% %double bond 3-2
+ \else%
+ \Put@Line(138,143)(0,1){134}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(138,129)(0,1){134}% %double bond 3-2
+ \else%
+ \Put@Line(138,143)(0,1){110}% %double bond 3-2
+ \fi%
+ \fi%
+}%
+ \def\bondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+ \else%
+ \Put@Line(6,42)(5,3){100}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,66)(5,3){100}% %double bond 4-3
+ \else%
+ \Put@Line(35,60)(5,3){100}% %double bond 4-3
+ \fi% % line <1OO not available
+ \fi%
+}%
+ \def\bondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+ \else%
+ \Put@Line(-6,42)(-5,3){100}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-35,66)(-5,3){100}% %double bond 4-5
+ \else%
+ \Put@Line(-35,60)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+\def\bonde{%
+ \ifx\fff\empty%
+ \ifx\eee\empty%
+ \Put@Line(-138,129)(0,1){148}% %double bond 5-6
+ \else%
+ \Put@Line(-138,143)(0,1){134}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-138,129)(0,1){134}% %double bond 5-6
+ \else%
+ \Put@Line(-138,143)(0,1){110}% %double bond 5-6
+ \fi%
+ \fi%
+}%
+\def\bondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-6,364)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-35,340)(-5,-3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-35,352)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+\def\bondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-138,270)(1,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(-138,270)(1,0){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(-120,270)(1,0){258}% %double bond 4-3
+ \else%
+ \Put@Line(-120,270)(1,0){239}% %double bond 4-3
+ \fi%
+ \fi}%
+\def\bondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-138,136)(1,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(-138,136)(1,0){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(-120,136)(1,0){258}% %double bond 4-3
+ \else%
+ \Put@Line(-120,136)(1,0){239}% %double bond 4-3
+ \fi%
+ \fi}%
+\def\skbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \else%
+ \Put@Line(0,406)(5,-3){136}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(35,385)(5,-3){136}% %bond 1-2
+ \else%
+ \Put@Line(35,385)(5,-3){100}% %bond 1-2
+ \fi%
+ \fi}%
+\def\skbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \else%
+ \Put@Line(0,406)(-5,-3){136}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-35,385)(-5,-3){136}% %bond 1-6
+ \else%
+ \Put@Line(-35,385)(-5,-3){100}% %bond 1-6
+ \fi%
+ \fi}%
+\def\skbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(5,3){136}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,21)(5,3){138}% %bond 4-3
+ \else%
+ \Put@Line(35,21)(5,3){100}% %bond 4-3
+ \fi%
+ \fi}%
+\def\skbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(-5,3){136}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-35,21)(-5,3){138}% %bond 4-5
+ \else%
+ \Put@Line(-35,21)(-5,3){100}% %bond 4-5
+ \fi%
+ \fi}%
+\def\skbondb{%
+ \ifx\bbb\empty%%
+ \ifx\ccc\empty%%
+ \Put@Line(171,103)(0,1){200}% %bond 3-2
+ \else%
+ \Put@Line(171,143)(0,1){160}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%%
+ \Put@Line(171,103)(0,1){150}% %bond 3-2
+ \else%
+ \Put@Line(171,143)(0,1){110}% %bond 3-2
+ \fi%
+ \fi}%
+\def\skbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(-171,103)(0,1){200}% %bond 5-6
+ \else%
+ \Put@Line(-171,103)(0,1){150}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-171,143)(0,1){160}% %bond 5-6
+ \else%
+ \Put@Line(-171,143)(0,1){110}% %bond 5-6
+ \fi%
+ \fi}%
+\def\skbondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-171,303)(1,0){342}% %bond 4-3
+ \else%
+ \Put@Line(-171,303)(1,0){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(171,303)(-1,0){300}% %bond 4-3
+ \else%
+ \Put@Line(-129,303)(1,0){258}% %bond 4-3
+ \fi%
+ \fi}%
+\def\skbondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-171,103)(1,0){342}% %bond 4-3
+ \else%
+ \Put@Line(-171,103)(1,0){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(171,103)(-1,0){300}% %bond 4-3
+ \else%
+ \Put@Line(-129,103)(1,0){258}% %bond 4-3
+ \fi%
+ \fi}%
+\def\set@outskel@sixv{%
+ \skbonda% bond between 1 and 2
+ \skbondf% bond between 1 and 6
+ \skbondc% bond between 4 and 3
+ \skbondd% bond between 4 and 5
+ \skbondb% bond between 3 and 2
+ \skbonde% bond between 5 and 6
+}
+\def\dotskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,406)(5,-3){171}/(0,406)(171,303)%
+ \else%
+ \dotorline(0,406)(5,-3){136}/(0,406)(136,324)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(35,385)(5,-3){136}/(35,386)(171,303)%
+ \else%
+ \dotorline(35,385)(5,-3){100}/(35,386)(136,324)%
+ \fi%
+ \fi}%
+\def\dotskbondb{%
+ \ifx\bbb\empty%%
+ \ifx\ccc\empty%%
+ \dotorline(171,103)(0,1){200}/(171,103)(171,303)%
+ \else%
+ \dotorline(171,143)(0,1){160}/(171,143)(171,303)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%%
+ \dotorline(171,103)(0,1){150}/(171,103)(171,253)%
+ \else%
+ \dotorline(171,143)(0,1){110}/(171,143)(171,253)%
+ \fi%
+ \fi}%
+\def\dotskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%%
+ \dotorline(0,0)(5,3){171}/(0,0)(171,103)%
+ \else%
+ \dotorline(0,0)(5,3){136}/(0,0)(136,81)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(35,21)(5,3){138}/(35,21)(171,103)%
+ \else%
+ \dotorline(35,21)(5,3){100}/(35,21)(136,81)%
+ \fi%
+ \fi}%
+\def\dotskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \dotorline(0,0)(-5,3){171}/(0,0)(-171,103)%
+ \else%
+ \dotorline(0,0)(-5,3){136}/(0,0)(-136,81)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(-35,21)(-5,3){138}/(-35,21)(-171,103)%
+ \else%
+ \dotorline(-35,21)(-5,3){100}/(-35,21)(-136,81)%
+ \fi%
+ \fi}%
+\def\dotskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \dotorline(-171,103)(0,1){200}/(-171,103)(-171,303)%
+ \else%
+ \dotorline(-171,103)(0,1){150}/(-171,103)(-171,253)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-171,143)(0,1){160}/(-171,143)(-171,303)%
+ \else%
+ \dotorline(-171,143)(0,1){110}/(-171,143)(-171,253)%
+ \fi%
+ \fi}%
+\def\dotskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \dotorline(0,406)(-5,-3){171}/(0,406)(-171,303)%
+ \else%
+ \dotorline(0,406)(-5,-3){136}/(0,406)(-136,325)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-35,385)(-5,-3){136}/(-35,385)(-171,303)%
+ \else%
+ \dotorline(-35,385)(-5,-3){100}/(-35,385)(-136,325)%
+ \fi%
+ \fi}%
+\def\dotskbondhoriz{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(-171,303)(1,0){342}/(-171,303)(171,303)%
+ \else%
+ \dotorline(-171,303)(1,0){300}/(-171,303)(129,303)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(171,303)(-1,0){300}/(171,303)(-129,303)%
+ \else%
+ \dotorline(-129,303)(1,0){258}/(-129,303)(129,303)%
+ \fi%
+ \fi}%
+\def\dotskbondhorizi{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(-171,103)(1,0){342}/(-171,103)(171,103)%
+ \else%
+ \dotorline(-171,103)(1,0){300}/(-171,103)(129,103)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(171,103)(-1,0){300}/(171,103)(-129,103)%
+ \else%
+ \dotorline(-129,103)(1,0){258}/(-129,103)(129,103)%
+ \fi%
+ \fi}%
+\newif\if@skbondlist
+\@skbondlistfalse
+\def\set@skel@bond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dotskbond#3\endcsname% \dotskbonda etc.
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname skbond#3\endcsname% \skbonda etc.
+ }%
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname skbond#3\endcsname% \skbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@bond
+\newif\iflongskbond \longskbondfalse
+\def\set@skel@longbond#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \longskbondtrue%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dot#3\endcsname% \dotskbonda etc.
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname #3\endcsname% \skbonda etc.
+ }%
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname #3\endcsname% \skbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+ \longskbondfalse
+}% end of \set@skel@longbond
+\def\@bond@@omit#1{%
+\@tfor\memBer:=#1\do{%
+\if\memBer a\relax\gdef\@aaa{}\fi%
+\if\memBer A\relax\gdef\@aaa{}\fi%
+\if\memBer b\relax\gdef\@bbb{}\fi%
+\if\memBer B\relax\gdef\@bbb{}\fi%
+\if\memBer c\relax\gdef\@ccc{}\fi%
+\if\memBer C\relax\gdef\@ccc{}\fi%
+\if\memBer d\relax\gdef\@ddd{}\fi%
+\if\memBer D\relax\gdef\@ddd{}\fi%
+\if\memBer e\relax\gdef\@eee{}\fi%
+\if\memBer E\relax\gdef\@eee{}\fi%
+\if\memBer f\relax\gdef\@fff{}\fi%
+\if\memBer F\relax\gdef\@fff{}\fi%
+\if\memBer g\relax\gdef\@ggg{}\fi%
+\if\memBer G\relax\gdef\@ggg{}\fi%
+\if\memBer h\relax\gdef\@hhh{}\fi%
+\if\memBer H\relax\gdef\@hhh{}\fi%
+\if\memBer i\relax\gdef\@iii{}\fi%
+\if\memBer I\relax\gdef\@iii{}\fi%
+\if\memBer j\relax\gdef\@jjj{}\fi%
+\if\memBer J\relax\gdef\@jjj{}\fi%
+\if\memBer k\relax\gdef\@kkk{}\fi%
+\if\memBer K\relax\gdef\@kkk{}\fi%
+}}%
+\def\sixheterov{\@ifnextchar({\@six@heterov(@}{\@six@heterov(@)}}
+\def\@six@heterov(#1){\@ifnextchar[{\@six@@heterov(#1)[@}%
+{\@six@@heterov(#1)[@]}}
+\def\@six@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterov(#1)[#2]{#3}{#4}[@}%
+{\@sixheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterov(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixheterov}%2002/4/30 by S. Fujita
+{%
+\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{c}% bond between 3 and 4 \@ccc -> \skbondc etc
+\set@skel@bond{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 6 and 1 \@fff -> \skbondf etc
+}%
+%%%%%\set@outskel@sixv % replaced by above 1998/12/30
+\@tfor\member:=#2\do{%
+\if\member r\relax \bondd \bondf \bondb%
+\else\if\member l\relax \bonda \bondc \bonde%
+\else\if\member a\relax \bonda%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondc%
+\else\if\member d\relax \bondd%
+\else\if\member e\relax \bonde%
+\else\if\member f\relax \bondf%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixv%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+\set@hetatom@sixv{#3}{0}{0}{7}{0}% %atom 1--6%
+\setsixringv{#4}{0}{0}{7}{0}% %subst 1--6
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \sixheterov macro
+\def\sixheterovi{\@ifnextchar({\@six@heterovi(@}{\@six@heterovi(@)}}
+\def\@six@heterovi(#1){\@ifnextchar[{\@six@@heterovi(#1)[@}%
+{\@six@@heterovi(#1)[@]}}
+\def\@six@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterovi(#1)[#2]{#3}{#4}[@}%
+{\@sixheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterovi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{c}{b}{a}{f}{e}%
+\@reset@ylsw%
+\ylposition{#4}{5}{0}{5}{-1}% %subst 1--4
+\ylposition{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){sixheterovi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@bond{#1}{c}{a}% bond between 3 and 4 \@ccc -> \skbonda etc
+\set@skel@bond{#1}{d}{f}% bond between 4 and 5 \@ddd -> \skbondf etc
+\set@skel@bond{#1}{e}{e}% bond between 5 and 6 \@eee -> \skbonde etc
+\set@skel@bond{#1}{f}{d}% bond between 6 and 1 \@fff -> \skbondd etc
+}%
+%%%\set@outskel@sixv% replaced by the above 1998/12/30
+\@tfor\member:=#2\do{%
+\if\member r\relax \bondd \bondf \bondb%
+\else\if\member l\relax \bonda \bondc \bonde%
+\else\if\member a\relax \bondc%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bonda%
+\else\if\member d\relax \bondf%
+\else\if\member e\relax \bonde%
+\else\if\member f\relax \bondd%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixvi%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}%
+\set@hetatom@sixv{#3}{5}{0}{5}{-1}% %atom 1--4%
+\set@hetatom@sixv{#3}{11}{4}{7}{-1}% %atom 5 and 6%
+\setsixringv{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringv{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \sixheterovi macro
+\def\pyridinev{\@ifnextchar[{\@pyridinev[@}{\@pyridinev[r]}}
+\def\@pyridinev[#1]#2{%
+\iforigpt \typeout{command `pyridinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N}{#2}}%end of \pyridinev macro
+\def\pyridinevi{\@ifnextchar[{\@pyridinevi[@}{\@pyridinevi[r]}}
+\def\@pyridinevi[#1]#2{%
+\iforigpt \typeout{command `pyridinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N}{#2}}%end of \pyridinevi macro
+\def\pyrazinev{\@ifnextchar[{\@pyrazinev[@}{\@pyrazinev[r]}}
+\def\@pyrazinev[#1]#2{%
+\iforigpt \typeout{command `pyrazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;4==N}{#2}}%end of \pyrazinev macro
+\def\pyrazinevi{\@ifnextchar[{\@pyrazinevi[@}{\@pyrazinevi[r]}}
+\def\@pyrazinevi[#1]#2{%
+\iforigpt \typeout{command `pyrazinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;4==N}{#2}}%end of \pyrazinevi macro
+\def\pyrimidinev{\@ifnextchar[{\@pyrimidinev[@}{\@pyrimidinev[r]}}
+\def\@pyrimidinev[#1]#2{%
+\iforigpt \typeout{command `pyrimidinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;3==N}{#2}}%end of \pyrimidinev macro
+\def\pyrimidinevi{\@ifnextchar[{\@pyrimidinevi[@}{\@pyrimidinevi[r]}}
+\def\@pyrimidinevi[#1]#2{%
+\iforigpt \typeout{command `pyrimidinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;3==N}{#2}}%end of \pyrimidinevi macro
+\def\pyridazinev{\@ifnextchar[{\@pyridazinev[@}{\@pyridazinev[r]}}
+\def\@pyridazinev[#1]#2{%
+\iforigpt \typeout{command `pyridazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;2==N}{#2}}%end of \pyridazinev macro
+\def\pyridazinevi{\@ifnextchar[{\@pyridazinevi[@}{\@pyridazinevi[r]}}
+\def\@pyridazinevi[#1]#2{%
+\iforigpt \typeout{command `pyridazinev' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;2==N}{#2}}%end of \pyridazinevi macro
+\def\triazinev{\@ifnextchar[{\@triazinev[@}{\@triazinev[r]}}
+\def\@triazinev[#1]#2{%
+\iforigpt \typeout{command `triazinev' %
+ is based on `sixheterov'.}\fi%
+\sixheterov[#1]{1==N;3==N;5==N}{#2}}%end of \triazinev macro
+\def\triazinevi{\@ifnextchar[{\@triazinevi[@}{\@triazinevi[r]}}
+\def\@triazinevi[#1]#2{%
+\iforigpt \typeout{command `triazinevi' %
+ is based on `sixheterovi'.}\fi%
+\sixheterovi[#1]{1==N;3==N;5==N}{#2}}%end of \triazinevi macro
+\def\fiveheterov{\@ifnextchar({\@five@heterov(@}{\@five@heterov(@)}}
+\def\@five@heterov(#1){\@ifnextchar[{\@five@@heterov(#1)[@}%
+{\@five@@heterov(#1)[@]}}
+\def\@five@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterov(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterov(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{c}{b}{f}{e}{a}%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{5}{-1}% % for 1 to 3
+\ylposition{#4}{10}{4}{7}{-1}% % for 4 to 5
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fiveheterov}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhoriz}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \bondc%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondhoriz%
+\else\if\member d\relax \bonde%
+\else\if\member e\relax \bondd%
+\else\if\member A\relax%
+ \Put@oCircle(0,173){180}%aromatic circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivev
+\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixv{#3}{5}{1}{5}{-1}% % for 1 to 3
+\set@hetatom@sixv{#3}{10}{4}{7}{-1}% % for 4 to 5
+\setsixringv{#4}{5}{1}{5}{-1}% % for 1 to 3
+\setsixringv{#4}{10}{4}{7}{-1}% % for 4 to 5
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \fiveheterov macro
+\def\fiveheterovi{\@ifnextchar({\@five@heterovi(@}{\@five@heterovi(@)}}
+\def\@five@heterovi(#1){\@ifnextchar[{\@five@@heterovi(#1)[@}%
+{\@five@@heterovi(#1)[@]}}
+\def\@five@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterovi(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterovi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{d}% d -- dummy
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{4}{0}% % for 1 to 3
+\ylposition{#4}{1}{4}{7}{0}% % for 4 to 5
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-\shiftii,-\shifti){fiveheterov}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bond{#1}{a}{a}% bond between 1 and 2 \@aaa -> \skbonda etc
+\set@skel@bond{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{skbondhorizi}%
+ % bond between 3 and 4 \@ccc -> \skbondhorizi etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 5 and 6 \@eee -> \skbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else\if\member a\relax \bonda%
+\else\if\member b\relax \bondb%
+\else\if\member c\relax \bondhorizi%
+\else\if\member d\relax \bonde%
+\else\if\member e\relax \bondf%
+\else\if\member A\relax%
+ \Put@oCircle(0,233){180}%aromatic circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivevi
+\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixv{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixv{#3}{1}{4}{7}{0}% % for 4 to 5
+\setsixringv{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringv{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnv}\iniatom\iniflag}% %end of \fiveheterovi macro
+\def\pyrrolev{\@ifnextchar[{\@pyrrolev[@}{\@pyrrolev[bd]}}
+\def\@pyrrolev[#1]#2{%
+\iforigpt \typeout{command `pyrrolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N}{#2}}
+\def\pyrazolev{\@ifnextchar[{\@pyrazolev[@}{\@pyrazolev[bd]}}
+\def\@pyrazolev[#1]#2{%
+\iforigpt \typeout{command `pyrazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N;2==N}{#2}}
+\def\imidazolev{\@ifnextchar[{\@imidazolev[@}{\@imidazolev[bd]}}
+\def\@imidazolev[#1]#2{%
+\iforigpt \typeout{command `imidazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==N;3==N}{#2}}
+\def\isoxazolev{\@ifnextchar[{\@isoxazolev[@}{\@isoxazolev[bd]}}
+\def\@isoxazolev[#1]#2{%
+\iforigpt \typeout{command `isoxazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O;2==N}{#2}}
+\def\oxazolev{\@ifnextchar[{\@oxazolev[@}{\@oxazolev[bd]}}
+\def\@oxazolev[#1]#2{%
+\iforigpt \typeout{command `oxazolev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O;3==N}{#2}}
+\def\furanv{\@ifnextchar[{\@furanv[@}{\@furanv[bd]}}
+\def\@furanv[#1]#2{%
+\iforigpt \typeout{command `furanv' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==O}{#2}}
+\def\thiophenev{\@ifnextchar[{\@thiophenev[@}{\@thiophenev[bd]}}
+\def\@thiophenev[#1]#2{%
+\iforigpt \typeout{command `thiophenev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{1==S}{#2}}
+\def\pyrrolevi{\@ifnextchar[{\@pyrrolevi[@}{\@pyrrolevi[bd]}}
+\def\@pyrrolevi[#1]#2{%
+\iforigpt \typeout{command `pyrrolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N}{#2}}
+\def\pyrazolevi{\@ifnextchar[{\@pyrazolevi[@}{\@pyrazolevi[bd]}}
+\def\@pyrazolevi[#1]#2{%
+\iforigpt \typeout{command `pyrazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N;2==N}{#2}}
+\def\imidazolevi{\@ifnextchar[{\@imidazolevi[@}{\@imidazolevi[bd]}}
+\def\@imidazolevi[#1]#2{%
+\iforigpt \typeout{command `imidazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==N;3==N}{#2}}
+\def\isoxazolevi{\@ifnextchar[{\@isoxazolevi[@}{\@isoxazolevi[bd]}}
+\def\@isoxazolevi[#1]#2{%
+\iforigpt \typeout{command `isoxazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O;2==N}{#2}}
+\def\oxazolevi{\@ifnextchar[{\@oxazolevi[@}{\@oxazolevi[bd]}}
+\def\@oxazolevi[#1]#2{%
+\iforigpt \typeout{command `oxazolevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O;3==N}{#2}}
+\def\furanvi{\@ifnextchar[{\@furanvi[@}{\@furanvi[bd]}}
+\def\@furanvi[#1]#2{%
+\iforigpt \typeout{command `furanvi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==O}{#2}}
+\def\thiophenevi{\@ifnextchar[{\@thiophenevi[@}{\@thiophenevi[bd]}}
+\def\@thiophenevi[#1]#2{%
+\iforigpt \typeout{command `thiophenevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{1==S}{#2}}
+\def\decaheterov{\@ifnextchar({\@deca@heterov(@}{\@deca@heterov(@)}}
+\def\@deca@heterov(#1){\@ifnextchar[{\@deca@@heterov(#1)[@}%
+{\@deca@@heterov(#1)[@]}}
+\def\@deca@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterov(#1)[#2]{#3}{#4}[@}%
+{\@decaheterov(#1)[#2]{#3}{#4}[@]}}%
+\def\@decaheterov(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\test@vertix@decav{#3}{g}{h}{i}{j}{@}{@}%
+\@reset@ylsw%
+\ylhetposition{#4}{0}{0}{5}{0}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-1}{3}{7}{0}% %substituents on 5 to 7
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-7}{0}{2}{0}% %substituent on 8
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{7}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{1}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterov}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@bond{#1}{c}{c}}%
+ % bond between 3 and 4 \@ccc -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{d}{d}}%
+ % bond between 4 and 4a \@ddd -> \skbondd etc
+\Put@Direct(342,0){\set@skel@bond{#1}{k}{e}}%
+ % bond between 4a and 8a \@kkk -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{f}}%
+ % bond between 8a and 1 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee \let\eee=\fff \let\fff=\gggA%
+ \let\ccc=\iii \let\bbb=\jjj%
+\set@skel@bond{#1}{i}{a}% bond between 8 and 8a \@iii -> \skbonda etc
+\set@skel@bond{#1}{e}{c}% bond between 5 and 4a \@eee -> \skbondc etc
+\set@skel@bond{#1}{f}{d}% bond between 5 and 6 \@fff -> \skbondd etc
+\set@skel@bond{#1}{g}{e}% bond between 6 and 7 \@ggg -> \skbonde etc
+\set@skel@bond{#1}{h}{f}% bond between 7 and 8 \@hhh -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member b\relax
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member d\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%1998/10/17
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{0}{0}{5}{0}%
+\storeclipinfo%2001/06/20
+}% %substituents on 1 to 4
+{%
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+ \set@hetatom@sixv{#3}{-1}{3}{7}{0}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+ \@clipfalse%2006/9/5added
+\storeclipinfo%2001/06/20
+}%substituents on 5 to 7
+}{%
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+ \set@hetatom@sixv{#3}{-7}{0}{2}{0}%
+%% \@hclipfalse \if@aclip \global\@hcliptrue \fi
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+ \@aclipfalse%2006/9/5added
+\storeclipinfo%%2001/06/20
+%%====\clipinfo====%%%2006/9/5test
+}%%substituent on 8
+}{%
+\Put@Direct(0,0){\set@vrtx@fuse{#3}%
+\storeclipinfo%%2001/06/20
+}% fused positions
+}%
+\developclipinfo%%2001/06/20
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%2006/9/5bugfix
+\Put@Direct(342,0){\setsixringv{#4}{0}{0}{5}{0}}% %substituents on 1 to 4
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+ \@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{-1}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 8
+\Put@Direct(0,0){\setsixringv{#4}{-7}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-8}{7}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-9}{1}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterov macro
+\def\clipdetection{%
+\ifx\aaa\empty\else%
+ \@acliptrue%
+\fi%
+\ifx\bbb\empty\else%
+ \@bcliptrue%
+\fi%
+\ifx\ccc\empty\else%
+ \@ccliptrue%
+\fi%
+\ifx\ddd\empty\else%
+ \@cliptrue%
+\fi%
+{\let\eee=\iii%
+\ifx\eee\empty\else%
+ \@icliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+{\let\fff=\jjj%
+\ifx\fff\empty\else%
+ \@jcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+{\let\ddd=\eee%
+\ifx\ddd\empty\else
+ \@ecliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+{\let\eee=\fff%
+\ifx\eee\empty\else%
+ \@fcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+{\let\fff=\gggA%
+\ifx\fff\empty\else%
+ \@gcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+{\let\aaa=\hhh%
+\ifx\aaa\empty\else%
+ \@hcliptrue%
+ \storeclipinfo%2001/06/20
+\fi%
+}%
+\developclipinfo%2001/06/20
+}% end \clipdetection
+\def\ylhetposition#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty
+ \ifx\hhh\empty% aaa and hhh are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% hhh is present
+ \def\@ylii{0}\def\@yli{-442}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \def\@ylii{0}\def\@yli{-442}\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or\ifx\bbb\empty
+ \def\@ylii{-171}\def\@yli{-303}\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \def\@ylii{-213}\def\@yli{-327}\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \def\@ylii{-171}\def\@yli{-103}\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \def\@ylii{-213}\def\@yli{-79}\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or\ifx\ddd\empty
+ \ifx\eee\empty% ddd and eee are absent
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else% eee present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \ifx\iii\empty
+ \ifx\fff\empty% eee, iii and fff are absent
+ \def\@ylii{171}\def\@yli{-103}\@ylswtrue%\@yletrue% subst. on 5 refined 2013/03/25
+ \else% fff is present
+ \def\@ylii{213}\def\@yli{-79}\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \fi
+ \else% eee is present
+ \def\@ylii{171}\def\@yli{-103}\@ylswtrue%\@yletrue% subst. on 5 bug fix 2013/03/25
+ \fi
+ \or
+ \ifx\fff\empty
+ \ifx\jjj\empty
+ \ifx\gggA\empty% fff, jjj, and ggg are absent
+ \def\@ylii{171}\def\@yli{-303}\@ylswtrue%\@ylftrue% subst. on 6 refined 2013/03/25
+ \else%ggg is present
+ \def\@ylii{213}\def\@yli{-327}\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+ \fi
+ \else%fff is present
+ \def\@ylii{213}\def\@yli{-327}\@ylswtrue%\@ylftrue% subst. on 6
+ \fi%
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\decaheterovi{\@ifnextchar({\@deca@heterovi(@}{\@deca@heterovi(@)}}
+\def\@deca@heterovi(#1){\@ifnextchar[{\@deca@@heterovi(#1)[@}%
+{\@deca@@heterovi(#1)[@]}}
+\def\@deca@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovi(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovi(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+%%\test@vertix@sixv{#3}{d}{c}{b}{a}{h}{g}%
+%%\test@vertix@decav{#3}{f}{e}{i}{j}{@}{@}%{i}{j} fixed
+\test@vertix@decavi{#3}%
+\@reset@ylsw%
+\ylhetposition{#4}{5}{0}{5}{-1}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{12}{3}{7}{-1}% %substituents on 6 to 8
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetposition{#4}{-4}{0}{2}{0}% %substituent on 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \ylatombondposition{#4}{-9}{7}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{1}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterovi}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{c}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 3 and 4 \@ccc -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{d}}%
+ % bond between 4 and 4a \@ddd -> \skbondd etc
+\Put@Direct(342,0){\set@skel@bond{#1}{k}{e}}%
+ % bond between 4a and 8a \@kkk -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{d}{f}}%
+ % bond between 8a and 1 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{e}{a}% bond between 8 and 8a \@eee -> \skbonda etc
+\set@skel@bond{#1}{i}{c}% bond between 5 and 4a \@iii -> \skbondc etc
+\set@skel@bond{#1}{h}{d}% bond between 5 and 6 \@hhh -> \skbondd etc
+\set@skel@bond{#1}{g}{e}% bond between 6 and 7 \@ggg -> \skbonde etc
+\set@skel@bond{#1}{f}{f}% bond between 7 and 8 \@fff -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member d\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 8a
+}%
+\else\if\member e\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 8 and 8a
+}%
+\else\if\member f\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 7
+}%
+\else\if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 5 and 6
+}%
+\else\if\member i\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 5 and 4a
+}%
+\else\if\member j\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 4 and 4a
+}%
+\else\if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(342,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{4a}\def\aay{8a}\def\aaz{10}%
+ \if\@@tmpa 4\relax% % plus charge etc.
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax% 1998/10/17 by S. Fujita
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag\iniatom%
+\@tmpclipfalse
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{12}{3}{7}{-1}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%%bug fix 2013/03/25
+ \@fclipfalse \if@eclip \@fcliptrue \fi%%bug fix 2013/03/25
+ \@eclipfalse \if@clip \@ecliptrue \@clipfalse \fi%%bug fix 2013/03/25
+\storeclipinfo
+}%substituents on 6 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-4}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \@aclipfalse\fi%bug fix 2013/03/25
+ \storeclipinfo
+}%%substituent on 5
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevi{#3}%
+ \@tmpclipfalse
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \fi
+ \if@tmpclip \@jcliptrue \fi
+ \storeclipinfo
+}% fused positions
+\developclipinfo
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{5}{0}{5}{-1}%
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(342,0){\setsixringv{#4}{5}{0}{5}{-1}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 6 to 8
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{12}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 5
+\Put@Direct(0,0){\setsixringv{#4}{-4}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-9}{7}}% %10 for 8a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{1}}% %9 for 4a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovi macro
+\newif\if@tmpclip \@tmpclipfalse
+\def\test@vertix@decavi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%3
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\jjj{@}%4a
+ \else\if\@tmpb s%
+ \def\aaa{}%4
+ \else\if\@tmpb h%
+ \def\aaa{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\aaa{@}%4
+ \fi\fi\fi\fi%
+ \or%5
+ \if\@tmpb s\relax\def\hhh{}\else\def\hhh{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%7
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%
+ \if\@tmpb a%
+ \xdef\iii{@}%8a
+ \else\if\@tmpb s%
+ \xdef\eee{}%8s
+ \else\if\@tmpb h%
+ \xdef\eee{@}%8h
+ \else\ifx\@tmpb\empty%
+ \xdef\eee{@}%8
+ \fi\fi\fi\fi%
+\or%9 (= 4a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\or%10 (= 8a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\fi\fi}}
+\def\set@vrtx@decafusevi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+ \@icliptrue%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\or%10 (= 8a)
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevi
+\def\set@fusion@decavi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(342,0){\set@fusionadd@sixvi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decavi
+\def\decaheterovb{\@ifnextchar({\@deca@heterovb(@}{\@deca@heterovb(@)}}
+\def\@deca@heterovb(#1){\@ifnextchar[{\@deca@@heterovb(#1)[@}%
+{\@deca@@heterovb(#1)[@]}}
+\def\@deca@@heterovb(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovb(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovb(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovb(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@decavb{#3}%
+\@reset@ylsw%
+{\let\eee=\ddd\let\ddd=\ccc
+\let\ccc=\bbb\let\bbb=\aaa
+\ylhetpositionb{#4}{1}{1}{6}{0}% %substituents on 1 to 4
+}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylhetpositionb{#4}{0}{4}{7}{0}% %substituents on 5 to 6
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{\let\aaa=\gggA \let\bbb=\hhh
+\ylhetpositionb{#4}{-6}{0}{3}{0}% %substituents on 7 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{9}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{3}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-406}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1000,1200)(-550,-240){decaheterob}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\eee=\ddd\let\ddd=\ccc
+ \let\ccc=\bbb\let\bbb=\aaa
+ \let\aaa=\jjj \let\fff=\iii
+\set@skel@bond{#1}{j}{a}% bond between 8a and 1 \@jjj -> \skbonda etc
+\set@skel@bond{#1}{a}{b}% bond between 1 and 2 \@aaa -> \skbondb etc
+\set@skel@bond{#1}{b}{c}% bond between 2 and 3 \@bbb -> \skbondc etc
+\set@skel@bond{#1}{c}{d}% bond between 3 and 4 \@ccc -> \skbondd etc
+\set@skel@bond{#1}{d}{e}% bond between 4 and 4a \@ddd -> \skbonde etc
+\set@skel@bond{#1}{k}{f}% bond between 4a and 8a \@kkk -> \skbondf etc
+}%
+{\let\aaa=\gggA\let\bbb=\hhh\let\ccc=\jjj\let\ddd=\iii
+\Put@Direct(-171,303){\set@skel@bond{#1}{h}{a}}%
+ % bond between 7 and 8 \@hhh -> \skbonda etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{i}{b}}%
+ % bond between 8 and 8a \@iii -> \skbondb etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{e}{d}}%
+ % bond between 4a and 5 \@eee -> \skbondd etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \skbonde etc
+\Put@Direct(-171,303){\set@skel@bond{#1}{g}{f}}%
+ % bond between 6 and 7 \@ggg -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\gggA\let\bbb=\hhh\let\ccc=\jjj\let\ddd=\iii
+ \Put@Direct(-171,303){\bonda}% bond between 7 and 8
+ \Put@Direct(-171,303){\bonde}% bond between 5 and 6
+}%
+{\let\eee=\ddd\let\ddd=\ccc
+ \let\ccc=\bbb\let\bbb=\aaa
+ \let\aaa=\jjj \let\fff=\iii
+ \Put@Direct(0,0){\bondb}% bond between 1 and 2
+ \Put@Direct(0,0){\bondd}% bond between 3 and 4
+ \Put@Direct(0,0){\bondf}% bond between 4a and 4b
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+{\let\ccc=\bbb\let\bbb=\aaa
+ \Put@Direct(0,0){\bondb}% bond between 1 and 2
+}%
+\else\if\member b\relax
+{\let\ddd=\ccc\let\ccc=\bbb
+ \Put@Direct(0,0){\bondc}% bond between 2 and 3
+}%
+\else\if\member c\relax
+{\let\eee=\ddd\let\ddd=\ccc
+ \Put@Direct(0,0){\bondd}% bond between 3 and 4
+}%
+\else\if\member d\relax%
+{\let\fff=\eee\let\eee=\ddd
+ \Put@Direct(0,0){\bonde}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ddd=\iii%
+ \Put@Direct(-171,303){\bondd}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+ \Put@Direct(-171,303){\bonde}% bond between 5 and 6
+\else\if\member g\relax%
+{\let\aaa=\gggA
+ \Put@Direct(-171,303){\bondf}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\aaa=\gggA \let\bbb=\hhh%
+ \Put@Direct(-171,303){\bonda}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\bbb=\hhh \let\ccc=\jjj%
+ \Put@Direct(-171,303){\bondb}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\bbb=\aaa\let\aaa=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\aaa=\jjj\let\fff=\iii%
+ \Put@Direct(0,0){\bondf}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\ccc=\jjj\let\ddd=\iii%
+ \Put@Direct(-171,303){\bondc}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(-171,506){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-120}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-209}{431}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-209}{546}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-209}{585}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{-111}{546}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{-209}{371}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavb
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag\iniatom
+\Put@Direct(-171,303){\set@hetatom@sixv{#3}{0}{4}{7}{0}%
+\storeclipinfo
+}% %substituents on 5 to 6
+\developclipinfo
+\Put@Direct(-171,303){\set@hetatom@sixv{#3}{-6}{0}{3}{0}%
+ \@gclipfalse \if@aclip \@gcliptrue \fi%
+ \@hclipfalse \if@bclip \@hcliptrue \@bclipfalse \fi%bugfix 2013/03/23
+\storeclipinfo
+}% %substituents on 7 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevb{#3}%
+\storeclipinfo
+}%9 %for 4a position, %10 for 8a position
+\developclipinfo
+\Put@Direct(0,0){\iniflag%2000/11/11 by S. Fujita
+\set@hetatom@sixv{#3}{1}{1}{6}{0}%
+\@aclipfalse \if@bclip \@acliptrue \fi%
+\@bclipfalse \if@cclip \@bcliptrue \fi%
+\@cclipfalse \if@clip \@ccliptrue \fi%
+\@clipfalse \if@eclip \@cliptrue \fi%
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%
+\@eclipfalse \if@clip \@ecliptrue \fi%
+\@clipfalse \if@cclip \@cliptrue \fi%
+\@cclipfalse \if@bclip \@ccliptrue \fi%
+\@bclipfalse \if@aclip \@bcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{1}{1}{6}{0}}% %substituents on 1 to 4
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+\Put@Direct(-171,303){\setsixringv{#4}{0}{4}{7}{0}}% %substituents on 5 to 6
+}%
+{%
+ \@aclipfalse \if@gclip \@acliptrue \fi%
+ \@bclipfalse \if@hclip \@bcliptrue \fi%
+\Put@Direct(-171,303){\setsixringv{#4}{-6}{0}{3}{0}}% %substituents on 7 to 8
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(-171,303){\setatombond{#4}{-8}{9}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(0,406){\setatombond{#4}{-9}{3}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovb macro
+\def\ylhetpositionb#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty%
+ \ifx\gggA\empty% aaa and ggg are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% ggg is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \ifx\hhh\empty% aaa and hhh are absent
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else%hhh is present
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or\ifx\ccc\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \gdef\@ylii{173}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else% eee is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \gdef\@ylii{173}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else%fff is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\test@vertix@decavb#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or% \xdef\aaa{\@memberb}%1
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or% \xdef\bbb{\@memberb}%2
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or% \xdef\ccc{\@memberb}%3
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\iii{@}%4a
+ \else\if\@tmpb s%
+ \def\ddd{}%4
+ \else\if\@tmpb h%
+ \def\ddd{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\ddd{@}%4
+ \fi\fi\fi\fi%
+ \or% \xdef\eee{\@memberb}%5
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or% \xdef\fff{\@memberb}%6
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or% \xdef\gggA{\@memberb}%7
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%
+ \if\@tmpb a%
+ \def\jjj{@}%8a
+ \else\if\@tmpb s%
+ \def\hhh{}%8
+ \else\if\@tmpb h%
+ \def\hhh{@}%4
+ \else\ifx\@tmpb\empty%
+ \def\hhh{@}%4
+ \fi\fi\fi\fi%
+\or% \xdef\iii{\@memberb}%9 (= 4a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\or% \xdef\jjj{\@memberb}%10 (= 8a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\fi\fi}%
+}% end of the macro \test@vertix@decavb
+\def\set@vrtx@decafusevb#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{-135}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putratom{-31}{356}{\@memberb}% % right type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putlatom{-135}{280}{\@memberb}% % left type
+\or%10 (= 8a)
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putratom{-31}{356}{\@memberb}% % right type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevb
+\def\decaheterovt{\@ifnextchar({\@deca@heterovt(@}{\@deca@heterovt(@)}}
+\def\@deca@heterovt(#1){\@ifnextchar[{\@deca@@heterovt(#1)[@}%
+{\@deca@@heterovt(#1)[@]}}
+\def\@deca@@heterovt(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterovt(#1)[#2]{#3}{#4}[@}%
+{\@decaheterovt(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterovt(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@decavb{#3}%
+\@reset@ylsw%
+{\let\fff=\aaa
+\ylhetpositiont{#4}{5}{5}{7}{0}% %substituent on 1
+}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{\let\aaa=\bbb\let\bbb=\ccc\let\ccc=\ddd
+\ylhetpositiont{#4}{-1}{0}{4}{0}% %substituents on 2 to 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{\let\ccc=\eee\let\ddd=\fff
+\let\eee=\gggA\let\fff=\hhh
+\ylhetpositiont{#4}{-2}{2}{7}{0}% %substituents on 5 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{5}% %9 %for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{11}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{-406}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){decaheterovt}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{%
+ \let\fff=\aaa \let\aaa=\bbb \let\bbb=\ccc
+ \let\ccc=\ddd \let\ddd=\iii \let\eee=\jjj
+\Put@Direct(171,303){\set@skel@bond{#1}{b}{a}}%
+ % bond between 2 and 3 \@bbb -> \skbonda etc
+\Put@Direct(171,303){\set@skel@bond{#1}{c}{b}}%
+ % bond between 3 and 4 \@ccc -> \skbondb etc
+\Put@Direct(171,303){\set@skel@bond{#1}{d}{c}}%
+ % bond between 4 and 4a \@ddd -> \skbondc etc
+\Put@Direct(171,303){\set@skel@bond{#1}{k}{d}}%
+ % bond between 4a and 8a \@kkk -> \skbondd etc
+\Put@Direct(171,303){\set@skel@bond{#1}{j}{e}}%
+ % bond between 8a and 1 \@jjj -> \skbonde etc
+\Put@Direct(171,303){\set@skel@bond{#1}{a}{f}}%
+ % bond between 1 and 2 \@aaa -> \skbondf etc
+}%
+{%
+ \let\aaa=\jjj\let\bbb=\iii
+ \let\ccc=\eee\let\ddd=\fff
+ \let\eee=\gggA\let\fff=\hhh
+\set@skel@bond{#1}{e}{b}% bond between 4a and 5 \@eee -> \skbondb etc
+\set@skel@bond{#1}{f}{c}% bond between 5 and 6 \@fff -> \skbondc etc
+\set@skel@bond{#1}{g}{d}% bond between 6 and 7 \@ggg -> \skbondd etc
+\set@skel@bond{#1}{h}{e}% bond between 7 and 8 \@hhh -> \skbonde etc
+\set@skel@bond{#1}{i}{f}% bond between 8 and 8a \@iii -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{%
+ \let\ccc=\eee\let\ddd=\fff\let\eee=\gggA\let\fff=\gggA
+ \Put@Direct(0,0){\bondc}% bond between 7 and 8
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+{%
+ \let\fff=\aaa\let\aaa=\bbb
+ \let\bbb=\ccc\let\ccc=\ddd
+ \let\ddd=\iii\let\eee=\jjj
+ \Put@Direct(171,303){\bondf}% bond between 1 and 2
+ \Put@Direct(171,303){\bondb}% bond between 3 and 4
+ \Put@Direct(171,303){\bondd}% bond between 4a and 8a
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+{\let\fff=\aaa\let\aaa=\bbb
+ \Put@Direct(171,303){\bondf}% bond between 1 and 2
+}%
+\else\if\member b\relax
+{\let\aaa=\bbb\let\bbb=\ccc
+ \Put@Direct(171,303){\bonda}% bond between 2 and 3
+}%
+\else\if\member c\relax
+{\let\bbb=\ccc\let\ccc=\ddd
+ \Put@Direct(171,303){\bondb}% bond between 3 and 4
+}%
+\else\if\member d\relax%
+{\let\ccc=\ddd\let\ddd=\eee
+ \Put@Direct(171,303){\bondc}% bond between 4 and 4a
+}%
+\else\if\member e\relax%
+{\let\ccc=\eee\let\bbb=\iii%
+ \Put@Direct(0,0){\bondb}% bond between 5 and 4a
+}%
+\else\if\member f\relax%
+{\let\ccc=\eee\let\ddd=\fff
+ \Put@Direct(0,0){\bondc}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\ddd=\fff\let\eee=\gggA
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\eee=\gggA \let\fff=\hhh%
+ \Put@Direct(0,0){\bonde}% bond between 8 and 7
+}%
+\else\if\member i\relax%
+{\let\aaa=\jjj \let\fff=\hhh%
+ \Put@Direct(0,0){\bondf}% bond between 8 and 8a
+}%
+\else\if\member j\relax%
+{\let\fff=\aaa\let\eee=\jjj%
+ \Put@Direct(171,303){\bonde}% bond between 1 and 8a
+}%
+\else\if\member k\relax%
+{\let\aaa=\jjj\let\bbb=\iii%
+ \Put@Direct(0,0){\bonda}% bond between 8a and 4a
+}%
+\else\if\member K\relax%
+{\let\eee=\jjj\let\ddd=\iii%
+ \Put@Direct(171,303){\bondd}% bond between 8a and 4a in the other ring
+}%
+\else\if\member A%left aromatic circle
+ \Put@oCircle(171,506){240}% %circle
+\else\if\member B%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 1\relax% % plus charge etc.
+ \putlatom{111}{546}{\@@tmpb}% % left type
+ \else\if\@@tmpa 2\relax%
+ \putlatom{209}{585}{\@@tmpb}% % left type
+ \else\if\@@tmpa 3\relax%
+ \putratom{209}{546}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{209}{431}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-120}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decavt
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-2}{2}{7}{0}%
+ \@hclipfalse \if@fclip \@hcliptrue \fi%
+ \@gclipfalse \if@eclip \@gcliptrue \fi%
+ \@fclipfalse \if@clip \@fcliptrue \fi%
+ \@eclipfalse \if@cclip \@ecliptrue \fi%
+\storeclipinfo
+}% %substituents on 5 to 8
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusevt{#3}%
+\storeclipinfo
+}%9 %for 4a position, %10 for 8a position
+\developclipinfo
+\Put@Direct(171,303){\set@hetatom@sixv{#3}{-1}{0}{4}{0}%
+\@clipfalse \if@cclip \@cliptrue \fi%
+\@cclipfalse \if@bclip \@ccliptrue \fi%
+\@bclipfalse \if@aclip \@bcliptrue \@aclipfalse \fi%
+\storeclipinfo
+}% %substituents on 2 to 4
+\developclipinfo
+{%
+\@fclipfalse%locally cancelled 1999/2/15 by Shinsaku Fujita
+\Put@Direct(171,303){\set@hetatom@sixv{#3}{5}{5}{7}{0}%
+\@aclipfalse \if@fclip \@acliptrue \fi%
+\storeclipinfo
+}% %substituent on 1
+\developclipinfo
+}%
+\global\drawsamesubsttrue%2002/05/30 warning on
+{%
+\@fclipfalse \if@aclip \@fcliptrue \fi%
+\Put@Direct(171,303){\setsixringv{#4}{5}{5}{7}{0}}% %substituent on 1
+}%
+\global\drawsamesubstfalse%2002/05/30 warning off
+{%
+\@aclipfalse \if@bclip \@acliptrue \fi%
+\@bclipfalse \if@cclip \@bcliptrue \fi%
+\@cclipfalse \if@clip \@ccliptrue \fi%
+\Put@Direct(171,303){\setsixringv{#4}{-1}{0}{4}{0}}% %substituents on 2 to 4
+}%
+{%
+ \@cclipfalse \if@eclip \@ccliptrue \fi%
+ \@clipfalse \if@fclip \@cliptrue \fi%
+ \@eclipfalse \if@gclip \@ecliptrue \fi%
+ \@fclipfalse \if@hclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{-2}{2}{7}{0}}% %substituents on 5 to 8
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{5}}% %9 %for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(0,406){\setatombond{#4}{-9}{11}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \decaheterovt macro
+\def\ylhetpositiont#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}\relax%
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty%
+ \ifx\bbb\empty% aaa and bbb are absent
+ \gdef\@ylii{0}\gdef\@yli{-406}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else% bbb is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \else%aaa is present
+ \gdef\@ylii{0}\gdef\@yli{-442}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \ifx\ccc\empty% aaa and ccc are absent
+ \gdef\@ylii{-171}\gdef\@yli{-303}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else%ccc is present
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \else
+ \gdef\@ylii{-213}\gdef\@yli{-327}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or
+ \ifx\ccc\empty
+ \ifx\ddd\empty
+ \ifx\eee\empty% ccc, ddd, eee are absent
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue%\@ylctrue%subst. on 3
+ \else%eee is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \else%ddd is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \else%ccc is present
+ \gdef\@ylii{-213}\gdef\@yli{-79}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \ifx\fff\empty%ddd and fff are absent
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else%fff present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \else% ddd present
+ \gdef\@ylii{0}\gdef\@yli{36}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \ifx\gggA\empty%eee and ggg are absent
+ \gdef\@ylii{173}\gdef\@yli{-103}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else% ggg is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \else% eee is present
+ \gdef\@ylii{223}\gdef\@yli{-79}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \ifx\hhh\empty%fff and hhh are absent
+ \gdef\@ylii{173}\gdef\@yli{-303}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else%hhh is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+ \else%fff is present
+ \gdef\@ylii{213}\gdef\@yli{-327}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\set@vrtx@decafusevt#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a\relax%
+ \global\@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{135}{280}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a\relax%
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{31}{356}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%9 (= 4a)
+ \@icliptrue%%2001/06/20 by S. Fujita
+ \putratom{135}{280}{\@memberb}% % right type
+\or%10 (= 8a)
+ \@jcliptrue%%2001/06/20 by S. Fujita
+ \putlatom{31}{356}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusevt
+\def\quinolinev{%
+ \@ifnextchar[{\@quinolinev[@}{\@quinolinev[acfhk]}}
+\def\@quinolinev[#1]#2{%
+\iforigpt \typeout{command `quinolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N}{#2}}
+\def\quinolinevi{%
+ \@ifnextchar[{\@quinolinevi[@}{\@quinolinevi[acfhk]}}
+\def\@quinolinevi[#1]#2{%
+\iforigpt \typeout{command `quinolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N}{#2}}
+\def\quinolinevb{%
+ \@ifnextchar[{\@quinolinevb[@}{\@quinolinevb[acfhk]}}
+\def\@quinolinevb[#1]#2{%
+\iforigpt \typeout{command `quinolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N}{#2}}
+\def\quinolinevt{%
+ \@ifnextchar[{\@quinolinevt[@}{\@quinolinevt[acfhk]}}
+\def\@quinolinevt[#1]#2{%
+\iforigpt \typeout{command `quinolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N}{#2}}
+\def\isoquinolinev{%
+ \@ifnextchar[{\@isoquinolinev[@}{\@isoquinolinev[acfhk]}}
+\def\@isoquinolinev[#1]#2{%
+\iforigpt \typeout{command `isoquinolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{2==N}{#2}}
+\def\isoquinolinevi{%
+ \@ifnextchar[{\@isoquinolinevi[@}{\@isoquinolinevi[acfhk]}}
+\def\@isoquinolinevi[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{2==N}{#2}}%
+\def\isoquinolinevb{%
+ \@ifnextchar[{\@isoquinolinevb[@}{\@isoquinolinevb[acfhk]}}
+\def\@isoquinolinevb[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevb' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovb[#1]{2==N}{#2}}%
+\def\isoquinolinevt{%
+ \@ifnextchar[{\@isoquinolinevt[@}{\@isoquinolinevt[acfhk]}}
+\def\@isoquinolinevt[#1]#2{%
+\iforigpt \typeout{command `isoquinolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{2==N}{#2}}%
+\def\quinoxalinev{%
+ \@ifnextchar[{\@quinoxalinev[@}{\@quinoxalinev[acfhk]}}
+\def\@quinoxalinev[#1]#2{%
+\iforigpt \typeout{command `quinoxalinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevi{%
+ \@ifnextchar[{\@quinoxalinevi[@}{\@quinoxalinevi[acfhk]}}
+\def\@quinoxalinevi[#1]#2{%but v--->vi 2013/03/22
+\iforigpt \typeout{command `quinoxalinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevb{%
+ \@ifnextchar[{\@quinoxalinevb[@}{\@quinoxalinevb[acfhk]}}
+\def\@quinoxalinevb[#1]#2{%
+\iforigpt \typeout{command `quinoxalinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;4==N}{#2}}
+\def\quinoxalinevt{%
+ \@ifnextchar[{\@quinoxalinevt[@}{\@quinoxalinevt[acfhk]}}
+\def\@quinoxalinevt[#1]#2{%
+\iforigpt \typeout{command `quinoxalinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;4==N}{#2}}
+\def\quinazolinev{%
+ \@ifnextchar[{\@quinazolinev[@}{\@quinazolinev[acfhk]}}
+\def\@quinazolinev[#1]#2{%
+\iforigpt \typeout{command `quinazolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;3==N}{#2}}
+\def\quinazolinevi{%
+ \@ifnextchar[{\@quinazolinevi[@}{\@quinazolinevi[acfhk]}}
+\def\@quinazolinevi[#1]#2{%
+\iforigpt \typeout{command `quinazolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;3==N}{#2}}
+\def\quinazolinevb{%
+ \@ifnextchar[{\@quinazolinevb[@}{\@quinazolinevb[acfhk]}}
+\def\@quinazolinevb[#1]#2{%
+\iforigpt \typeout{command `quinazolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;3==N}{#2}}
+\def\quinazolinevt{%
+ \@ifnextchar[{\@quinazolinevt[@}{\@quinazolinevt[acfhk]}}
+\def\@quinazolinevt[#1]#2{%
+\iforigpt \typeout{command `quinazolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;3==N}{#2}}
+\def\cinnolinev{%
+ \@ifnextchar[{\@cinnolinev[@}{\@cinnolinev[acfhk]}}
+\def\@cinnolinev[#1]#2{%
+\iforigpt \typeout{command `cinnolinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;2==N}{#2}}
+\def\cinnolinevi{%
+ \@ifnextchar[{\@cinnolinevi[@}{\@cinnolinevi[acfhk]}}
+\def\@cinnolinevi[#1]#2{%
+\iforigpt \typeout{command `cinnolinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;2==N}{#2}}
+\def\cinnolinevb{%
+ \@ifnextchar[{\@cinnolinevb[@}{\@cinnolinevb[acfhk]}}
+\def\@cinnolinevb[#1]#2{%
+\iforigpt \typeout{command `cinnolinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;2==N}{#2}}
+\def\cinnolinevt{%
+ \@ifnextchar[{\@cinnolinevt[@}{\@cinnolinevt[acfhk]}}
+\def\@cinnolinevt[#1]#2{%
+\iforigpt \typeout{command `cinnolinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;2==N}{#2}}
+\def\pteridinev{\@ifnextchar[{\@pteridinev[@}{\@pteridinev[acfhk]}}
+\def\@pteridinev[#1]#2{%
+\iforigpt \typeout{command `pteridinev' %
+ is based on `decaheterov'.}\fi%
+\decaheterov[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevi{\@ifnextchar[{\@pteridinevi[@}{\@pteridinevi[acfhk]}}
+\def\@pteridinevi[#1]#2{%
+\iforigpt \typeout{command `pteridinevi' %
+ is based on `decaheterovi'.}\fi%
+\decaheterovi[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevb{\@ifnextchar[{\@pteridinevb[@}{\@pteridinevb[acfhk]}}
+\def\@pteridinevb[#1]#2{%
+\iforigpt \typeout{command `pteridinevb' %
+ is based on `decaheterovb'.}\fi%
+\decaheterovb[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\pteridinevt{\@ifnextchar[{\@pteridinevt[@}{\@pteridinevt[acfhk]}}
+\def\@pteridinevt[#1]#2{%
+\iforigpt \typeout{command `pteridinevt' %
+ is based on `decaheterovt'.}\fi%
+\decaheterovt[#1]{1==N;3==N;5==N;8==N}{#2}}
+\def\nonaheterov{\@ifnextchar({\@nona@heterov(@}{\@nona@heterov(@)}}
+\def\@nona@heterov(#1){\@ifnextchar[{\@nona@@heterov(#1)[@}%
+{\@nona@@heterov(#1)[@]}}
+\def\@nona@@heterov(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterov(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterov(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterov(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@nonav{#3}%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{5}{-1}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylposition{#4}{11}{3}{7}{-1}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\aaa=\hhh
+\ylposition{#4}{-3}{0}{2}{0}%%substituent on 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{7}% %9 %for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{1}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty\relax
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){nonaheterov}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@longbond{#1}{c}{skbondhoriz}}%
+ % bond between 3 and 3a \@ccc -> \skbondhoriz etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{e}}%
+ % bond between 3a and 7a \@jjj -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{i}{d}}%
+ % bond between 7a and 1 \@iii -> \skbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{d}{a}% bond between 3a and 4 \@ddd -> \skbonda etc
+\set@skel@bond{#1}{h}{c}% bond between 7 and 7a \@hhh -> \skbondc etc
+\set@skel@bond{#1}{g}{d}% bond between 6 and 7 \@ggg -> \skbondd etc
+\set@skel@bond{#1}{f}{e}% bond between 5 and 6 \@fff -> \skbonde etc
+\set@skel@bond{#1}{e}{f}% bond between 4 and 5 \@eee -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 3a and 7a
+ \Put@Direct(0,0){\bondf}% bond between 4 and 5
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bondc}% bond between 3 and 4
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bondhoriz}% bond between 3 and 3a
+\else\if\member d\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 4 and 3a
+}%
+\else\if\member e\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 4 and 5
+}%
+\else\if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 6 and 7
+}%
+\else\if\member h\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 7 and 7a
+}%
+\else\if\member i\relax%
+{\let\eee=\iii%
+ \Put@Direct(342,0){\bondd}% bond between 1 and 7a
+}%
+\else\if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 7a and 3a
+}%
+\else\if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 7a and 3a
+}%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B\relax%left aromatic circle
+ \Put@oCircle(342,173){180}% %circle 1993/11/20 S.Fujita
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{304}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonav
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag\iniatom%
+\@tmpclipfalse
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{11}{3}{7}{-1}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{5}{1}{5}{-1}%
+\storeclipinfo
+}% %substituents on 1 to 3
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-3}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi%
+\storeclipinfo
+}%%substituent on 4
+\Put@Direct(0,0){\set@vrtx@nonafusev{#3}%
+ \@tmpclipfalse
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \else \@iclipfalse \fi
+ \if@tmpclip \@jcliptrue \else \@jclipfalse \fi
+\storeclipinfo
+%%%====\clipinfo====%%%2006/9/5test
+}% fused positions
+\developclipinfo
+\Put@Direct(342,0){\setsixringv{#4}{5}{1}{5}{-1}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{11}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 4
+\Put@Direct(0,0){\setsixringv{#4}{-3}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-8}{7}}% %9 for 7a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-7}{1}}% %8 for 3a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \nonaheterov macro
+\def\test@vertix@nonav#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or%3%
+ \if\@tmpb a\relax%
+ \def\jjj{@}%3a
+ \else\if\@tmpb s\relax%
+ \def\bbb{}%3
+ \else\if\@tmpb h\relax%
+ \def\bbb{@}%3
+ \else\ifx\@tmpb\empty\relax%
+ \def\bbb{@}%3
+ \fi\fi\fi\fi%
+ \or%4
+ \if\@tmpb s\relax\def\hhh{}\else\def\hhh{@}\fi
+ \or%5
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%7
+ \if\@tmpb a%
+ \xdef\iii{@}%7a
+ \else\if\@tmpb s\relax%
+ \xdef\eee{}%7s
+ \else\if\@tmpb h\relax%
+ \xdef\eee{@}%7h
+ \else\ifx\@tmpb\empty\relax%
+ \xdef\eee{@}%7
+ \fi\fi\fi\fi%
+\or%8 (= 3a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\or%9 (= 7a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\fi\fi}}% end of \test@vertix@nonav
+\def\set@vrtx@nonafusev#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty \relax\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a\relax%
+ \@icliptrue%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a\relax%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\or%9 (= 7a)
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusev
+\def\nonaheterovi{\@ifnextchar({\@nona@heterovi(@}{\@nona@heterovi(@)}}
+\def\@nona@heterovi(#1){\@ifnextchar[{\@nona@@heterovi(#1)[@}%
+{\@nona@@heterovi(#1)[@]}}
+\def\@nona@@heterovi(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterovi(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterovi(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterovi(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%initialize
+\test@vertix@nonavi{#3}%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{4}{0}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylposition{#4}{0}{3}{7}{0}%%substituents on 4 to 6
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\aaa=\hhh
+\ylposition{#4}{-6}{0}{2}{0}%%substituent on 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{7}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-103}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{1}% %9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-171}\def\@@yli{-303}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,880)(-\shiftii,-\shifti){nonaheterovi}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\Put@Direct(342,0){\set@skel@bond{#1}{a}{a}}%
+ % bond between 1 and 2 \@aaa -> \skbonda etc
+\Put@Direct(342,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(342,0){\set@skel@longbond{#1}{c}{skbondhorizi}}%
+ % bond between 3 and 3a \@ccc -> \skbondhoriz etc
+\Put@Direct(342,0){\set@skel@bond{#1}{j}{e}}%
+ % bond between 3a and 7a \@jjj -> \skbonde etc
+\Put@Direct(342,0){\set@skel@bond{#1}{i}{f}}%
+ % bond between 7a and 1 \@iii -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\set@skel@bond{#1}{h}{a}% bond between 7a and 7 \@hhh -> \skbonda etc
+\set@skel@bond{#1}{d}{c}% bond between 3a and 4 \@ddd -> \skbondc etc
+\set@skel@bond{#1}{e}{d}% bond between 4 and 5 \@eee -> \skbondd etc
+\set@skel@bond{#1}{f}{e}% bond between 5 and 6 \@fff -> \skbonde etc
+\set@skel@bond{#1}{g}{f}% bond between 6 and 7 \@ggg -> \skbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+ \let\ccc=\iii\let\bbb=\jjj
+ \Put@Direct(0,0){\bondb}% bond between 3a and 7a
+ \Put@Direct(0,0){\bondf}% bond between 6 and 7
+ \Put@Direct(0,0){\bondd}% bond between 4 and 5
+}%
+\else\if\member l\relax%
+\else\if\member a\relax%
+ \Put@Direct(342,0){\bonda}% bond between 1 and 2
+\else\if\member b\relax%
+ \Put@Direct(342,0){\bondb}% bond between 2 and 3
+\else\if\member c\relax%
+ \Put@Direct(342,0){\bondhorizi}% bond between 3 and 3a
+\else\if\member d\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,0){\bondc}% bond between 4 and 3a
+}%
+\else\if\member e\relax%
+{\let\ddd=\eee\let\eee=\fff%
+ \Put@Direct(0,0){\bondd}% bond between 4 and 5
+}%
+\else\if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,0){\bonde}% bond between 5 and 6
+}%
+\else\if\member g\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,0){\bondf}% bond between 7 and 6
+}%
+\else\if\member h\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,0){\bonda}% bond between 7 and 7a
+}%
+\else\if\member i\relax%
+{\let\fff=\jjj%
+ \Put@Direct(342,0){\bondf}% bond between 1 and 7a
+}%
+\else\if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,0){\bondb}% bond between 7a and 3a
+}%
+\else\if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(342,0){\bonde}% bond between 7a and 3a
+}%
+\else\if\member A\relax%left aromatic circle
+ \Put@oCircle(0,203){240}% %circle
+\else\if\member B\relax%left aromatic circle
+ \Put@oCircle(342,233){180}% %circle 1993/11/20 S.Fujita
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{304}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{402}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{402}{253}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{-38}{282}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-60}{120}{\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-60}{253}{\@@tmpb}% % left type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-38}{68}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{60}{253}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{60}{120}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonavi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(342,0){\set@hetatom@sixv{#3}{0}{0}{4}{0}%
+ \@xclipfalse \if@aclip \@xcliptrue \@aclipfalse\fi%avoid conflict position 7 2013/03/24
+\storeclipinfo
+}% %substituents on 1 to 3
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{0}{3}{7}{0}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+\storeclipinfo
+}%substituents on 4 to 6
+\developclipinfo
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{-6}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+\storeclipinfo
+}%%substituent on 7
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@nonafusevi{#3}%
+\storeclipinfo
+}% fused positions
+\developclipinfo
+{%
+\@aclipfalse \if@xclip \@acliptrue \fi% %avoid conflict 2013/3/24
+\Put@Direct(342,0){\setsixringv{#4}{0}{0}{4}{0}}% %substituents on 1 to 3
+}%
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 4 to 6
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,0){\setsixringv{#4}{0}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 7
+\Put@Direct(0,0){\setsixringv{#4}{-6}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(171,103){\setatombond{#4}{-7}{7}}% %8 for 3a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(171,303){\setatombond{#4}{-8}{1}}% %9 for 7a position
+}%
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \nonaheterovi macro
+\def\test@vertix@nonavi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or%
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or%2
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or%3%
+ \if\@tmpb a\relax%
+ \def\iii{@}%3a
+ \else\if\@tmpb s\relax%
+ \def\ccc{}%3
+ \else\if\@tmpb h\relax%
+ \def\ccc{@}%3
+ \else\ifx\@tmpb\empty\relax%
+ \def\ccc{@}%3
+ \fi\fi\fi\fi%
+ \or%4
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or%5
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or%6
+ \if\@tmpb s\relax\def\gggA{}\else\def\gggA{@}\fi
+ \or%7
+ \if\@tmpb a%
+ \xdef\jjj{@}%7a
+ \else\if\@tmpb s\relax%
+ \xdef\hhh{}%7s
+ \else\if\@tmpb h\relax%
+ \xdef\hhh{@}%7h
+ \else\ifx\@tmpb\empty\relax%
+ \xdef\hhh{@}%7
+ \fi\fi\fi\fi%
+\or%8 (= 3a)
+ \if\@tmpb s\relax\def\iii{}\else\def\iii{@}\fi
+\or%9 (= 7a)
+ \if\@tmpb s\relax\def\jjj{}\else\def\jjj{@}\fi
+\fi\fi}}
+\def\set@vrtx@nonafusevi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a\relax%
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+ \else\relax
+ \fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a\relax%
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+ \@icliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{65}{\@memberb}% % left type
+\or%9 (= 7a)
+ \@jcliptrue%%20001/06/20 by S. Fujita
+ \putlatom{207}{280}{\@memberb}% % left type
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusevi
+\def\purinev{\@ifnextchar[{\@purinev[@}{\@purinev[ra]}}
+\def\@purinev[#1]#2{%
+\iforigpt \typeout{command `purinev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==N;3==N;5==N;7==N}{#2}}
+\def\purinevi{\@ifnextchar[{\@purinevi[@}{\@purinevi[ra]}}
+\def\@purinevi[#1]#2{%
+\iforigpt \typeout{command `purinevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==N;3==N;5==N;7==N}{#2}}
+\def\indolev{\@ifnextchar[{\@indolev[@}{\@indolev[rb]}}
+\def\@indolev[#1]#2{%
+\iforigpt \typeout{command `indolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==N}{#2}}
+\def\indolevi{\@ifnextchar[{\@indolevi[@}{\@indolevi[rb]}}
+\def\@indolevi[#1]#2{%
+\iforigpt \typeout{command `indolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==N}{#2}}
+\def\indolizinev{%
+ \@ifnextchar[{\@indolizinev[@}{\@indolizinev[aceg]}}
+\def\@indolizinev[#1]#2{%
+\iforigpt \typeout{command `indolizinev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{7a==N}{#2}}
+\def\indolizinevi{%
+ \@ifnextchar[{\@indolizinevi[@}{\@indolizinevi[aceg]}}
+\def\@indolizinevi[#1]#2{%
+\iforigpt \typeout{command `indolizinevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{7a==N}{#2}}
+\def\isoindolev{\@ifnextchar[{\@isoindolev[@}{\@isoindolev[cegi]}}
+\def\@isoindolev[#1]#2{%
+\iforigpt \typeout{command `isoindolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{2==N}{#2}}
+\def\isoindolevi{\@ifnextchar[{\@isoindolevi[@}{\@isoindolevi[cegi]}}
+\def\@isoindolevi[#1]#2{%
+\iforigpt \typeout{command `isoindolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{2==N}{#2}}
+\def\benzofuranev{%
+ \@ifnextchar[{\@benzofuranev[@}{\@benzofuranev[rb]}}
+\def\@benzofuranev[#1]#2{%
+\iforigpt \typeout{command `benzofuranev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==O}{#2}}
+\def\benzofuranevi{%
+ \@ifnextchar[{\@benzofuranevi[@}{\@benzofuranevi[rb]}}
+\def\@benzofuranevi[#1]#2{%
+\iforigpt \typeout{command `benzofuranevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==O}{#2}}
+\def\isobenzofuranev{\@ifnextchar[{\@isobenzofuranev[@}%
+ {\@isobenzofuranev[cegi]}}
+\def\@isobenzofuranev[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{2==O}{#2}}
+\def\isobenzofuranevi{\@ifnextchar[{\@isobenzofuranevi[@}%
+ {\@isobenzofuranevi[cegi]}}
+\def\@isobenzofuranevi[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{2==O}{#2}}
+\def\benzoxazolev{%
+ \@ifnextchar[{\@benzoxazolev[@}{\@benzoxazolev[rb]}}
+\def\@benzoxazolev[#1]#2{%
+\iforigpt \typeout{command `benzoxazolev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{1==O;3==N}{#2}}
+\def\benzoxazolevi{%
+ \@ifnextchar[{\@benzoxazolevi[@}{\@benzoxazolevi[rb]}}
+\def\@benzoxazolevi[#1]#2{%
+\iforigpt \typeout{command `benzoxazolevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{1==O;3==N}{#2}}
+\def\sixunitv{\@ifnextchar[{\@sixunitv[@}{\@sixunitv[@]}}
+\def\@sixunitv[#1]#2#3#4{\sixheterov[#1]{#2}{#3}[#4]}
+\def\fiveunitv{\@ifnextchar[{\@fiveunitv[@}{\@fiveunitv[r]}}
+\def\@fiveunitv[#1]#2#3#4{\fiveheterov[#1]{#2}{#3}[#4]}
+\def\fiveunitvi{\@ifnextchar[{\@fiveunitvi[@}{\@fiveunitvi[r]}}
+\def\@fiveunitvi[#1]#2#3#4{\fiveheterovi[#1]{#2}{#3}[#4]}
+\def\bondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-138,270)(1,0){134}%double bond 4-3
+ \else%
+ \Put@Line(-138,270)(1,0){115}%double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(-120,270)(1,0){115}%double bond 4-3
+ \else%
+ \Put@Line(-120,270)(1,0){96}%double bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\bondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-138,136)(1,0){134}%double bond 4-3
+ \else%%
+ \Put@Line(-138,136)(1,0){115}%double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(-120,136)(1,0){115}%double bond 4-3
+ \else%
+ \Put@Line(-120,136)(1,0){96}%double bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\skbondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-171,303)(1,0){200}%bond 4-3
+ \else%
+ \Put@Line(-171,303)(1,0){158}%bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(29,303)(-1,0){158}%bond 4-3
+ \else%
+ \Put@Line(-129,303)(1,0){116}%bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\skbondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-171,103)(1,0){200}%bond 4-3
+ \else%
+ \Put@Line(-171,103)(1,0){158}%bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(29,103)(-1,0){158}%bond 4-3
+ \else%
+ \Put@Line(-129,103)(1,0){116}%bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\dotskbondshoriz{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(-171,303)(1,0){200}/(-171,303)(29,303)%
+ \else%
+ \dotorline(-171,303)(1,0){158}/(-171,303)(-29,303)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(29,303)(-1,0){158}/(29,303)(-129,303)%
+ \else%
+ \dotorline(-129,303)(1,0){116}/(-129,303)(-13,303)%
+ \fi%
+ \fi\end{sfpicture}}%
+\def\dotskbondshorizi{%
+ \begin{sfpicture}(200,300)(0,0)
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(-171,103)(1,0){200}/(-171,103)(29,103)%
+ \else%
+ \dotorline(-171,103)(1,0){158}/(-171,103)(-29,103)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(29,103)(-1,0){158}/(29,103)(-129,103)%
+ \else%
+ \dotorline(-129,103)(1,0){116}/(-129,103)(-13,103)%
+ \fi%
+ \fi\end{sfpicture}}%
+\def\fourhetero{\@ifnextchar({\@four@hetero(@}{\@four@hetero(@)}}
+\def\@four@hetero(#1){\@ifnextchar[{\@four@@hetero(#1)[@}%
+{\@four@@hetero(#1)[@]}}
+\def\@four@@hetero(#1)[#2]#3#4{\@ifnextchar[%
+{\@fourhetero(#1)[#2]{#3}{#4}[@}%
+{\@fourhetero(#1)[#2]{#3}{#4}[@]}}
+\def\@fourhetero(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{b}{f}{@}{@}%
+\@reset@ylsw%
+\ylposition{#4}{5}{1}{4}{-1}% for 2 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{4}{4}{6}{0}% for 1
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{2}{5}{7}{0}% for 4
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-571,-137){fourhetero}%
+(571,137)(171,-103)%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@longbond{#1}{a}{skbondshorizi}}%
+ % bond between 1 and 2 \@aaa -> \skbondshorizi etc
+\Put@Direct(-142,0){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,0){\set@skel@longbond{#1}{c}{skbondshoriz}}%
+ % bond between 3 and 4 \@ccc -> \skbondshoriz etc
+\Put@Direct(0,0){\set@skel@bond{#1}{d}{e}}%
+ % bond between 4 and 1 \@ddd -> \skbonde etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax \Put@Direct(0,0){\bondshorizi}%
+\else\if\member b\relax \Put@Direct(-142,0){\bondb}%
+\else\if\member c\relax \Put@Direct(0,0){\bondshoriz}%
+\else\if\member d\relax \Put@Direct(0,0){\bonde}%
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fourv
+\fi\fi\fi\fi\fi}%
+\Put@Direct(-142,0){\set@hetatom@sixv{#3}{5}{1}{4}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 2 to 3
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{4}{4}{6}{0}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 1
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixv{#3}{2}{5}{7}{0}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% for 4
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(-142,0){\setsixringv{#4}{5}{1}{4}{-1}}% for 2 to 3
+\Put@Direct(0,0){\setsixringv{#4}{4}{4}{6}{0}}% for 1
+\Put@Direct(0,0){\setsixringv{#4}{2}{5}{7}{0}}% for 4
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \fourhetero macro
+\def\set@fusionadd@fourv{%
+ \if\@@tmpa 1\relax%
+ \putlatom{-200}{120}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{60}{120}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{60}{233}{\scriptsize \@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putlatom{-200}{233}{\scriptsize \@@tmpb}% % right type
+ \else
+ \set@fusion@fourv
+ \fi\fi\fi\fi%
+}%
+\def\set@fusion@fourv{%
+\if\@@tmpa d\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-173}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{27}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{27}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{27}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{27}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-171}{303}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@fourv
+\def\oxetane{\@ifnextchar[{\@oxetane[@}{\@oxetane[]}}
+\def\@oxetane[#1]#2{%
+\iforigpt \typeout{command `oxetane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==O}{#2}}
+\def\azetidine{\@ifnextchar[{\@azetidine[@}{\@azetidine[]}}
+\def\@azetidine[#1]#2{%
+\iforigpt \typeout{command `azetidine' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==N}{#2}}
+\def\thietane{\@ifnextchar[{\@thietane[@}{\@thietane[]}}
+\def\@thietane[#1]#2{%
+\iforigpt \typeout{command `thietane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{1==S}{#2}}
+ \def\bondtria{%
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \Put@Line(-6,42)(3,5){72}% %double bond 1-2
+ \else%
+ \Put@Line(-6,42)(3,5){60}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(6,62)(3,5){60}% %double bond 1-2
+ \else%
+ \Put@Line(10,32)(3,5){60}% %double bond 1-2
+ \fi%
+ \fi%
+}%
+ \def\bondtrib{%
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \Put@Line(6,42)(-3,5){72}% %double bond 1-3
+ \else%
+ \Put@Line(6,42)(-3,5){60}% %double bond 1-3
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-6,62)(-3,5){60}% %double bond 1-2
+ \else%
+ \Put@Line(6,42)(-3,5){60}% %double bond 1-2
+ \fi%
+ \fi%
+ }%
+\def\skbondtria{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,5){80}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(103,171)(-3,-5){80}% %bond 1-2
+ \else%
+ \Put@Line(35,21)(3,5){60}% %bond 1-2
+ \fi%
+ \fi\end{sfpicture}}%
+\def\skbondtrib{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \Put@Line(0,0)(-3,5){103}% %bond 1-3
+ \else%
+ \Put@Line(0,0)(-3,5){80}% %bond 1-3
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-103,171)(3,-5){80}% %bond 1-3
+ \else%
+ \Put@Line(-35,21)(-3,5){60}% %bond 1-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\dotskbondtria{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,0)(3,5){103}/(0,0)(103,171)%
+ \else%
+ \dotorline(0,0)(3,5){80}/(0,0)(80,133)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(103,171)(-3,-5){80}/(103,171)(23,38)%
+ \else%
+ \dotorline(35,21)(3,5){60}/(35,21)(95,121)%
+ \fi%
+ \fi\end{sfpicture}}%
+\def\dotskbondtrib{%
+ \begin{sfpicture}(200,200)(0,0)
+ \ifx\ddd\empty%
+ \ifx\fff\empty%
+ \dotorline(0,0)(-3,5){103}/(0,0)(-103,171)%
+ \else%
+ \dotorline(0,0)(-3,5){80}/(0,0)(-80,133)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(-103,171)(3,-5){80}/(-103,171)(-23,38)%
+ \else%
+ \dotorline(-35,21)(-3,5){60}/(-35,21)(-95,121)%
+ \fi%
+ \fi\end{sfpicture}}%
+\def\threehetero{\@ifnextchar({\@three@hetero(@}{\@three@hetero(@)}}
+\def\@three@hetero(#1){\@ifnextchar[{\@three@@hetero(#1)[@}%
+{\@three@@hetero(#1)[@]}}
+\def\@three@@hetero(#1)[#2]#3#4{\@ifnextchar[%
+{\@threehetero(#1)[#2]{#3}{#4}[@}%
+{\@threehetero(#1)[#2]{#3}{#4}[@]}}
+\def\@threehetero(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{b}{f}{@}{@}{@}%
+\@reset@ylsw%
+\ylposition{#4}{3}{3}{5}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{68}\def\@@yli{0}\fi
+\else
+\ylposition{#4}{0}{1}{3}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{132}\fi
+\else
+\ylposition{#4}{3}{5}{7}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{132}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-240){threeheterov}%
+(468,240)(68,0)%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skbondtria}}%
+ % bond between 1 and 2 \@aaa -> \skbondtria etc
+\Put@Direct(0,-132){\set@skel@longbond{#1}{b}{skbondshoriz}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skbondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skbondtria etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\bondtria}%
+\else\if\member b\relax\Put@Direct(0,-126){\bondshoriz}%
+\else\if\member c\relax\Put@Direct(-68,0){\bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,108){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threev
+\fi\fi\fi\fi\fi%
+}%
+\Put@Direct(-68,0){\set@hetatom@sixv{#3}{3}{3}{5}{0}%
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(-142,-132){\set@hetatom@sixv{#3}{0}{1}{3}{0}%
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(0,-132){\set@hetatom@sixv{#3}{3}{5}{7}{0}%
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-68,0){\setsixringv{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-142,-132){\setsixringv{#4}{0}{1}{3}{0}}%subst 2
+\Put@Direct(0,-132){\setsixringv{#4}{3}{5}{7}{0}}%subst 3
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \threehetero macro
+\let\threeheterov=\threehetero
+\def\set@fusionadd@threev{%
+ \if\@@tmpa 0\relax%
+ \putratom{-94}{92}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-94}{60}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{-52}{120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-126}{126}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-30}{-20}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{52}{110}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-250}{110}{\scriptsize\@@tmpb}% % right type
+ \else
+ \set@fusion@threev
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@threev{%
+\if\@@tmpa b\relax%
+ \putlratom{29}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{-171}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{29}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{-171}{171}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threev
+\def\oxiranev{\@ifnextchar[{\@oxiranev[@}{\@oxiranev[]}}
+\def\@oxiranev[#1]#2{%
+\iforigpt \typeout{command `oxiranev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==O}{#2}}
+\def\aziridinev{\@ifnextchar[{\@aziridinev[@}{\@aziridinev[]}}
+\def\@aziridinev[#1]#2{%
+\iforigpt \typeout{command `aziridinev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==N}{#2}}
+\def\thiiranev{\@ifnextchar[{\@thiiranev[@}{\@thiiranev[]}}
+\def\@thiiranev[#1]#2{%
+\iforigpt \typeout{command `thiiranev' %
+ is based on `threeheterov'.}\fi%
+\threeheterov[#1]{1==S}{#2}}
+ \def\Bondtria{%
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \Put@Line(-6,-42)(3,-5){72}% %double bond 1-2
+ \else%
+ \Put@Line(-6,-42)(3,-5){60}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(6,-62)(3,-5){60}% %double bond 1-2
+ \else%
+ \Put@Line(10,-32)(3,-5){60}% %double bond 1-2
+ \fi%
+ \fi%
+}%
+ \def\Bondtrib{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(6,-42)(-3,-5){72}% %double bond 1-3
+ \else%
+ \Put@Line(6,-42)(-3,-5){60}% %double bond 1-3
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(-6,-62)(-3,-5){60}% %double bond 1-2
+ \else%
+ \Put@Line(6,-42)(-3,-5){60}% %double bond 1-2
+ \fi%
+ \fi%
+ }%
+\def\skBondtria{%
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(3,-5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,-5){80}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(103,-171)(-3,5){80}% %bond 1-2
+ \else%
+ \Put@Line(35,-21)(3,-5){60}% %bond 1-2
+ \fi%
+ \fi
+}%
+\def\skBondtrib{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \Put@Line(0,0)(-3,-5){103}% %bond 1-3
+ \else%
+ \Put@Line(0,0)(-3,-5){80}% %bond 1-3
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(-103,-171)(3,5){80}% %bond 1-3
+ \else%
+ \Put@Line(-35,-21)(-3,-5){60}% %bond 1-3
+ \fi%
+ \fi
+}%
+\def\dotskBondtria{%
+ \ifx\aaa\empty%
+ \ifx\ccc\empty%
+ \dotorline(0,0)(3,-5){103}/(0,0)(103,-171)%
+ \else%
+ \dotorline(0,0)(3,-5){80}/(0,0)(80,-133)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(103,-171)(-3,5){80}/(103,-171)(23,-38)%
+ \else%
+ \dotorline(35,-21)(3,-5){60}/(35,-21)(95,-121)%
+ \fi%
+ \fi
+}%
+\def\dotskBondtrib{%
+ \ifx\aaa\empty%
+ \ifx\eee\empty%
+ \dotorline(0,0)(-3,-5){103}/(0,0)(-103,-171)%
+ \else%
+ \dotorline(0,0)(-3,-5){80}/(0,0)(-80,-133)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(-103,-171)(3,5){80}/(-103,-171)(-23,-38)%
+ \else%
+ \dotorline(-35,-21)(-3,-5){60}/(-35,-21)(-95,-121)%
+ \fi%
+ \fi
+}%
+\def\threeheteroi{\@ifnextchar({\@three@heteroi(@}{\@three@heteroi(@)}}
+\def\@three@heteroi(#1){\@ifnextchar[{\@three@@heteroi(#1)[@}%
+{\@three@@heteroi(#1)[@]}}
+\def\@three@@heteroi(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheteroi(#1)[#2]{#3}{#4}[@}%
+{\@threeheteroi(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheteroi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{c}{e}{@}{@}{@}%
+\@reset@ylsw%
+\ylposition{#4}{0}{0}{2}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{68}\def\@@yli{406}\fi
+\else
+\ylposition{#4}{1}{2}{4}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{142}\def\@@yli{275}\fi
+\else
+\ylposition{#4}{2}{4}{6}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{275}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,580)(-468,-340){threeheterovi}%
+(468,340)(68,0)%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(-68,0){\set@skel@longbond{#1}{a}{skBondtria}}%
+ % bond between 1 and 2 \@aaa -> \skBondtria etc
+\Put@Direct(0,-275){\set@skel@longbond{#1}{b}{skbondshorizi}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(-68,0){\set@skel@longbond{#1}{c}{skBondtrib}}%
+ % bond between 3 and 1 \@ccc -> \skBondtrib etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(-68,0){\Bondtria}%
+\else\if\member b\relax\Put@Direct(0,-274){\bondshorizi}%
+\else\if\member c\relax\Put@Direct(-68,0){\Bondtrib}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(-70,-108){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threevi
+\fi\fi\fi\fi\fi%
+}%
+\Put@Direct(-68,-406){\set@hetatom@sixv{#3}{0}{0}{2}{0}%
+\storeclipinfo
+}%subst 1
+\developclipinfo
+\Put@Direct(0,-275){\set@hetatom@sixv{#3}{2}{4}{6}{0}%
+\storeclipinfo
+}%subst 3
+\developclipinfo
+\Put@Direct(-142,-275){\set@hetatom@sixv{#3}{1}{2}{4}{0}%
+\storeclipinfo
+}%subst 2
+\developclipinfo
+\Put@Direct(-68,-406){\setsixringv{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(0,-275){\setsixringv{#4}{2}{4}{6}{0}}%subst 3
+\Put@Direct(-142,-275){\setsixringv{#4}{1}{2}{4}{0}}%subst 2
+\end{ShiftPicEnvB}\iniatom\iniflag}% %end of \threeheteroi macro
+\let\threeheterovi=\threeheteroi
+\def\set@fusionadd@threevi{%
+ \if\@@tmpa 0\relax%
+ \putratom{-94}{-120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{-94}{-80}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{-52}{-150}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{-126}{-150}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{-30}{0}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{32}{-130}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{-230}{-130}{\scriptsize\@@tmpb}% % right type
+ \else
+ \set@fusion@threevi
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@threevi{%
+\if\@@tmpa b\relax%
+ \putlratom{29}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{-171}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{29}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{-171}{-171}{\@@tmpb}% % bond fused
+ \FuseWarning{103}{171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-68}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-103}{-171}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threevi
+\def\oxiranevi{\@ifnextchar[{\@oxiranevi[@}{\@oxiranevi[]}}
+\def\@oxiranevi[#1]#2{%
+\iforigpt \typeout{command `oxiranevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==O}{#2}}
+\def\aziridinevi{\@ifnextchar[{\@aziridinevi[@}{\@aziridinevi[]}}
+\def\@aziridinevi[#1]#2{%
+\iforigpt \typeout{command `aziridinevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==N}{#2}}
+\def\thiiranevi{\@ifnextchar[{\@thiiranevi[@}{\@thiiranevi[]}}
+\def\@thiiranevi[#1]#2{%
+\iforigpt \typeout{command `thiiranevi' %
+ is based on `threeheterovi'.}\fi%
+\threeheterovi[#1]{1==S}{#2}}
+\endinput
+%%
+%% End of file `hetarom.sty'.
diff --git a/macros/latex/contrib/xymtex/base/hetaromh.dtx b/macros/latex/contrib/xymtex/base/hetaromh.dtx
new file mode 100644
index 0000000000..88374187ae
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetaromh.dtx
@@ -0,0 +1,6287 @@
+% \iffalse meta-comment
+%% File: hetaromh.dtx
+%
+% Copyright 1993,1996,1998,2000,2001,2002,2004,2006,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% hetaromh.sty
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+%\typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files hetaromh.dtx and hetaromh.ins
+% and the derived file hetaromh.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{November 11, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{September 5, 2006}
+% \def\versi@nno{ver4.03b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{hetaromh}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{5645}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.00a}{2000/11/11}{bug fix}
+% \changes{v2.01}{2001/6/20}{Size reduction and clipping information}
+% \changes{v3.00}{2002/4/30}{sfpicture enviroment etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.02}{2004/12/20}{Exception to wedged bonds}
+% \changes{v4.02a}{2004/12/27}{Bug fix: \cs{ggg} to \cs{gggA}}
+% \changes{v4.03b}{2006/9/5}{Bug fix: \cs{ggg} to \cs{gggA} revised}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \changes{v5.01}{2013/03/19}{added \cs{pyrazinehi}, \cs{oxiraneh}, etc.}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{hetaromh.dtx}[2013/03/19 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{hetaromh.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Heterocycles of horizontal type by {\sffamily hetaromh.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{hetaromh.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{hetaromh:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% hetaromh & hetaromh.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*hetaromh>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released March 19, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{hetaromh}
+\def\versi@ndate{March 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for hetaromh.sty}
+%
+% \begin{verbatim}
+%
+% **********************************
+% * hetaromh.sty: list of commands *
+% **********************************
+%
+% <Conventions for bond-setting>
+%
+% \hbonda
+% \hbondf
+% \hbondb
+% \hbondc
+% \hbondd
+% \hbonde
+% \hbondvert
+% \hbondverti
+%
+% \hskbonda
+% \hskbondf
+% \hskbondc
+% \hskbondd
+% \hskbondb
+% \hskbonde
+% \hskbondvert
+% \hskbondverti
+%
+% \dothskbonda
+% \dothskbondf
+% \dothskbondc
+% \dothskbondd
+% \dothskbondb
+% \dothskbonde
+% \dothskbondvert
+% \dothskbondverti
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-membered heterocycles (horizontal)>
+%
+% Basic Macros
+%
+% \sixheteroh \@sixheteroh
+% \sixheterohi \@sixheterohi
+%
+% Application Macros
+%
+% \pyridineh \@pyridineh
+% \pyridinehi \@pyridinehi
+% \pyrazineh \@pyrazineh
+% \pyrazinehi \@pyrazinehi
+% \pyrimidineh \@pyrimidineh
+% \pyrimidinehi \@pyrimidinehi
+% \pyridazineh \@pyridazineh
+% \pyridazinehi \@pyridazinehi
+% \triazineh \@triazineh
+% \triazinehi \@triazinehi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Five-membered heterocycles (horizontal)>
+%
+% Basic Macros
+%
+% \fiveheteroh \@fiveheteroh
+% \fiveheterohi \@fiveheterohi
+%
+% Application Macros
+%
+% \pyrroleh \@pyrroleh
+% \pyrazoleh \@pyrazoleh
+% \imidazoleh \@imidazoleh
+% \isoxazoleh \@isoxazoleh
+% \oxazoleh \@oxazoleh
+%
+% \furanh \@furanh
+% \thiopheneh \@thiopheneh
+%
+% \pyrrolehi \@pyrrolehi
+% \pyrazolehi \@pyrazolehi
+% \imidazolehi \@imidazolehi
+% \isoxazolehi \@isoxazolehi
+% \oxazolehi \@oxazolehi
+%
+% \furanhi \@furanhi
+% \thiophenehi \@thiophenehi
+%
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-Six fused heterocycles (horizontal)>
+%
+% Basic Macros
+%
+% \decaheteroh \@decaheteroh
+% \decaheterohi \@decaheterohi
+%
+% Application Macros
+%
+% \quinolineh \@quinolineh
+% \quinolinehi \@quinolinehi
+% \isoquinolineh \@isoquinolineh
+% \isoquinolinehi \@isoquinolinehi
+% \quinoxalineh \@quinoxalineh
+% \quinoxalinehi \@quinoxalinehi
+% \quinazolineh \@quinazolineh
+% \quinazolinehi \@quinazolinehi
+% \cinnolineh \@cinnolineh
+% \cinnolinehi \@cinnolinehi
+% \pteridineh \@pteridineh
+% \pteridinehi \@pteridinehi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Six-Five fused heterocycles (horizontal)>
+%
+% Basic Macros
+%
+% \nonaheteroh \@nonaheteroh
+% \nonaheterohi \@nonaheterohi
+%
+% Application Macros
+%
+% \purineh \@purineh
+% \purinehi \@purinehi
+% \indoleh \@indoleh
+% \indolehi \@indolehi
+% \indolizineh \@indolizineh
+% \indolizinehi \@indolizinehi
+% \isoindoleh \@isoindoleh
+% \isoindolehi \@isoindolehi
+% \benzofuraneh \@benzofuraneh
+% \benzofuranehi \@benzofuranehi
+% \isobenzofuraneh \@isobenzofuraneh
+% \isobenzofuranehi \@isobenzofuranehi
+% \benzoxazoleh \@benzoxazoleh
+% \benzoxazolehi \@benzoxazolehi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Building units>
+%
+% \sixunith \@sixunith
+% \fiveunith \@fiveunith
+% \fiveunithi \@fiveunithi
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% <Three-membered rings>
+%
+% \threeheteroh \@threeheteroh
+% \threeheterohi \@threeheterohi
+%
+% Application Macros
+% \oxiraneh \oxiranehi
+% \aziridineh \aziridinehi
+% \thiiraneh \thiiranehi
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf hetaromh.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}%
+\@ifundefined{test@vertix@decavi}{\input hetarom.sty\relax}{}%
+\unitlength=0.1pt%
+% \end{macrocode}
+%
+% \section{Various switches}
+%
+% These control sequences have been commented out, since they are
+% defined elsewhere.
+%
+% \begin{macrocode}
+% % ****************************
+% % * various flags (switches) *
+% % ****************************
+% \newif\if@gclip \@gclipfalse%
+% \newif\if@hclip \@hclipfalse%
+% \newif\if@iclip \@iclipfalse%
+% \newif\if@jclip \@jclipfalse%
+% \def\iniflag{%
+% \@aclipfalse \@bclipfalse\@cclipfalse\@clipfalse\@eclipfalse%
+% \@fclipfalse\@gclipfalse\@hclipfalse\@iclipfalse\@jclipfalse%
+% \@clipfusefalse}%
+% \def\iniatom{%
+% \def\aaa{}\def\bbb{}\def\ccc{}\def\ddd{}\def\eee{}\def\fff{}%
+% \def\gggA{}\def\hhh{}\def\iii{}\def\jjj{}%
+% \def\@aaa{}\def\@bbb{}\def\@ccc{}\def\@ddd{}\def\@eee{}\def\@fff{}%
+% }%
+% \def\resetbdsw{\gdef\@aaa{a}\gdef\@bbb{b}\gdef\@ccc{c}%
+% \gdef\@ddd{d}\gdef\@eee{e}\gdef\@fff{f}}%
+%
+\iniatom%
+% \end{macrocode}
+%
+% \section{Macros for setting bonds}
+% \subsection{Inner double bonds}
+%
+% The macros |\sixheteroh| and |\fiveheteroh| use internal macros for setting
+% inner double bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\hbonda| to |\hbondf| are used to set a bond
+% on each edge of a six- or five-membered ring; and
+% the inner macros |\hbondvert| and |\hbondverti| draw vertical bonds
+% of a five-membered ring.
+%
+% Note that
+% comments (conerning locant numbers) on the end of each row have
+% lost the exact meaning,
+% since such a command moiety is used in many macros after copying.
+%
+% \begin{verbatim}
+% ******************************
+% * setting inner double bonds *
+% ******************************
+%
+% b
+% (bbb) 2 3 (ccc)
+% a ----- c
+% * *
+% the original point ===> 1 * (aaa) * 4 (ddd)
+% (0,0) * * c
+% f -----
+% (fff) 6 5 (eee)
+% e
+% \end{verbatim}
+%
+% \begin{macro}{\hbonda}
+% The macro |\hbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 1 and 2
+\def\hbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(42,6)(3,5){78}% %double bond 1-2
+ \else%
+ \Put@Line(42,6)(3,5){62}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(57,36)(3,5){62}% %double bond 1-2
+ \else%
+ \Put@Line(57,36)(3,5){62}% %double bond 1-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondf}
+% The macro |\hbondf| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 1 and 6
+\def\hbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(42,-6)(3,-5){78}% %double bond 1-6
+ \else%
+ \Put@Line(42,-6)(3,-5){62}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(57,-36)(3,-5){62}% %double bond 1-6
+ \else%
+ \Put@Line(57,-36)(3,-5){62}% %double bond 1-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondb}
+% The macro |\hbondf| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 3 and 2
+ \def\hbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(129,138)(1,0){148}% %double bond 2-3
+ \else%
+ \Put@Line(129,138)(1,0){134}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(143,138)(1,0){134}% %double bond 3-2
+ \else%
+ \Put@Line(143,138)(1,0){110}% %double bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondc}
+% The macro |\hbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 4 and 3
+ \def\hbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(364,6)(-3,5){78}% %double bond 4-3
+ \else%
+ \Put@Line(364,6)(-3,5){62}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(349,36)(-3,5){62}% %double bond 4-3
+ \else%
+ \Put@Line(349,36)(-3,5){62}% %double bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondd}
+% The macro |\hbondf| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 4 and 5
+ \def\hbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(364,-6)(-3,-5){78}% %double bond 4-5
+ \else%
+ \Put@Line(364,-6)(-3,-5){62}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(349,-36)(-3,-5){62}% %double bond 4-5
+ \else%
+ \Put@Line(349,-36)(-3,-5){62}% %double bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbonde}
+% The macro |\hbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% bond between 5 and 6
+\def\hbonde{%
+ \ifx\fff\empty%
+ \ifx\eee\empty%
+ \Put@Line(129,-138)(1,0){148}% %double bond 6-5
+ \else%
+ \Put@Line(129,-138)(1,0){134}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(143,-138)(1,0){134}% %double bond 5-6
+ \else%
+ \Put@Line(143,-138)(1,0){110}% %double bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondvert}
+% The macro |\hbondvert| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\fff| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% vertical inner bond for five-membered rings
+\def\hbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(136,-138)(0,1){277}% %double bond 4-3
+ \else%
+ \Put@Line(136,-138)(0,1){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(136,-120)(0,1){258}% %double bond 4-3
+ \else
+ \Put@Line(136,-120)(0,1){239}% %double bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hbondverti}
+% The macro |\hbondverti| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ccc| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+% horizontal inner bond for five-membered rings (inverse type)
+\def\hbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(270,-138)(0,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(270,-138)(0,1){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(270,-120)(0,1){258}% %double bond 4-3
+ \else%
+ \Put@Line(270,-120)(0,1){239}% %double bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Skeletal bonds}
+%
+% The macros |\sixheteroh| and |\fiveheteroh| use inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\skbonda| to |\skbondf| are used to set a bond
+% on each edge of a six- or five-membered ring; and
+% the inner macros |\hskibondverti| to |\hskibondverti| draw vertical bonds
+% of a five-membered ring.
+%
+% \begin{verbatim}
+% ********************************************
+% * setting skeletal bonds (horizontal type) *
+% ********************************************
+% The following numbering is adopted in this macro.
+%
+% b
+% (bbb) 2 3 (ccc)
+% a ----- c
+% * *
+% the original point ===> 1 * (aaa) * 4 (ddd)
+% (0,0) * * d
+% f -----
+% (fff) 6 5 (eee)
+% e
+% \end{verbatim}
+%
+% \begin{macro}{\hskbonda}
+% The macro |\hskbonda| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 2
+\def\hskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,5){79}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(24,40)(3,5){79}% %bond 1-2
+ \else%
+ \Put@Line(24,40)(3,5){62}% %bond 1-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondf}
+% The macro |\hskbondf| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 6
+\def\hskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty
+ \Put@Line(0,0)(3,-5){103}% %bond 1-6
+ \else%
+ \Put@Line(0,0)(3,-5){79}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(24,-40)(3,-5){79}% %bond 1-6
+ \else%
+ \Put@Line(24,-40)(3,-5){62}% %bond 1-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondc}
+% The macro |\hskbondc| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 3
+\def\hskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(406,0)(-3,5){103}% %bond 4-3
+ \else%
+ \Put@Line(406,0)(-3,5){79}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(382,40)(-3,5){79}% %bond 4-3
+ \else%
+ \Put@Line(382,40)(-3,5){62}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondd}
+% The macro |\hskbondd| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 5
+\def\hskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(406,0)(-3,-5){103}% %bond 4-5
+ \else%
+ \Put@Line(406,0)(-3,-5){79}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(382,-40)(-3,-5){79}% %bond 4-5
+ \else%
+ \Put@Line(382,-40)(-3,-5){62}% %bond 4-5
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondb}
+% The macro |\hskbondb| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 3 and 2
+\def\hskbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(103,171)(1,0){200}% %bond 2-3
+ \else%
+ \Put@Line(103,171)(1,0){160}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(143,171)(1,0){160}% %bond 3-2
+ \else%
+ \Put@Line(143,171)(1,0){120}% %bond 3-2
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbonde}
+% The macro |\hskbonde| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 5 and 6
+\def\hskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(103,-171)(1,0){200}% %bond 6-5
+ \else%
+ \Put@Line(143,-171)(1,0){160}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(103,-171)(1,0){160}% %bond 5-6
+ \else%
+ \Put@Line(143,-171)(1,0){120}% %bond 5-6
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondvert}
+% The macro |\hskbondvert| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%vertical bond for five-membered rings
+\def\hskbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(103,-171)(0,1){342}% %bond 4-3
+ \else%
+ \Put@Line(103,-171)(0,1){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(103,171)(0,-1){300}% %bond 4-3
+ \else%
+ \Put@Line(103,-129)(0,1){258}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hskbondverti}
+% The macro |\hskbondverti| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%vertical bond for five-membered rings (inverse type)
+\def\hskbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(303,-171)(0,1){342}% %bond 4-3
+ \else%
+ \Put@Line(303,-171)(0,1){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(303,171)(0,-1){300}% %bond 4-3
+ \else%
+ \Put@Line(303,-129)(0,1){258}% %bond 4-3
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Dotted Skeletal Bonds}
+%
+% The macros |\sixfuseh| etc. use inner macros for setting
+% skeletal bonds in accordance with the presence or the absence of
+% hetero atoms. During the processes of such setting,
+% the inner macros |\dothskbonda| to |\dothskbondf| are used
+% to set a dotted bond on each edge of a six- or five-membered ring.
+%
+% \begin{macro}{\dothskbonda}
+% The macro |\dothskbonda| is the dotted counterpart of |\hskbonda|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\bbb|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 2
+\def\dothskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,0)(3,5){103}/(0,0)(103,171)%
+ \else%
+ \dotorline(0,0)(3,5){79}/(0,0)(79,132)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(24,40)(3,5){79}/(24,40)(103,171)%
+ \else%
+ \dotorline(24,40)(3,5){62}/(24,40)(86,143)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondb}
+% The macro |\dothskbondb| is the dotted counterpart of |\hskbondb|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 3 and 2
+\def\dothskbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \dotorline(103,171)(1,0){200}/(103,171)(303,171)%
+ \else%
+ \dotorline(103,171)(1,0){160}/(103,171)(263,171)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(143,171)(1,0){160}/(143,171)(303,171)%
+ \else%
+ \dotorline(143,171)(1,0){120}/(143,171)(263,171)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondc}
+% The macro |\dothskbondc| is the dotted counterpart of |\hskbondc|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 3
+\def\dothskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \dotorline(406,0)(-3,5){103}/(406,0)(303,171)%
+ \else%
+ \dotorline(406,0)(-3,5){79}/(406,0)(327,132)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(382,40)(-3,5){79}/(382,40)(303,171)%
+ \else%
+ \dotorline(382,40)(-3,5){62}/(382,40)(320,143)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondd}
+% The macro |\dothskbondd| is the dotted counterpart of |\hskbondd|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\ddd| and |\eee|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 4 and 5
+\def\dothskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \dotorline(406,0)(-3,-5){103}/(406,0)(303,-171)%
+ \else%
+ \dotorline(406,0)(-3,-5){79}/(406,0)(327,-132)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(382,-40)(-3,-5){79}/(382,-40)(303,-171)%
+ \else%
+ \dotorline(382,-40)(-3,-5){62}/(382,-40)(320,-143)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbonde}
+% The macro |\dothskbonde| is the dotted counterpart of |\hskbonde|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 5 and 6
+\def\dothskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \dotorline(103,-171)(1,0){200}/(103,-171)(303,-171)%
+ \else%
+ \dotorline(143,-171)(1,0){160}/(143,-171)(303,-171)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(103,-171)(1,0){160}/(103,-171)(263,-171)%
+ \else%
+ \dotorline(143,-171)(1,0){120}/(143,-171)(263,-171)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondf}
+% The macro |\dothskbondf| is the dotted counterpart of |\hskbondf|,
+% which refers to the control sequences representing
+% atoms on both of the terminal vertices (|\aaa| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%bond between 1 and 6
+\def\dothskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty
+ \dotorline(0,0)(3,-5){103}/(0,0)(103,-171)%
+ \else%
+ \dotorline(0,0)(3,-5){79}/(0,0)(79,-131)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(24,-40)(3,-5){79}/(24,-40)(103,-171)%
+ \else%
+ \dotorline(24,-40)(3,-5){62}/(24,-40)(86,-143)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondvert}
+% The macro |\dothskbondvert| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\bbb| and |\fff|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%vertical bond for five-membered rings
+\def\dothskbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(103,-171)(0,1){342}/(103,-171)(103,171)%
+ \else%
+ \dotorline(103,-171)(0,1){300}/(103,-171)(103,129)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(103,171)(0,-1){300}/(103,171)(103,-129)%
+ \else%
+ \dotorline(103,-129)(0,1){258}/(103,-129)(103,129)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dothskbondverti}
+% The macro |\dothskbondverti| refers to the control sequences representing
+% atoms on both of the terminal vertices (|\eee| and |\ccc|) and
+% examine whether these are empty or not. Thereby,
+% it decides the vertices to be truncated.
+%
+% \begin{macrocode}
+%vertical bond for five-membered rings (inverse type)
+\def\dothskbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(303,-171)(0,1){342}/(303,-171)(303,171)%
+ \else%
+ \dotorline(303,-171)(0,1){300}/(303,-171)(303,129)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(303,171)(0,-1){300}/(303,171)(303,-129)%
+ \else%
+ \dotorline(303,-129)(0,1){258}/(303,-129)(303,129)%
+ \fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@skel@bondh| is used in |\sixfuseh| etc.
+% for setting skeletal bonds (outer bonds), when |\@aaa| etc.
+% (produced by |\csname|...|\endcsname|) are equal to `a'
+% etc. (given as \#2). Thinline, thickline and dotted-line
+% skeletal bonds are available.
+%
+% \changes{v4.02}{2004/12/20}{The positions of \cs{@skbondlisttrue} are changed.}
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+%
+% \begin{macro}{\set@skel@bondh}
+% \begin{macrocode}
+\def\set@skel@bondh#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+% \@skbondlisttrue
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname hskbond#3\endcsname% \hskbonda etc.
+ }%
+% \@skbondlisttrue
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname hskbond#3\endcsname% \hskbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@bondh
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Six-membered heterocyles}
+% \subsection{Horizontal type}
+%
+% The standard skeleton of a six-membered heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% *************************
+% * sixhetero derivatives *
+% * (horizontal type) *
+% *************************
+% The following numbering is adopted in this macro.
+%
+% b
+% 2 3
+% a ----- c
+% * *
+% the original point ===> 1 * * 4
+% (0,0) * * d
+% f -----
+% 6 5
+% e
+%
+% \end{verbatim}
+%
+% The macro |\sixheterovh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixheteroh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none or r : sixhetero (right-handed)
+% l : sixhetero (left-handed)
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixheteroh{1==N}{1==Cl;2==F}
+% \sixheteroh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \sixheteroh[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\sixheteroh| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringh|.
+% \end{enumerate}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/29}{Add: Spiro and fused rings}
+%
+% \begin{macro}{\sixheteroh}
+% \begin{macro}{\@six@heteroh}
+% \begin{macro}{\@six@@heteroh}
+% \begin{macro}{\@sixheteroh}
+% \begin{macrocode}
+\def\sixheteroh{\@ifnextchar({\@six@heteroh(@}{\@six@heteroh(@)}}
+\def\@six@heteroh(#1){\@ifnextchar[{\@six@@heteroh(#1)[@}%
+{\@six@@heteroh(#1)[@]}}
+\def\@six@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheteroh(#1)[#2]{#3}{#4}[@}%
+{\@sixheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheteroh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@sixh{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment of attached positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixheteroh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{%
+\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \hskbondd etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{f}% bond between 6 and 1 \@fff -> \hskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \hbondd\hbondf\hbondb%
+\else \if\member l\relax \hbonda\hbondc\hbonde%
+\else \if\member a\relax \hbonda%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondc%
+\else \if\member d\relax \hbondd%
+\else \if\member e\relax \hbonde%
+\else \if\member f\relax \hbondf%
+\else \if\member A%left aromatic circle
+% \Put@oCircle(0,203){240}% %circle
+ \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixh
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{0}{0}{7}{0}% %atom 1--6%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{0}{0}{7}{0}% %subst 1--6
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixheteroh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vrtx@sixh| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% sixheteroh nucleus.
+%
+% \begin{macro}{\test@vrtx@sixh}
+% \begin{macrocode}
+\def\test@vrtx@sixh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or% \xdef\aaa{\@memberb}%
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or% \xdef\bbb{\@memberb}%
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or% \xdef\ccc{\@memberb}%
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or% \xdef\ddd{\@memberb}%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or% \xdef\eee{\@memberb}%
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or% \xdef\fff{\@memberb}%
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@sixh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The standard skeleton of a six-membered heterocycle of inverse type
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% ************************************
+% * sixhetero derivatives *
+% * (horizontal type, inverse type) *
+% ************************************
+% The following numbering is adopted in this macro.
+%
+% b
+% 3 2
+% c ----- a
+% * *
+% the original point ===> 4 * * 1
+% (0,0) * * f
+% d -----
+% 5 6
+% e
+% \end{verbatim}
+%
+% The macro |\sixheterohi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \sixheterohi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `f' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none or r : sixhetero (right-handed)
+% l : sixhetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 4)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents (max 6 substitution positions)
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixheterohi{1==N}{1==Cl;2==F}
+% \sixheterohi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \sixheterohi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\sixheterohi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringh|.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/29}{Add: Spiro and fused rings}
+%
+% \begin{macro}{\sixheterohi}
+% \begin{macro}{\@six@heterohi}
+% \begin{macro}{\@six@@heterohi}
+% \begin{macro}{\@sixheterohi}
+% \begin{macrocode}
+\def\sixheterohi{\@ifnextchar({\@six@heterohi(@}{\@six@heterohi(@)}}
+\def\@six@heterohi(#1){\@ifnextchar[{\@six@@heterohi(#1)[@}%
+{\@six@@heterohi(#1)[@]}}
+\def\@six@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterohi(#1)[#2]{#3}{#4}[@}%
+{\@sixheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterohi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vrtx@sixhi{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{0}{5}{-1}% %subst 1--4
+\ylpositionh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixheterohi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 5 \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{d}% bond between 6 and 1 \@fff -> \hskbondd etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax \hbondd \hbondf \hbondb%
+\else \if\member l\relax \hbonda \hbondc \hbonde%
+\else \if\member a\relax \hbondc%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbonda%
+\else \if\member d\relax \hbondf%
+\else \if\member e\relax \hbonde%
+\else \if\member f\relax \hbondd%
+\else \if\member A%left aromatic circle
+% \Put@oCircle(0,203){240}% %circle
+ \Put@oCircle(203,0){240}% %circle
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{5}{0}{5}{-1}% %subst 1--4
+\set@hetatom@sixh{#3}{11}{4}{7}{-1}% %subst 5 and 6
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixheterohi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vrtx@sixhi| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% sixheteroh nucleus.
+%
+% \begin{macro}{\test@vrtx@sixhi}
+% \begin{macrocode}
+\def\test@vrtx@sixhi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Pyridine derivatives of horizontal type}
+%
+% The macros |\sixheteroh| and |\sixheterohi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a six-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ************************
+% * pyridine derivatives *
+% * (horizontal type) *
+% ************************
+%
+% \pyridineh[BONDLIST]{SUBSLIST}
+% \pyridinehi[BONDLIST]{SUBSLIST}
+% \pyrazineh[BONDLIST]{SUBSLIST}
+% \pyrazinehi[BONDLIST]{SUBSLIST}
+% \pyrimidineh[BONDLIST]{SUBSLIST}
+% \pyrimidinehi[BONDLIST]{SUBSLIST}
+% \triazineh[BONDLIST]{SUBSLIST}
+% \triazinehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none or r : pyridine (right-handed)
+% l : pyridine (left-handed)
+% [] : fully saturated ring
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% A : aromatic circle
+% {n+} : plus at the nitrogen atom
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyridineh{1==Cl;2==F}
+% \pyridineh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \pyridineh[eb]{1D==O;4SA==MeO;4SB==OMe;5W==Cl;6==Cl}
+% \end{verbatim}
+% \changes{v2.00}{1998/11/29}{Add: fused rings}
+%
+% \begin{macro}{\pyridineh}
+% \begin{macro}{\pyridinehi}
+% \begin{macrocode}
+\def\pyridineh{\@ifnextchar[{\@pyridineh[@}{\@pyridineh[r]}}%
+\def\@pyridineh[#1]#2{%
+\iforigpt \typeout{command `pyridineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N}{#2}}%end of \pyridineh macro
+\def\pyridinehi{\@ifnextchar[{\@pyridinehi}{\@pyridinehi[r]}}%
+\def\@pyridinehi[#1]#2{%
+\iforigpt \typeout{command `pyridinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N}{#2}}% %end of \pyridinehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyrazineh}
+% \begin{macro}{\pyrazinehi}
+% \changes{v5.01}{2013/03/17}{Add: pyrazinehi}
+% \begin{macrocode}
+\def\pyrazineh{\@ifnextchar[{\@pyrazineh[@}{\@pyrazineh[r]}}%
+\def\@pyrazineh[#1]#2{%
+\iforigpt \typeout{command `pyrazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;4==N}{#2}}%end of \pyrazineh macro
+\def\pyrazinehi{\@ifnextchar[{\@pyrazinehi[@}{\@pyrazinehi[r]}}%
+\def\@pyrazinehi[#1]#2{%
+\iforigpt \typeout{command `pyrazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;4==N}{#2}}%end of \pyrazinehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyrimidineh}
+% \begin{macro}{\pyrimidinehi}
+% \begin{macrocode}
+\def\pyrimidineh{%
+ \@ifnextchar[{\@pyrimidineh[@}{\@pyrimidineh[r]}}%
+\def\@pyrimidineh[#1]#2{%
+\iforigpt \typeout{command `pyrimidineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;3==N}{#2}}%
+ %end of \pyrimidineh macro
+\def\pyrimidinehi{%
+ \@ifnextchar[{\@pyrimidinehi[@}{\@pyrimidinehi[r]}}%
+\def\@pyrimidinehi[#1]#2{%
+\iforigpt \typeout{command `pyrimidinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;3==N}{#2}}%end of \pyrimidinehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pyridazineh}
+% \begin{macro}{\pyridazinehi}
+% \begin{macrocode}
+\def\pyridazineh{\@ifnextchar[{\@pyridazineh[@}{\@pyridazineh[r]}}%
+\def\@pyridazineh[#1]#2{%
+\iforigpt \typeout{command `pyridazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;2==N}{#2}}%
+ %end of \pyridazineh macro
+\def\pyridazinehi{%
+ \@ifnextchar[{\@pyridazinehi}{\@pyridazinehi[r]}}%
+\def\@pyridazinehi[#1]#2{%
+\iforigpt \typeout{command `pyridazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;2==N}{#2}}%end of \pyridazinehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\triazineh}
+% \begin{macro}{\triazinehi}
+% \begin{macrocode}
+\def\triazineh{\@ifnextchar[{\@triazineh[@}{\@triazineh[r]}}%
+\def\@triazineh[#1]#2{%
+\iforigpt \typeout{command `triazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;3==N;5==N}{#2}}%end of \triazineh macro
+\def\triazinehi{\@ifnextchar[{\@triazinehi[@}{\@triazinehi[r]}}%
+\def\@triazinehi[#1]#2{%
+\iforigpt \typeout{command `triazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;3==N;5==N}{#2}}%end of \triazinehi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Five-membered heterocycles}
+% \subsection{Horizontal type}
+%
+% The standard skeleton of a five-membered heterocycle
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% ****************************
+% * fivehetero derivatives *
+% * (horizontal type) *
+% ****************************
+% The following numbering is adopted in this macro.
+%
+% 3 _____ 2
+% | *
+% | * 1 <===== the original point
+% | *
+% 4 ----- 5
+% \end{verbatim}
+%
+% The macro |\fiveheteroh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fiveheteroh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `e' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position. The option
+% `$0+$' represents a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveheteroh{1==N}{1==H;2==F}
+% \fiveheteroh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \fiveheteroh[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\fiveheteroh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringh| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused and spiro rings}
+%
+% \begin{macro}{\fiveheteroh}
+% \begin{macro}{\@five@heteroh}
+% \begin{macro}{\@five@@heteroh}
+% \begin{macro}{\@fiveheteroh}
+% \begin{macrocode}
+\def\fiveheteroh{\@ifnextchar({\@five@heteroh(@}{\@five@heteroh(@)}}
+\def\@five@heteroh(#1){\@ifnextchar[{\@five@@heteroh(#1)[@}%
+{\@five@@heteroh(#1)[@]}}
+\def\@five@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheteroh(#1)[#2]{#3}{#4}[@}%
+{\@fiveheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheteroh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vrtx@fivehi{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{1}{5}{-1}% % for 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylpositionh{#4}{10}{4}{7}{-1}% % for 4 to 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fiveheteroh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bondh{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax \hbondc%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondvert%
+\else \if\member d\relax \hbonde%
+\else \if\member e\relax \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fiveh
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{1}{5}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% % for 1 to 3
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{10}{4}{7}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% % for 4 to 5
+\developclipinfo%added 2001/06/20 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(0,0){\setsixringh{#4}{5}{1}{5}{-1}}% % for 1 to 3
+\Put@Direct(0,0){\setsixringh{#4}{10}{4}{7}{-1}}% % for 4 to 5
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \fiveheteroh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\test@vrtx@fivehi| is used to test the presence of
+% a hetero atom or a spiro substituent on a vertex of the
+% fiveheteroh nucleus.
+%
+% \begin{macro}{\test@vrtx@fivehi}
+% \begin{macrocode}
+\def\test@vrtx@fivehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi% dummy
+\fi\fi}%
+}% end of \test@vrtx@sixhi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The standard skeleton of a five-membered heterocycle of inverse type
+% is selected to have the following locant numbers.
+%
+% \begin{verbatim}
+% *******************************
+% * fivehetero derivatives *
+% * (horizontal type, inverse) *
+% *******************************
+% The following numbering is adopted in this macro.
+%
+% 2 ----- 3
+% * |
+% the original point 1 * |
+% * |
+% _____|
+% 5 4
+% \end{verbatim}
+%
+% The macro |\fiveheterohi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \fiveheterohi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `e' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' represents an aromatic circle. The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position. The option
+% `$0+$' represents a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+%
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a, b, c, d, or e)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveheterohi{1==N}{1==H;2==F}
+% \fiveheterohi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \fiveheterohi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\fiveheterohi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by |\setsixringh| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: fused and spiro rings}
+%
+% \begin{macro}{\fiveheterohi}
+% \begin{macro}{\@five@heterohi}
+% \begin{macro}{\@five@@heterohi}
+% \begin{macro}{\@fiveheterohi}
+% \begin{macrocode}
+\def\fiveheterohi{\@ifnextchar({\@five@heterohi(@}{\@five@heterohi(@)}}
+\def\@five@heterohi(#1){\@ifnextchar[{\@five@@heterohi(#1)[@}%
+{\@five@@heterohi(#1)[@]}}
+\def\@five@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterohi(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterohi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{d}%d--dummy
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{4}{0}% % for 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylpositionh{#4}{1}{4}{7}{0}% % for 4 to 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fiveheterohi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 4 \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \hskbonde etc
+\set@skel@bondh{#1}{e}{f}% bond between 5 and 6 \@eee -> \hskbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax \hbonda%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondverti%
+\else \if\member d\relax \hbonde%
+\else \if\member e\relax \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(173,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivehi
+\fi\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\set@hetatom@sixh{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixh{#3}{1}{4}{7}{0}% % for 4 to 5
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\setsixringh{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringh{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \fiveheterohi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pyrrole derivatives of horizontal type}
+%
+% The macro |\fiveheteroh| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a five-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ***********************************
+% * pyrrole derivatives and others *
+% * (horizontal type) *
+% ***********************************
+%
+% \pyrroleh[BONDLIST]{SUBSLIST}
+% \pyrazoleh[BONDLIST]{SUBSLIST}
+% \imidazoleh[BONDLIST]{SUBSLIST}
+% \isoxazoleh[BONDLIST]{SUBSLIST}
+% \oxazoleh[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyrroleh{1==H;2==F}
+% \pyrroleh[]{1==H;2==F}
+% \imidazoleh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \isoxazoleh[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\pyrroleh}
+% \begin{macro}{\pyrazoleh}
+% \begin{macro}{\imidazoleh}
+% \begin{macro}{\isoxazoleh}
+% \begin{macro}{\oxazoleh}
+% \begin{macrocode}
+\def\pyrroleh{\@ifnextchar[{\@pyrroleh[@}{\@pyrroleh[bd]}}%
+\def\@pyrroleh[#1]#2{%
+\iforigpt \typeout{command `pyrroleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N}{#2}}%
+\def\pyrazoleh{\@ifnextchar[{\@pyrazoleh[@}{\@pyrazoleh[bd]}}%
+\def\@pyrazoleh[#1]#2{%
+\iforigpt \typeout{command `pyrazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N;2==N}{#2}}%
+\def\imidazoleh{\@ifnextchar[{\@imidazoleh[@}{\@imidazoleh[bd]}}%
+\def\@imidazoleh[#1]#2{%
+\iforigpt \typeout{command `imidazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N;3==N}{#2}}%
+\def\isoxazoleh{\@ifnextchar[{\@isoxazoleh[@}{\@isoxazoleh[bd]}}%
+\def\@isoxazoleh[#1]#2{%
+\iforigpt \typeout{command `isoxazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O;2==N}{#2}}%
+\def\oxazoleh{\@ifnextchar[{\@oxazoleh[@}{\@oxazoleh[bd]}}%
+\def\@oxazoleh[#1]#2{%
+\iforigpt \typeout{command `oxazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O;3==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\furanh}
+% \begin{macro}{\thiopheneh}
+% \begin{macrocode}
+\def\furanh{\@ifnextchar[{\@furanh[@}{\@furanh[bd]}}
+\def\@furanh[#1]#2{%
+\iforigpt \typeout{command `furanh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O}{#2}}
+\def\thiopheneh{\@ifnextchar[{\@thiopheneh[@}{\@thiopheneh[bd]}}
+\def\@thiopheneh[#1]#2{%
+\iforigpt \typeout{command `thiopheneh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pyrrole derivatives of inverse horizontal type}
+%
+% The macro |\fiveheterohi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a five-membered heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% *************************************
+% * pyrrole derivatives and others *
+% * (horizontal type, inverse) *
+% *************************************
+%
+% \pyrrolehi[BONDLIST]{SUBSLIST}
+% \pyrazolehi[BONDLIST]{SUBSLIST}
+% \imidazolehi[BONDLIST]{SUBSLIST}
+% \isoxazolehi[BONDLIST]{SUBSLIST}
+% \oxazolehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option
+% `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus
+% [] : fully saturated form
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pyrrolehi{1==H;2==F}
+% \pyrrolehi[]{1==H;2==F}
+% \imidazolehi[c]{1==Cl;4==F;2==CH$_{3}$}
+% \isoxazolehi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\pyrrolehi}
+% \begin{macro}{\pyrazolehi}
+% \begin{macro}{\imidazolehi}
+% \begin{macro}{\isoxazolehi}
+% \begin{macro}{\oxazolehi}
+% \begin{macrocode}
+\def\pyrrolehi{\@ifnextchar[{\@pyrrolehi[@}{\@pyrrolehi[bd]}}%
+\def\@pyrrolehi[#1]#2{%
+\iforigpt \typeout{command `pyrrolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N}{#2}}%
+\def\pyrazolehi{\@ifnextchar[{\@pyrazolehi[@}{\@pyrazolehi[bd]}}%
+\def\@pyrazolehi[#1]#2{%
+\iforigpt \typeout{command `pyrazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N;2==N}{#2}}%
+\def\imidazolehi{\@ifnextchar[{\@imidazolehi[@}{\@imidazolehi[bd]}}%
+\def\@imidazolehi[#1]#2{%
+\iforigpt \typeout{command `imidazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N;3==N}{#2}}%
+\def\isoxazolehi{\@ifnextchar[{\@isoxazolehi[@}{\@isoxazolehi[bd]}}%
+\def\@isoxazolehi[#1]#2{%
+\iforigpt \typeout{command `isoxazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O;2==N}{#2}}%
+\def\oxazolehi{\@ifnextchar[{\@oxazolehi[@}{\@oxazolehi[bd]}}%
+\def\@oxazolehi[#1]#2{%
+\iforigpt \typeout{command `oxazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O;3==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\furanhi}
+% \begin{macro}{\thiophenehi}
+% \begin{macrocode}
+\def\furanhi{\@ifnextchar[{\@furanhi[@}{\@furanhi[bd]}}
+\def\@furanhi[#1]#2{%
+\iforigpt \typeout{command `furanhi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O}{#2}}
+\def\thiophenehi{\@ifnextchar[{\@thiophenehi[@}{\@thiophenehi[bd]}}
+\def\@thiophenehi[#1]#2{%
+\iforigpt \typeout{command `thiophenehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Six-to-six fused heterocyles}
+% \subsection{Horizontal type}
+%
+% The standard skeleton of a six-to-six fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ****************************
+% * decahetero derivatives *
+% * (horizontal type) *
+% ****************************
+% The following numbering is adopted in this macro.
+%
+% 2 3
+%
+% *1 4 (*1 origin)
+%
+% (10)8a 4a(9)
+%
+% 8 5
+%
+% 7 6
+% ____ ____
+% |cf. |
+% | 8 (10)1 |
+% | * 8a * |
+% | 7 * * * * 2 |
+% | | | | |
+% | | | | |
+% | 6 * * * * 3 |
+% | * 4a * |
+% | 5 (9) 4 |
+% | ^ |
+% | | |
+% | the original point |
+% |____ ____|
+% \end{verbatim}
+%
+% The macro |\decaheteroh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheteroh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' and `B' represent aromatic circles. The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : no action
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheteroh{1==N}{1==Cl;2==F}
+% \decaheteroh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheteroh[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheteroh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/11/30}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+% \changes{v4.03b}{2006/9/5}{bug fix \cs{ggg} etc. for \cs{test@vertix@sixv}
+% in chemstr.sty}
+%
+% \begin{macro}{\decaheteroh}
+% \begin{macro}{\@deca@heteroh}
+% \begin{macro}{\@deca@@heteroh}
+% \begin{macro}{\@decaheteroh}
+% \begin{macrocode}
+\def\decaheteroh{\@ifnextchar({\@deca@heteroh(@}{\@deca@heteroh(@)}}
+\def\@deca@heteroh(#1){\@ifnextchar[{\@deca@@heteroh(#1)[@}%
+{\@deca@@heteroh(#1)[@]}}
+\def\@deca@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheteroh(#1)[#2]{#3}{#4}[@}%
+{\@decaheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheteroh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\test@vertix@decav{#3}{g}{h}{i}{j}{@}{@}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylhetpositionh{#4}{0}{0}{5}{0}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylhetpositionh{#4}{-1}{3}{7}{0}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylhetpositionh{#4}{-7}{0}{2}{0}% %substituent on 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{4}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{10}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){decaheteroh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bondh{#1}{k}{e}% bond between 7 and 8 \@kkk -> \skbonde etc
+\set@skel@bondh{#1}{j}{f}% bond between 7 and 8 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{i}{a}}%
+ % bond between 8a and 8 \@iii -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{c}}%
+ % bond between 4a and 5 \@eee -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{d}}%
+ % bond between 5 and 6 \@fff -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{e}}%
+ % bond between 6 and 7 \@ggg -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{f}}%
+ % bond between 7 and 8 \@hhh -> \hskbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4%
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+% \Put@Direct(342,0){\hbondc}% bond between 3 and 4
+\else \if\member d\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 4 and 4a
+}%
+\else \if\member e\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 5 and 4a
+}%
+\else \if\member f\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+}%
+\else \if\member i\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 8 and 8a
+}%
+\else \if\member j\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 8a
+}%
+\else \if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+}%
+\else \if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 8a and 4a in the other ring
+}%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \if\member B%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 4\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decah
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \changes{v2.00a}{2000/11/11}{The
+% \cs{iniflag} command is added to 5- and 8-substitution.}
+% \changes{v4.03}{2006/9/5}{The \cs{storeclipinfo} command, bugfixed}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{0}{0}{5}{0}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+% \if@clip \global\@cliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{-1}{3}{7}{0}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{-7}{0}{2}{0}%
+% \@hclipfalse \if@aclip \global\@hcliptrue \fi
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+ \@aclipfalse%2006/9/5added
+\storeclipinfo
+}%%substituent on 8
+%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,0){\set@vrtx@fuseh{#3}%
+% \if@iclip \global\@icliptrue \fi
+% \if@jclip \global\@jcliptrue \fi
+\storeclipinfo
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringh{#4}{0}{0}{5}{0}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{-1}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 8
+\Put@Direct(0,-342){\setsixringh{#4}{-7}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-8}{4}}% %9 for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(103,-171){\setatombond{#4}{-9}{10}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \decaheteroh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\ylhetpositionh| is used in the |\decaheteroh| command,
+% giving the sift values for drawing a structure as a substituent.
+% \changes{v1.02}{1998/10/16}{Newly added command}
+%
+% \begin{macro}{\ylhetpositionh}
+% \begin{macrocode}
+\def\ylhetpositionh#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or
+ \ifx\ccc\empty
+ \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The standard skeleton of a six-to-six fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ************************************
+% * decahetero derivatives *
+% * (horizonatl type, inverse type) *
+% ************************************
+% The following numbering is adopted in this macro.
+%
+% 3 2
+%
+% *4 1 (*4 origin)
+%
+% (8)4a 8a(10)
+%
+% 5 8
+%
+% 6 7
+% ____ ____
+% |cf. |
+% | 5 (9) 4 |
+% | * 4a * |
+% | 6 * * * * 3 |
+% | | | | |
+% | | | | |
+% | 7 * * * * 2 |
+% | * 8a * |
+% | 8 (9) 1 |
+% | ^ |
+% | | |
+% | the original point |
+% |____ ____|
+% \end{verbatim}
+%
+% The macro |\decaheterohi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \decaheterohi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `k' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : no action
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% K : 4a,8a-double bond in the other ring
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 8
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 4a or 8b (n=4 or 8)
+% e.g. 4a==N (or 9==N) for N at 4a-position
+% 8a==N (or {{10}}==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to k; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decaheterohi{1==N}{1==Cl;2==F}
+% \decaheterohi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \decaheterohi[eb]{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\decaheterohi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| several times.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/1}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\decaheterohi}
+% \begin{macro}{\@deca@heterohi}
+% \begin{macro}{\@deca@@heterohi}
+% \begin{macro}{\@decaheterohi}
+% \begin{macrocode}
+\def\decaheterohi{\@ifnextchar({\@deca@heterohi(@}{\@deca@heterohi(@)}}
+\def\@deca@heterohi(#1){\@ifnextchar[{\@deca@@heterohi(#1)[@}%
+{\@deca@@heterohi(#1)[@]}}
+\def\@deca@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterohi(#1)[#2]{#3}{#4}[@}%
+{\@decaheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterohi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@decavi{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylhetpositionh{#4}{5}{0}{5}{-1}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylhetpositionh{#4}{12}{3}{7}{-1}% %substituents on 6 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylhetpositionh{#4}{-4}{0}{2}{0}% %substituent on 5
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{4}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{10}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){decaheterohi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 4a \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{k}{e}% bond between 4a and 8a \@kkk -> \hskbonde etc
+\set@skel@bondh{#1}{j}{d}% bond between 8a and 1 \@jjj -> \hskbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{a}}%
+ % bond between 4a and 5 \@eee -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{i}{c}}%
+ % bond between 8a and 8 \@iii -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{d}}%
+ % bond between 7 and 8 \@hhh -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{e}}%
+ % bond between 6 and 7 \@ggg -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{f}}%
+ % bond between 5 and 6 \@fff -> \hskbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+\else \if\member b\relax
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member d\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 8a
+}%
+\else \if\member e\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 8 and 8a
+}%
+\else \if\member f\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+}%
+\else \if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member i\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 5 and 4a
+}%
+\else \if\member j\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 4 and 4a
+}%
+\else \if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+}%
+\else \if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 8a and 4a
+}%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \if\member B%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 4\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decahi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \changes{v2.00a}{2000/11/11}{The
+% \cs{iniflag} command is added to 8-substitution.}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\@tmpclipfalse
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{0}{5}{-1}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+% \if@clip \global\@cliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{12}{3}{7}{-1}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+\storeclipinfo
+}%substituents on 6 to 8
+\developclipinfo
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{-4}{0}{2}{0}%
+% \@aclipfalse \if@aclip \global\@hcliptrue \fi%
+ \@aclipfalse \if@aclip \@hcliptrue \fi%
+\storeclipinfo
+}%%substituent on 5
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusehi{#3}%
+ \@tmpclipfalse
+% \if@iclip \global\@tmpcliptrue \fi
+% \if@jclip \global\@icliptrue \fi
+% \if@tmpclip \global\@jcliptrue \fi
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \fi
+ \if@tmpclip \@jcliptrue \fi
+\storeclipinfo
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringh{#4}{5}{0}{5}{-1}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 6 to 8
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{12}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 5
+\Put@Direct(0,-342){\setsixringh{#4}{-4}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-9}{4}}% %10 for 8a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi
+ \Put@Direct(103,-171){\setatombond{#4}{-8}{10}}% %9 for 4a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \decaheterohi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@vrtx@decafusehi| is an inner command contained
+% in the definition of |\decaheterohi|, where the macro is used to set
+% a hetero atom or on a vertex of a bridgehead location.
+%
+% \begin{macro}{\set@vrtx@decafusehi}
+% \begin{macrocode}
+\def\set@vrtx@decafusehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \fi\fi\fi\fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \fi\fi\fi\fi
+\or%9 (= 4a)
+ \ifx\@tmpb\empty%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \fi
+\or%10 (= 8a)
+ \ifx\@tmpb\empty%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusehi
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@fusion@decahi| is an inner command contained
+% in the definition of |\decaheterohi|, where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusionadd@sixhi|.
+%
+% \begin{macro}{\set@fusion@decahi}
+% \changes{v2.00}{1998/11/15}{New command: \cs{set@fusion@decahi}}
+% \begin{macrocode}
+\def\set@fusion@decahi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decahi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Short-cut commands for fused heterocycles}
+%
+% The macro |\decaheteroh| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a fused heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% ****************************************************
+% * heterocycles having two fused six-membered rings *
+% * (horizontal type) *
+% ****************************************************
+%
+% \quinolineh[BONDLIST]{SUBSLIST}
+% \quinolinehi[BONDLIST]{SUBSLIST}
+% \isoquinolineh[BONDLIST]{SUBSLIST}
+% \isoquinolinehi[BONDLIST]{SUBSLIST}
+% \quinoxalineh[BONDLIST]{SUBSLIST}
+% \quinoxalinehi[BONDLIST]{SUBSLIST}
+% \quinazolineh[BONDLIST]{SUBSLIST}
+% \quinazolinehi[BONDLIST]{SUBSLIST}
+% \cinnolineh[BONDLIST]{SUBSLIST}
+% \cinnolinehi[BONDLIST]{SUBSLIST}
+% \pteridineh[BONDLIST]{SUBSLIST}
+% \pteridinehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to k, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The optiona `A' and `B' typeset aromatic circles.
+% The option
+% `$n+$' ($n=1$ to $10$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : decahetero (right-handed)
+% l : decahetero (left-handed)
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 4,3-double bond d : 4,4a-double bond
+% e : 4a,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,8-double bond
+% i : 8,8a-double bond j : 1,8a-double bond
+% k : 4a,8a-double bond
+% A : aromatic circle B : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 10)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 9 (4a position) and 10 (8a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \quinolineh{2==Cl;3==F}
+% \end{verbatim}
+%
+% \begin{macro}{\quinolineh}
+% \begin{macro}{\quinolinehi}
+% \begin{macrocode}
+\def\quinolineh{%
+ \@ifnextchar[{\@quinolineh[@}{\@quinolineh[acfhk]}}%
+\def\@quinolineh[#1]#2{%
+\iforigpt \typeout{command `quinolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N}{#2}}%
+\def\quinolinehi{%
+ \@ifnextchar[{\@quinolinehi[@}{\@quinolinehi[acfhk]}}%
+\def\@quinolinehi[#1]#2{%
+\iforigpt \typeout{command `quinolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isoquinolineh}
+% \begin{macro}{\isoquinolinehi}
+% \begin{macrocode}
+\def\isoquinolineh{%
+ \@ifnextchar[{\@isoquinolineh[@}{\@isoquinolineh[acfhk]}}%
+\def\@isoquinolineh[#1]#2{%
+\iforigpt \typeout{command `isoquinolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{2==N}{#2}}%
+\def\isoquinolinehi{%
+ \@ifnextchar[{\@isoquinolinehi[@}{\@isoquinolinehi[acfhk]}}%
+\def\@isoquinolinehi[#1]#2{%
+\iforigpt \typeout{command `isoquinolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{2==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{quinoxalineh}
+% \begin{macro}{quinoxalinehi}
+% \begin{macrocode}
+\def\quinoxalineh{%
+ \@ifnextchar[{\@quinoxalineh[@}{\@quinoxalineh[acfhk]}}%
+\def\@quinoxalineh[#1]#2{%
+\iforigpt \typeout{command `quinoxalineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;4==N}{#2}}%
+\def\quinoxalinehi{%
+ \@ifnextchar[{\@quinoxalinehi[@}{\@quinoxalinehi[acfhk]}}%
+\def\@quinoxalinehi[#1]#2{%
+\iforigpt \typeout{command `quinoxalinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;4==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\quinazolineh}
+% \begin{macro}{\quinazolinehi}
+% \begin{macrocode}
+\def\quinazolineh{%
+ \@ifnextchar[{\@quinazolineh[@}{\@quinazolineh[acfhk]}}%
+\def\@quinazolineh[#1]#2{%
+\iforigpt \typeout{command `quinazolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;3==N}{#2}}%
+\def\quinazolinehi{%
+ \@ifnextchar[{\@quinazolinehi[@}{\@quinazolinehi[acfhk]}}%
+\def\@quinazolinehi[#1]#2{%
+\iforigpt \typeout{command `quinazolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;3==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cinnolineh}
+% \begin{macro}{\cinnolinehi}
+% \begin{macrocode}
+\def\cinnolineh{%
+ \@ifnextchar[{\@cinnolineh[@}{\@cinnolineh[acfhk]}}%
+\def\@cinnolineh[#1]#2{%
+\iforigpt \typeout{command `cinnolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;2==N}{#2}}%
+\def\cinnolinehi{%
+ \@ifnextchar[{\@cinnolinehi[@}{\@cinnolinehi[acfhk]}}%
+\def\@cinnolinehi[#1]#2{%
+\iforigpt \typeout{command `cinnolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;2==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pteridineh}
+% \begin{macro}{\pteridinehi}
+% \begin{macrocode}
+\def\pteridineh{%
+ \@ifnextchar[{\@pteridineh[@}{\@pteridineh[acfhk]}}%
+\def\@pteridineh[#1]#2{%
+\iforigpt \typeout{command `pteridineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;3==N;5==N;8==N}{#2}}%
+\def\pteridinehi{%
+ \@ifnextchar[{\@pteridinehi[@}{\@pteridinehi[acfhk]}}%
+\def\@pteridinehi[#1]#2{%
+\iforigpt \typeout{command `pteridinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;3==N;5==N;8==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Six-to-five fused heterocycles}
+% \subsection{Horizontal type}
+%
+% The standard skeleton of a six-to-five fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% **************************
+% * nonahetero derivatives *
+% * (horizontal type) *
+% **************************
+% The following numbering is adopted in this macro.
+%
+% 3 2
+%
+% 1 (*1 origin)
+%
+% (8)3a 7a(9)
+%
+% 4 7
+%
+% 5 6
+% ____ ____
+% |cf. |
+% | 4 (8) |
+% | * 3a |
+% | 5 * * ----- 3 |
+% | | | | |
+% | | | | |
+% | 6 * * * * 2 |
+% | * 7a * |
+% | 7 (9) 1 |
+% | ^ |
+% | | |
+% | the original point |
+% |____ ____|
+% \end{verbatim}
+%
+% The macro |\nonaheteroh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \nonaheteroh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `j' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% j : 3a,4a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle (six-membered)
+% B : aromatic circle (five-membered)
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% {0+} : plus (or others) at the center
+% of the five-membered cycle
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 9 atoms)
+%
+% for n = 1 to 7
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 3a or 7b (n=3 or 7)
+% e.g. 3a==N (or 8==N) for N at 4a-position
+% 7a==N (or 9==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to j; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \nonaheteroh{1==N}{1==Cl;2==F}
+% \nonaheteroh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\nonaheteroh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| several times in
+% a restricted fashion.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/05}{Add: fused and spiro rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\nonaheteroh}
+% \begin{macro}{\@nona@heteroh}
+% \begin{macro}{\@nona@@heteroh}
+% \begin{macro}{\@nonaheteroh}
+% \begin{macrocode}
+\def\nonaheteroh{\@ifnextchar({\@nona@heteroh(@}{\@nona@heteroh(@)}}
+\def\@nona@heteroh(#1){\@ifnextchar[{\@nona@@heteroh(#1)[@}%
+{\@nona@@heteroh(#1)[@]}}
+\def\@nona@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheteroh(#1)[#2]{#3}{#4}[@}%
+{\@nonaheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheteroh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%
+\test@vertix@nonav{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{1}{5}{-1}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylpositionh{#4}{11}{3}{7}{-1}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylpositionh{#4}{-3}{0}{2}{0}%%substituent on 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{4}% %9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{10}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){nonaheteroh}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 3a \@ccc -> \hskbondhoriz etc
+\set@skel@bondh{#1}{j}{e}% bond between 3a and 7a \@jjj -> \hskbonde etc
+\set@skel@bondh{#1}{i}{d}% bond between 7a and 1 \@iii -> \hskbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{d}{a}}%
+ % bond between 3a and 4 \@ddd -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{c}}%
+ % bond between 7a and 7 \@hhh -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{d}}%
+ % bond between 6 and 7 \@ggg -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{f}}%
+ % bond between 4 and 5 \@eee -> \hskbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 3a and 7a
+ \Put@Direct(0,-342){\hbondf}% bond between 4 and 5
+ \Put@Direct(0,-342){\hbondd}% bond between 6 and 7
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondvert}% bond between 3 and 3a
+\else \if\member d\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 4 and 3a
+}%
+\else \if\member e\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 4 and 5
+}%
+\else \if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 7 and 7a
+}%
+\else \if\member i\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 1 and 7a
+}%
+\else \if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 7a and 3a
+}%
+\else \if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 7a and 3a
+}%
+\else \if\member B%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle (five-membered)
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle (six-membered)
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{3a}\def\aay{7a}%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{196}{-30}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonah
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\@tmpclipfalse
+%position 7 should be treated before
+%position 1 (using the same \if@clip)
+\Put@Direct(0,-342){%
+%%\@clipfalse%2003/5/1 bugfix by Shinsaku Fujita deleted/2006/9/5
+\set@hetatom@sixh{#3}{11}{3}{7}{-1}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{1}{5}{-1}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 3
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{-3}{0}{2}{0}%
+% \@aclipfalse \if@aclip \global\@hcliptrue \fi%
+% \@aclipfalse \if@aclip \@hcliptrue \fi
+ \@hclipfalse \if@aclip \@hcliptrue \fi%%2006/9/5 bugfix
+\storeclipinfo
+}%%substituent on 4
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,0){\set@vrtx@nonafuseh{#3}%
+ \@iclipfalse%2006/9/5 bugfix by Shinsaku Fujita
+ \@jclipfalse%2006/9/5 bugfix by Shinsaku Fujita
+ \@tmpclipfalse
+%% \if@iclip \global\@tmpcliptrue \fi
+%% \if@jclip \global\@icliptrue \fi
+%% \if@tmpclip \global\@jcliptrue \fi
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \else \@iclipfalse \fi
+ \if@tmpclip \@jcliptrue \else \@jclipfalse \fi
+\storeclipinfo
+%===\clipinfo===
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(0,0){\setsixringh{#4}{5}{1}{5}{-1}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{11}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 4
+\Put@Direct(0,-342){\setsixringh{#4}{-3}{0}{2}{0}}%
+}%
+{%
+% \@clipfusefalse \if@iclip \@clipfusetrue \fi%change to the next line
+ \@clipfusefalse \if@jclip \@clipfusetrue \fi%2006/9/5
+ \Put@Direct(303,-171){\setatombond{#4}{-8}{4}}% %9 for 7a position
+}%
+{%
+% \@clipfusefalse \if@jclip \@clipfusetrue \fi%change to the next line
+ \@clipfusefalse \if@iclip \@clipfusetrue \fi%2006/9/5
+ \Put@Direct(103,-171){\setatombond{#4}{-7}{10}}% %8 for 3a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \nonaheteroh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@vrtx@nonafuseh| is an inner command contained
+% in the definition of |\nonaheteroh|, where the macro is used to set
+% a hetero atom on a vertex of a bridgehead location.
+% \changes{v2.00}{1998/12/05}{New command: \cs{set@vrtx@nonafuseh}}
+%
+% \begin{macro}{\set@vrtx@nonafuseh}
+% \begin{macrocode}
+\def\set@vrtx@nonafuseh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \fi\fi\fi\fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \fi\fi\fi\fi
+\or%8 (= 3a)
+ \ifx\@tmpb\empty%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \fi
+\or%9 (= 7a)
+ \ifx\@tmpb\empty%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafuseh
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The standard skeleton of a six-to-five fused heterocycle is selected
+% to have the following locant numbers.
+%
+% \begin{verbatim}
+% ************************************
+% * nonahetero derivatives *
+% * (horizontal type, inverse type) *
+% ************************************
+% The following numbering is adopted in this macro.
+%
+%
+% 2 3
+%
+% 1
+%
+% (9)7a 3a(8)
+%
+% 7 4
+%
+% 6 5
+% ____ ____
+% |cf. |
+% | 7 (9) 1 |
+% | * 7a * |
+% | 6 * * * * 2 |
+% | | | | |
+% | | | | |
+% | 5 * * ----- 3 |
+% | * 3a |
+% | 4 (8) |
+% | ^ |
+% | | |
+% | the original point |
+% |____ ____|
+% \end{verbatim}
+%
+% The macro |\nonaheterohi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \nonaheterohi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `j' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The options `A' and `B' represent aromatic circles in two rings.
+% The option `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+%
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% j : 3a,4a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle (six-membered)
+% B : aromatic circle (five-membered)
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% {0+} : plus (or others) at the center
+% of the five-membered cycle
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 9 atoms)
+%
+% for n = 1 to 7
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% na : Hetero atom at 3a or 7b (n=3 or 7)
+% e.g. 3a==N (or 8==N) for N at 4a-position
+% 7a==N (or 9==N) for N at 8a-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to j; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \nonaheterohi{1==N}{1==Cl;2==F}
+% \nonaheterohi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\nonaheterohi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| several times in
+% a restricted fashion.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylpositionh}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/05}{Add: fused and spiro rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\nonaheterohi}
+% \begin{macro}{\@nona@heterohi}
+% \begin{macro}{\@nona@@heterohi}
+% \begin{macro}{\@nonaheterohi}
+% \begin{macrocode}
+\def\nonaheterohi{\@ifnextchar({\@nona@heterohi(@}{\@nona@heterohi(@)}}
+\def\@nona@heterohi(#1){\@ifnextchar[{\@nona@@heterohi(#1)[@}%
+{\@nona@@heterohi(#1)[@]}}
+\def\@nona@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterohi(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterohi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag\iniatom%initialize
+\test@vertix@nonavi{#3}%
+% %%%%%%%%%%%%%%%%%%%%%%%
+% % adjustment for (yl) %
+% %%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{4}{0}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylpositionh{#4}{0}{3}{7}{0}%%substituents on 4 to 6
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylpositionh{#4}{-6}{0}{2}{0}%%substituent on 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{4}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{10}%%9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){nonaheterohi}%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 3a \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{j}{e}% bond between 3a and 7a \@jjj -> \hskbonde etc
+\set@skel@bondh{#1}{i}{f}% bond between 7a and 1 \@iii -> \hskbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{a}}%
+ % bond between 7a and 7 \@hhh -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{d}{c}}%
+ % bond between 3a and 4 \@ddd -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{d}}%
+ % bond between 4 and 5 \@eee -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{f}}%
+ % bond between 6 and 7 \@ggg -> \hskbondf etc
+}%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 3a and 7a
+ \Put@Direct(0,-342){\hbondf}% bond between 6 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 4 and 5
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondverti}% bond between 3 and 3a
+\else \if\member d\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 4 and 3a
+}%
+\else \if\member e\relax%
+{\let\ddd=\eee\let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 4 and 5
+}%
+\else \if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 7 and 6
+}%
+\else \if\member h\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 7 and 7a
+}%
+\else \if\member i\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 7a
+}%
+\else \if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 7a and 3a
+}%
+\else \if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 7a and 3a
+}%
+\else \if\member B%aromatic circle
+ \Put@oCircle(173,0){180}% %circle (five-membered)
+\else \if\member A%aromatic circle
+ \Put@oCircle(203,-342){240}% %circle (six-membered)
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{140}{-30}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+% ***********************
+% * setting fused rings *
+% ***********************
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonahi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{0}{0}{4}{0}%
+% \if@aclip \global\@acliptrue\fi
+% \if@bclip \global\@bcliptrue\fi
+% \if@cclip \global\@ccliptrue\fi
+\storeclipinfo
+}% %substituents on 1 to 3
+\developclipinfo
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{0}{3}{7}{0}%
+% \@gclipfalse \if@fclip \global\@gcliptrue \fi%
+% \@fclipfalse \if@eclip \global\@fcliptrue \fi%
+% \@eclipfalse \if@clip \global\@ecliptrue \fi
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+\storeclipinfo
+}%substituents on 4 to 6
+\developclipinfo
+\Put@Direct(0,-342){%
+\@aclipfalse\@bclipfalse\@cclipfalse%2003/05/01 bugfix by Shinsaku Fujita
+\set@hetatom@sixh{#3}{-6}{0}{2}{0}%
+% \@hclipfalse \if@aclip \global\@hcliptrue \fi
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+\storeclipinfo
+}%%substituent on 7
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@nonafusehi{#3}%
+% \if@iclip \global\@icliptrue \fi
+% \if@jclip \global\@jcliptrue \fi
+\storeclipinfo
+}% fused positions
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents and exocyclic bonds %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(0,0){\setsixringh{#4}{0}{0}{4}{0}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 4 to 6
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{0}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 7
+\Put@Direct(0,-342){\setsixringh{#4}{-6}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-7}{4}}% %8 for 3a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(103,-171){\setatombond{#4}{-8}{10}}%%9 for 7a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \nonaheterohi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\set@vrtx@nonafusehi| is to set an atom (stored as
+% |\@memberb|) at one (stored as |\@tmpa|) of the fused vertices
+% of a six-five ring.
+% These vertices are incapable of accomodating a spiro group.
+% On the other hand, the other positions can take spiro groups
+% (stored as |\@memberb|), which are treated by means of
+% the command |\set@hetatom@sixh|.
+% The command |\set@vrtx@nonafusehi| is used in such commands
+% as |\nonaheterohi| for treating thier ATOMLISTs,
+%
+% \begin{macro}{\set@vrtx@nonafusehi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@vrtx@nonafusehi}}
+% \begin{macrocode}
+\def\set@vrtx@nonafusehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or%%%%3
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or%4
+ \or%5
+ \or%6
+ \or%7
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+ \ifx\@tmpb\empty
+ \global\@icliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 3a position}%
+ \fi
+\or%9 (= 7a)
+ \ifx\@tmpb\empty
+ \global\@jcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 7a position}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusehi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Short-cut commands for fused heterocycles}
+%
+% The macros |\nonaheteroh| and |\nonaheterohi| can be used in the
+% form of a fixed |ATOMLIST|. Hence, the resulting commands for
+% drawing a fused heterocyle with one or more nitrogen atoms
+% have an argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% **********************************************************
+% * heterocycles having fused six- and five-membered rings *
+% * (horizontal type) *
+% **********************************************************
+%
+% N-heterocycles:
+%
+% \indoleh[BONDLIST]{SUBSLIST}
+% \indolehi[BONDLIST]{SUBSLIST}
+%
+% \isoindoleh[BONDLIST]{SUBSLIST}
+% \isoindolehi[BONDLIST]{SUBSLIST}
+%
+% \indolizineh[BONDLIST]{SUBSLIST}
+% \indolizinehi[BONDLIST]{SUBSLIST}
+% (different from the IUPAC numbering)
+%
+% \purineh[BONDLIST]{SUBSLIST}
+% \purinehi[BONDLIST]{SUBSLIST}
+% (different from the IUPAC numbering)
+%
+% O-heterocycles:
+%
+% \benzofuraneh[BONDLIST]{SUBSLIST}
+% \benzofuranehi[BONDLIST]{SUBSLIST}
+%
+% \isobenzofuranehi[BONDLIST]{SUBSLIST}
+%
+% \benzoxazoleh[BONDLIST]{SUBSLIST}
+% \benzoxazolehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The optiona `A' typesets an aromatic circle.
+% The option
+% `$n+$' ($n=1$ to $9$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond
+% j : 3a,4a-double bond
+% J : 3a,4a-double bond in the other ring
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 9)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \indoleh{1==N}{1==Cl;2==F}
+% \indoleh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\purineh}
+% \begin{macro}{\purinehi}
+% \begin{macrocode}
+\def\purineh{\@ifnextchar[{\@purineh[@}{\@purineh[ra]}}%
+\def\@purineh[#1]#2{%
+\iforigpt \typeout{command `purineh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==N;3==N;5==N;7==N}{#2}}%
+\def\purinehi{\@ifnextchar[{\@purinehi[@}{\@purinehi[ra]}}%
+\def\@purinehi[#1]#2{%
+\iforigpt \typeout{command `purinehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==N;3==N;5==N;7==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\indoleh}
+% \begin{macro}{\indolehi}
+% \begin{macrocode}
+\def\indoleh{\@ifnextchar[{\@indoleh[@}{\@indoleh[rb]}}%
+\def\@indoleh[#1]#2{%
+\iforigpt \typeout{command `indoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==N}{#2}}%
+\def\indolehi{\@ifnextchar[{\@indolehi[@}{\@indolehi[rb]}}%
+\def\@indolehi[#1]#2{%
+\iforigpt \typeout{command `indolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\indolizineh}
+% \begin{macro}{\indolizinehi}
+% \begin{macrocode}
+\def\indolizineh{%
+ \@ifnextchar[{\@indolizineh[@}{\@indolizineh[aceg]}}%
+\def\@indolizineh[#1]#2{%
+\iforigpt \typeout{command `indolizineh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{7a==N}{#2}}%
+\def\indolizinehi{%
+ \@ifnextchar[{\@indolizinehi[@}{\@indolizinehi[aceg]}}%
+\def\@indolizinehi[#1]#2{%
+\iforigpt \typeout{command `indolizinehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{7a==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isoindoleh}
+% \begin{macro}{\isoindolehi}
+% \begin{macrocode}
+\def\isoindoleh{%
+ \@ifnextchar[{\@isoindoleh[@}{\@isoindoleh[cegi]}}%
+\def\@isoindoleh[#1]#2{%
+\iforigpt \typeout{command `isoindoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{2==N}{#2}}%
+\def\isoindolehi{%
+ \@ifnextchar[{\@isoindolehi[@}{\@isoindolehi[cegi]}}%
+\def\@isoindolehi[#1]#2{%
+\iforigpt \typeout{command `isoindolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{2==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\benzofuraneh}
+% \begin{macro}{\benzofuranehi}
+% \begin{macrocode}
+\def\benzofuraneh{%
+ \@ifnextchar[{\@benzofuraneh[@}{\@benzofuraneh[rb]}}%
+\def\@benzofuraneh[#1]#2{%
+\iforigpt \typeout{command `benzofuraneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==O}{#2}}%
+\def\benzofuranehi{%
+ \@ifnextchar[{\@benzofuranehi[@}{\@benzofuranehi[rb]}}%
+\def\@benzofuranehi[#1]#2{%
+\iforigpt \typeout{command `benzofuranehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==O}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\isobenzofuraneh}
+% \begin{macro}{\isobenzofuranehi}
+% \begin{macrocode}
+\def\isobenzofuraneh{\@ifnextchar[{\@isobenzofuraneh[@}%
+ {\@isobenzofuraneh[cegi]}}%
+\def\@isobenzofuraneh[#1]#2{%
+\iforigpt \typeout{command `isobenzofuraneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{2==O}{#2}}%
+\def\isobenzofuranehi{\@ifnextchar[{\@isobenzofuranehi[@}%
+ {\@isobenzofuranehi[cegi]}}%
+\def\@isobenzofuranehi[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{2==O}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\benzoxazoleh}
+% \begin{macro}{\benzoxazolehi}
+% \begin{macrocode}
+\def\benzoxazoleh{%
+ \@ifnextchar[{\@benzoxazoleh[@}{\@benzoxazoleh[rb]}}%
+\def\@benzoxazoleh[#1]#2{%
+\iforigpt \typeout{command `benzoxazoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==O;3==N}{#2}}%
+\def\benzoxazolehi{%
+ \@ifnextchar[{\@benzoxazolehi[@}{\@benzoxazolehi[rb]}}%
+\def\@benzoxazolehi[#1]#2{%
+\iforigpt \typeout{command `benzoxazolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==O;3==N}{#2}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Building blocks}
+% \subsection{Six-membered ring unit}
+%
+% The old function (v1.01) of |\sixunitv| as a fusing ring unit
+% is succeeded by |\sixfusev| and |\sixfusevi|.
+% The command |\sixunitv| has been changed into a subsidiary
+% command of |\sixheterov| (v2.00).
+%
+% The macro |\sixunith| is a six-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * six-membered unit *
+% * (horizontal type) *
+% **********************
+% b
+% 2 3
+% a ----- c
+% * *
+% the original point ===> 1 * * 4
+% (0,0) * * d
+% f -----
+% 6 5
+% e
+% \end{verbatim}
+%
+% The macro |\sixunith| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \sixunith[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to f, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $6$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : fully saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,6-double bond
+% f : 6,1-double bond
+% {n+} : plus at the n-nitrogen atom (n = 1 to 6)
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \sixhunitv{1==N}{1==Cl;2==F}{e}
+% \end{verbatim}
+%
+% The definition of |\sixunith| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh|.
+% \end{enumerate}
+%
+% \begin{macro}{\sixunith}
+% \begin{macro}{\@sixunith}
+% \begin{macrocode}
+\def\sixunith{\@ifnextchar[{\@sixunith[@}{\@sixunith[@]}}
+\def\@sixunith[#1]#2#3#4{\sixheteroh[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/4/30}{\cs{sixunith}: Old definition deleted.}
+%
+% \subsection{Five-membered ring unit}
+% \subsubsection{Horizonatl type}
+%
+% The old function (v1.01) of |\fiveunith| as a fusing ring unit
+% is succeeded by |\fivefuseh|.
+% The command |\fiveunith| has been changed into a subsidiary
+% command of |\fiveheteroh| (v2.00).
+%
+% The macro |\fiveunith| is a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% **********************
+% * five-membered unit *
+% * (horizontal type) *
+% **********************
+%
+% 3 _____ 2
+% | *
+% | * 1 <===== the original point
+% | *
+% 4 ----- 5
+% \end{verbatim}
+%
+% The macro |\fiveunith| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \fiveunith[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveunith{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% The definition of |\fiveunith| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| partially.
+% \end{enumerate}
+%
+% \begin{macro}{\fiveunith}
+% \begin{macro}{\@fiveunith}
+% \begin{macrocode}
+\def\fiveunith{\@ifnextchar[{\@fiveunith[@}{\@fiveunith[r]}}
+\def\@fiveunith[#1]#2#3#4{\fiveheteroh[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/4/30}{\cs{fiveunith}: Old definition deleted.}
+%
+% \subsubsection{Inverse horizontal type}
+%
+% The old function (v1.01) of |\fiveunithi| as a fusing ring unit
+% is succeeded by |\fivefusehi|.
+% The command |\fiveunithi| has been changed into a subsidiary
+% command of |\fiveheterohi| (v2.00).
+%
+% The macro |\fiveunithi| typesets a five-membered fragment that can be
+% fused to another
+% ring structure to produce a new ring system. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ************************************
+% * five-membered unit *
+% * (horizontal type, inverse type) *
+% ************************************
+%
+% 2 ----- 3
+% * |
+% the original point 1 * |
+% * |
+% _____|
+% 5 4
+% \end{verbatim}
+%
+% The macro |\fiveunithi| has three arguments |ATOMLIST|, |SUBSLIST|
+% and |OMIT|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \fiveunithi[BONDLIST]{ATOMLIST}{SUBSLIST}{OMIT}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one
+% character selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $5$) represents a plus charge on a hetero atom
+% at the $n$-position.
+%
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 5)
+% {0+} : plus (or others) at the center
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one bond to be omitted.
+% The omitted edge is regarded as a fused position.
+%
+% \begin{verbatim}
+% OMIT: one bond omitted (a, b, c, d, e, or f)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \fiveunithi{1==N}{1==H;2==F}{a}
+% \end{verbatim}
+%
+% The definition of |\fiveunithi| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheteroh|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringh| partially.
+% \end{enumerate}
+%
+% \begin{macro}{\fiveunithi}
+% \begin{macro}{\@fiveunithi}
+% \begin{macrocode}
+\def\fiveunithi{\@ifnextchar[{\@fiveunithi[@}{\@fiveunithi[r]}}
+\def\@fiveunithi[#1]#2#3#4{\fiveheterohi[#1]{#2}{#3}[#4]}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v3.00}{2002/4/30}{\cs{fiveunithi}: Old definition deleted.}
+%
+% \section{Three-membered heterocycles}
+% \subsection{Horizontal type}
+%
+% The macro |\threeheteroh| typesets a three-membered ring. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% ****************************
+% * thereehetero derivatives *
+% * (horizontal type) *
+% ****************************
+
+% aaa fff
+% 3
+% | ` c
+% b | 1 bbb ccc
+% | / a
+% 2/
+% ddd eee
+%
+% -- --
+% | cf. threeehetero |
+% | fff 3--------2bbb |
+% | ` / |
+% | ddd `1/ <===== the original point |
+% | |
+% -- --
+% \end{verbatim}
+%
+% The macro |\threeheteroh| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threeheteroh(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `c' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to c; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threeheteroh{1==N}{1==Cl;2==F}
+% \threeheteroh[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \threeheteroh{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% The definition of |\threeheteroh| uses a picture environment and
+% consists of the same unit processes as shown in |\sixheterov|:
+% \begin{enumerate}
+% \item treatment of atom list,
+% \item placing outer skeletons,
+% \item placing inner double bonds,
+% \item setting hetero atoms, and
+% \item placing substituents by using |\setsixringv| partially.
+% \end{enumerate}
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\threeheteroh}
+% \begin{macro}{\@three@heteroh}
+% \begin{macro}{\@three@@heteroh}
+% \begin{macro}{\@threeheteroh}
+% \begin{macrocode}
+\def\threeheteroh{\@ifnextchar({\@three@heteroh(@}{\@three@heteroh(@)}}
+\def\@three@heteroh(#1){\@ifnextchar[{\@three@@heteroh(#1)[@}%
+{\@three@@heteroh(#1)[@]}}
+\def\@three@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheteroh(#1)[#2]{#3}{#4}[@}%
+{\@threeheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheteroh(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% The procedure of adusting substitution positions is based on
+% a horizontal six-membered ring, in which the positions
+% 4 (ddd), 6 (fff), 2 (bbb) are used in place of the positions
+% 1, 2, and 3 of the three-membered ring.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{f}{b}{@}{@}{@}%tentative use for six-h
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{3}{3}{5}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{235}\def\@@yli{-103}\fi
+\else
+\ylpositionh{#4}{-1}{1}{3}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{103}\def\@@yli{-29}\fi
+\else
+\ylpositionh{#4}{4}{5}{7}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{103}\def\@@yli{-171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-200,-240){threeheteroh}%
+(200,240)%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% The procedures of setting skeletal and inner bonds are based on
+% a vertical six-membered ring, where the bonds c, e, and a are
+% used in place of the bonds a, b, and c. Hence,
+% (1) the bond a of the latter should be related to |\bbb| and |\ccc| at
+% the one terminal and to |\eee| and |\ddd| at the other terminal;
+% (2) the bond b of the latter should be related to |\eee| and |\ddd| at
+% the one terminal and to |\aaa| and |\fff| at the other terminal; and
+% (3) the bond c of the latter should be related to |\bbb| and |\ccc| at
+% the one terminal and to |\aaa| and |\fff| at the other terminal.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % retreatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{c}{e}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{b}{d}{f}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(171,-103){\set@skel@bond{#1}{b}{e}}%
+ % bond between 2 and 3 \@bbb -> \skbonde etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{a}}%
+ % bond between 3 and 1 \@ccc -> \skbonda etc
+}%
+%
+% \Put@Direct(0,0){\skbondc}% bond between 1 and 2
+% \Put@Direct(0,-200){\skbonda}% bond between 1 and 3
+% \Put@Direct(171,-103){\skbonde}%bond between 2 and 3
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondc}%
+\else\if\member b\relax\Put@Direct(171,-103){\bonde}%
+\else\if\member c\relax\Put@Direct(0,-200){\bonda}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threeh
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% The proceduce of setting hetero atoms on the vertices of
+% a three-membered ring is based on the macro |\set@hetaromh@sixh|,
+% where the positions 4, 6, and 2 of a horizontal six-membered ring
+% are used in place of the positions 1, 2, and 3 of the three-membered ring.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+%\Put@Direct(-235,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+\Put@Direct(-215,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+%\if@clip \global\@cliptrue\fi
+\storeclipinfo
+}%subst 1 <--six h 4
+\developclipinfo
+\Put@Direct(-103,29){\set@hetatom@sixh{#3}{-1}{1}{3}{0}%
+%\if@bclip \global\@bcliptrue\fi
+\storeclipinfo
+}%subst 3 <--six h 2
+\developclipinfo
+\Put@Direct(-103,171){\set@hetatom@sixh{#3}{4}{5}{7}{0}%
+%\if@fclip \global\@fcliptrue\fi
+\storeclipinfo
+}%subst 2 <--six h 6
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-235,103){\setsixringh{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-103,29){\setsixringh{#4}{-1}{1}{3}{0}}%subst 3
+\Put@Direct(-103,171){\setsixringh{#4}{4}{5}{7}{0}}%subst 2
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \threeheteroh macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@fusionadd@threeh| is an inner command contained
+% in the definition of |\threeheteroh| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@threeh|.
+%
+% \begin{macro}{\set@fusionadd@threeh}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusionadd@threeh}}
+% \begin{macrocode}
+\def\set@fusionadd@threeh{%
+ \if\@@tmpa 0\relax%
+ \putratom{35}{85}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{80}{85}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{15}{50}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{15}{120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{180}{130}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{20}{-60}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{20}{230}{\scriptsize\@@tmpb}% % right type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@threeh
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@threeh| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@threeh}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@threeh}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@threeh{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa b\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threeh
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.01}{2013/3/19}{added \cs{oxiraneh}, \cs{aziridineh}, and \cs{thiiraneh} }
+% \begin{macro}{\oxiraneh}
+% \begin{macro}{\aziridineh}
+% \begin{macro}{\thiiraneh}
+% \begin{macrocode}
+\def\oxiraneh{\@ifnextchar[{\@oxiraneh[@}{\@oxiraneh[]}}
+\def\@oxiraneh[#1]#2{%
+\iforigpt \typeout{command `oxiraneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==O}{#2}}
+\def\aziridineh{\@ifnextchar[{\@aziridineh[@}{\@aziridineh[]}}
+\def\@aziridineh[#1]#2{%
+\iforigpt \typeout{command `aziridineh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==N}{#2}}
+\def\thiiraneh{\@ifnextchar[{\@thiiraneh[@}{\@thiiraneh[]}}
+\def\@thiiraneh[#1]#2{%
+\iforigpt \typeout{command `thiiraneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Inverse horizontal type}
+%
+% The macro |\threeheterohi| typesets a three-membered ring. The following
+% numbering is adopted in this macro.
+%
+% \begin{verbatim}
+% *******************************
+% * thereehetero derivatives *
+% * (vertical horizontal type) *
+% *******************************
+%
+% aaa bbb
+% c 3
+% / |
+% eee 1 | b
+% fff a` |
+% 2 <---original point
+% ccc ddd
+% \end{verbatim}
+%
+% The macro |\threeheterohi| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% Two optional arguments |SKBONDLIST| and |OMIT| are added to
+% treat stereochemical information or other bond situations.
+%
+% \begin{verbatim}
+% \threeheterohi(SKBONDLIST)[BONDLIST]{ATOMLIST}{SUBSLIST}[OMIT]
+% \end{verbatim}
+%
+% The |SKBONDLIST| argument contains pairs of two alphabets in
+% parentheses, e.g. (\{bA\}\{fB\}). Each pair contains a lowercase
+% character selected from bond specifiers `a' to `c' and a uppercase
+% character `A' or `B'.
+%
+% The |BONDLIST| argument contains one
+% character selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$ to $3$) represents a plus charge on a hetero atom
+% at the $n$-position.
+% The option `$n+$' ($n=4$ to $6$) represents a plus charge outside the ring.
+% The option `$0+$' typesets a plus charge at the center of the ring.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% nSd : alpha single bond at n-atom (dotted line)
+% with an alternative direction to nSA
+% nSu : beta single bond at n-atom (boldface)
+% with an alternative direction to nSB
+% nFA : alpha single bond at n-atom (dotted line)
+% for ring fusion
+% nFB : beta single bond at n-atom (boldface)
+% for ring fusion
+% nGA : alpha single bond at n-atom (dotted line)
+% for the other ring fusion
+% nGB : beta single bond at n-atom (boldface)
+% for the other ring fusion
+% \end{verbatim}
+%
+% The argument |OMIT| represents one or more bonds to be omitted.
+% The omitted edges may be regarded as both fused and non-fused
+% positions.
+%
+% \begin{verbatim}
+% OMIT: one or more bonds omitted (a to c; see BONDLIST)
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \threeheterohi{1==N}{1==Cl;2==F}
+% \threeheterohi[c]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \threeheterohi{1==N}{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% \changes{v1.02}{1998/10/31}{Adding \cs{ylposition}, \cs{if@ylsw},
+% \cs{yl@shifti}, \cs{@ylii}, \cs{yl@shiftii}, \cs{@ylii},
+% \cs{yl@xdiff} and \cs{yl@ydiff}}
+% \changes{v2.00}{1998/12/5}{Add: spiro and fused rings}
+% \changes{v2.01}{2001/6/20}{The
+% \cs{storeclipinfo} command is added.}
+%
+% \begin{macro}{\threeheterohi}
+% \begin{macro}{\@three@heterohi}
+% \begin{macro}{\@three@@heterohi}
+% \begin{macro}{\@threeheterohi}
+% \begin{macrocode}
+\def\threeheterohi{\@ifnextchar({\@three@heterohi(@}{\@three@heterohi(@)}}
+\def\@three@heterohi(#1){\@ifnextchar[{\@three@@heterohi(#1)[@}%
+{\@three@@heterohi(#1)[@]}}
+\def\@three@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheterohi(#1)[#2]{#3}{#4}[@}%
+{\@threeheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheterohi(#1)[#2]#3#4[#5]{%
+% \end{macrocode}
+%
+% The procedure of adusting substitution positions is based on
+% a horizontal six-membered ring, in which the positions
+% 1 (aaa), 5 (eee), 3 (ccc) are used in place of the positions
+% 1, 2, and 3 of the three-membered ring.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+% % treatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{e}{c}{@}{@}{@}%tentative use for six-h
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % adustment of subs positions %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{2}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-103}\fi
+\else
+\ylpositionh{#4}{0}{2}{4}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{303}\def\@@yli{-29}\fi
+\else
+\ylpositionh{#4}{3}{4}{6}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{303}\def\@@yli{-171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-400,-240){threeheterohi}%
+(400,240)%2002/4/30 by S. Fujita
+% \end{macrocode}
+%
+% The procedures of setting skeletal and inner bonds are based on
+% a vertical six-membered ring, where the bonds d, b, and f are
+% used in place of the bonds a, b, and c.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % retreatment of atom list %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{f}{d}{b}{@}{@}{@}%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{d}}%
+ % bond between 1 and 2 \@aaa -> \skbondd etc
+\Put@Direct(-171,-103){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{f}}%
+ % bond between 3 and 1 \@ccc -> \skbondf etc
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondd}%
+\else\if\member b\relax\Put@Direct(-171,-103){\bondb}%
+\else\if\member c\relax\Put@Direct(0,-200){\bondf}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+% % inner bond attachment %
+% %%%%%%%%%%%%%%%%%%%%%%%%%
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threehi
+\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+%
+% The proceduce of setting hetero atoms on the vertices of
+% a three-membered ring is based on the macro |\set@hetaromh@sixh|,
+% where the positions 1, 5, and 3 of a horizontal six-membered ring
+% are used in place of the positions 1, 2, and 3 of the three-membered ring.
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\iniflag
+\Put@Direct(-171,103){\set@hetatom@sixh{#3}{0}{0}{2}{0}%
+%\if@aclip \global\@acliptrue\fi
+\storeclipinfo
+}%subst 1 <--six h 1
+\developclipinfo
+\Put@Direct(-303,29){\set@hetatom@sixh{#3}{0}{2}{4}{0}%
+%\if@cclip \global\@ccliptrue\fi
+\storeclipinfo
+\developclipinfo
+}%subst 3 <--six h 3
+\Put@Direct(-303,171){\set@hetatom@sixh{#3}{3}{4}{6}{0}%
+%\if@eclip \global\@ecliptrue\fi
+\storeclipinfo
+}%subst 2 <--six h 5
+\developclipinfo
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\Put@Direct(-171,103){\setsixringh{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(-303,29){\setsixringh{#4}{0}{2}{4}{0}}%subst 3
+\Put@Direct(-303,171){\setsixringh{#4}{3}{4}{6}{0}}%subst 2
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \threeheterohi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@fusionadd@threehi| is an inner command contained
+% in the definition of |\threeheterohi| etc., where
+% the macro is used for setting an additive
+% or a fused ring at each bond (designated by |\@@tmpa|). The
+% fused ring is typeset by the inner command |\set@fusion@threehi|.
+%
+% \begin{macro}{\set@fusionadd@threeh}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusionadd@threehi}}
+% \begin{macrocode}
+\def\set@fusionadd@threehi{%
+ \if\@@tmpa 0\relax%
+ \putlatom{-35}{85}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 1\relax%
+ \putlatom{-80}{85}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 2\relax%
+ \putlatom{-15}{50}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 3\relax%
+ \putlatom{-15}{120}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 4\relax%
+ \putlatom{-180}{130}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-20}{-60}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-20}{230}{\scriptsize\@@tmpb}% % left type
+ \else
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+ \set@fusion@threehi
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@threehi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@threehi}
+% \changes{v2.00}{1998/12/5}{New command: \cs{set@fusion@threehi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@threehi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa b\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threehi
+%</hetaromh>
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v5.01}{2013/3/19}{added \cs{oxiranehi}, \cs{aziridinehi}, and \cs{thiiranehi} }
+% \begin{macro}{\oxiranehi}
+% \begin{macro}{\aziridinehi}
+% \begin{macro}{\thiiranehi}
+% \begin{macrocode}
+\def\oxiranehi{\@ifnextchar[{\@oxiranehi[@}{\@oxiranehi[]}}
+\def\@oxiranehi[#1]#2{%
+\iforigpt \typeout{command `oxiranehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==O}{#2}}
+\def\aziridinehi{\@ifnextchar[{\@aziridinehi[@}{\@aziridinehi[]}}
+\def\@aziridinehi[#1]#2{%
+\iforigpt \typeout{command `aziridinehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==N}{#2}}
+\def\thiiranehi{\@ifnextchar[{\@thiiranehi[@}{\@thiiranehi[]}}
+\def\@thiiranehi[#1]#2{%
+\iforigpt \typeout{command `thiiranehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==S}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/hetaromh.ins b/macros/latex/contrib/xymtex/base/hetaromh.ins
new file mode 100644
index 0000000000..bb8486a8e4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetaromh.ins
@@ -0,0 +1,58 @@
+\def\batchfile{hetaromh.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996,1998,2000,2001,2002, 2004, 2006, 2010, 2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.00a Released on November 11, 2000
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+Version 4.02 Released on December 20, 2004
+Version 4.03b Released on September 5, 2006
+Version 5.00 Released on October 01, 2010
+
+The Present Version:
+Version 5.01 Released on March 19, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files hetaromh.dtx and hetaromh.ins
+and the derived file hetaromh.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{hetaromh.drv}{t}{%
+ \from{hetaromh.dtx}{driver}}
+
+\generateFile{hetaromh.sty}{t}{%
+ \from{hetaromh.dtx}{hetaromh}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/hetaromh.sty b/macros/latex/contrib/xymtex/base/hetaromh.sty
new file mode 100644
index 0000000000..1a8fcf5e1c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/hetaromh.sty
@@ -0,0 +1,2323 @@
+%%
+%% This is file `hetaromh.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hetaromh.dtx (with options: `hetaromh')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996,1998,2000,2001,2002, 2004, 2006, 2010, 2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.00a Released on November 11, 2000
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%% Version 4.02 Released on December 20, 2004
+%% Version 4.03b Released on September 5, 2006
+%% Version 5.00 Released on October 01, 2010
+%%
+%% The Present Version:
+%% Version 5.01 Released on March 19, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files hetaromh.dtx and hetaromh.ins
+%% and the derived file hetaromh.sty.
+%%
+%% =======================================
+%%
+%% File: hetaromh.dtx
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released March 19, 2013 by Shinsaku Fujita}
+\def\j@urnalname{hetaromh}
+\def\versi@ndate{March 19, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}%
+\@ifundefined{test@vertix@decavi}{\input hetarom.sty\relax}{}%
+\unitlength=0.1pt%
+\iniatom%
+\def\hbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(42,6)(3,5){78}% %double bond 1-2
+ \else%
+ \Put@Line(42,6)(3,5){62}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(57,36)(3,5){62}% %double bond 1-2
+ \else%
+ \Put@Line(57,36)(3,5){62}% %double bond 1-2
+ \fi\fi}%
+\def\hbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty%
+ \Put@Line(42,-6)(3,-5){78}% %double bond 1-6
+ \else%
+ \Put@Line(42,-6)(3,-5){62}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(57,-36)(3,-5){62}% %double bond 1-6
+ \else%
+ \Put@Line(57,-36)(3,-5){62}% %double bond 1-6
+ \fi\fi}%
+ \def\hbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(129,138)(1,0){148}% %double bond 2-3
+ \else%
+ \Put@Line(129,138)(1,0){134}% %double bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(143,138)(1,0){134}% %double bond 3-2
+ \else%
+ \Put@Line(143,138)(1,0){110}% %double bond 3-2
+ \fi\fi}%
+ \def\hbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(364,6)(-3,5){78}% %double bond 4-3
+ \else%
+ \Put@Line(364,6)(-3,5){62}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(349,36)(-3,5){62}% %double bond 4-3
+ \else%
+ \Put@Line(349,36)(-3,5){62}% %double bond 4-3
+ \fi\fi}%
+ \def\hbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(364,-6)(-3,-5){78}% %double bond 4-5
+ \else%
+ \Put@Line(364,-6)(-3,-5){62}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(349,-36)(-3,-5){62}% %double bond 4-5
+ \else%
+ \Put@Line(349,-36)(-3,-5){62}% %double bond 4-5
+ \fi\fi}%
+\def\hbonde{%
+ \ifx\fff\empty%
+ \ifx\eee\empty%
+ \Put@Line(129,-138)(1,0){148}% %double bond 6-5
+ \else%
+ \Put@Line(129,-138)(1,0){134}% %double bond 5-6
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(143,-138)(1,0){134}% %double bond 5-6
+ \else%
+ \Put@Line(143,-138)(1,0){110}% %double bond 5-6
+ \fi\fi}%
+\def\hbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(136,-138)(0,1){277}% %double bond 4-3
+ \else%
+ \Put@Line(136,-138)(0,1){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(136,-120)(0,1){258}% %double bond 4-3
+ \else
+ \Put@Line(136,-120)(0,1){239}% %double bond 4-3
+ \fi\fi}%
+\def\hbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(270,-138)(0,0){277}% %double bond 4-3
+ \else%
+ \Put@Line(270,-138)(0,1){258}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(270,-120)(0,1){258}% %double bond 4-3
+ \else%
+ \Put@Line(270,-120)(0,1){239}% %double bond 4-3
+ \fi\fi}%
+\def\hskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \Put@Line(0,0)(3,5){103}% %bond 1-2
+ \else%
+ \Put@Line(0,0)(3,5){79}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(24,40)(3,5){79}% %bond 1-2
+ \else%
+ \Put@Line(24,40)(3,5){62}% %bond 1-2
+ \fi\fi}%
+\def\hskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty
+ \Put@Line(0,0)(3,-5){103}% %bond 1-6
+ \else%
+ \Put@Line(0,0)(3,-5){79}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(24,-40)(3,-5){79}% %bond 1-6
+ \else%
+ \Put@Line(24,-40)(3,-5){62}% %bond 1-6
+ \fi\fi}%
+\def\hskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \Put@Line(406,0)(-3,5){103}% %bond 4-3
+ \else%
+ \Put@Line(406,0)(-3,5){79}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(382,40)(-3,5){79}% %bond 4-3
+ \else%
+ \Put@Line(382,40)(-3,5){62}% %bond 4-3
+ \fi\fi}%
+\def\hskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \Put@Line(406,0)(-3,-5){103}% %bond 4-5
+ \else%
+ \Put@Line(406,0)(-3,-5){79}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \Put@Line(382,-40)(-3,-5){79}% %bond 4-5
+ \else%
+ \Put@Line(382,-40)(-3,-5){62}% %bond 4-5
+ \fi\fi}%
+\def\hskbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(103,171)(1,0){200}% %bond 2-3
+ \else%
+ \Put@Line(103,171)(1,0){160}% %bond 3-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(143,171)(1,0){160}% %bond 3-2
+ \else%
+ \Put@Line(143,171)(1,0){120}% %bond 3-2
+ \fi\fi}%
+\def\hskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \Put@Line(103,-171)(1,0){200}% %bond 6-5
+ \else%
+ \Put@Line(143,-171)(1,0){160}% %bond 5-6
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \Put@Line(103,-171)(1,0){160}% %bond 5-6
+ \else%
+ \Put@Line(143,-171)(1,0){120}% %bond 5-6
+ \fi\fi}%
+\def\hskbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \Put@Line(103,-171)(0,1){342}% %bond 4-3
+ \else%
+ \Put@Line(103,-171)(0,1){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \Put@Line(103,171)(0,-1){300}% %bond 4-3
+ \else%
+ \Put@Line(103,-129)(0,1){258}% %bond 4-3
+ \fi\fi}%
+\def\hskbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \Put@Line(303,-171)(0,1){342}% %bond 4-3
+ \else%
+ \Put@Line(303,-171)(0,1){300}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(303,171)(0,-1){300}% %bond 4-3
+ \else%
+ \Put@Line(303,-129)(0,1){258}% %bond 4-3
+ \fi\fi}%
+\def\dothskbonda{%
+ \ifx\aaa\empty%
+ \ifx\bbb\empty%
+ \dotorline(0,0)(3,5){103}/(0,0)(103,171)%
+ \else%
+ \dotorline(0,0)(3,5){79}/(0,0)(79,132)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(24,40)(3,5){79}/(24,40)(103,171)%
+ \else%
+ \dotorline(24,40)(3,5){62}/(24,40)(86,143)%
+ \fi\fi}%
+\def\dothskbondb{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \dotorline(103,171)(1,0){200}/(103,171)(303,171)%
+ \else%
+ \dotorline(103,171)(1,0){160}/(103,171)(263,171)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(143,171)(1,0){160}/(143,171)(303,171)%
+ \else%
+ \dotorline(143,171)(1,0){120}/(143,171)(263,171)%
+ \fi\fi}%
+\def\dothskbondc{%
+ \ifx\ddd\empty%
+ \ifx\ccc\empty%
+ \dotorline(406,0)(-3,5){103}/(406,0)(303,171)%
+ \else%
+ \dotorline(406,0)(-3,5){79}/(406,0)(327,132)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(382,40)(-3,5){79}/(382,40)(303,171)%
+ \else%
+ \dotorline(382,40)(-3,5){62}/(382,40)(320,143)%
+ \fi\fi}%
+\def\dothskbondd{%
+ \ifx\ddd\empty%
+ \ifx\eee\empty%
+ \dotorline(406,0)(-3,-5){103}/(406,0)(303,-171)%
+ \else%
+ \dotorline(406,0)(-3,-5){79}/(406,0)(327,-132)%
+ \fi%
+ \else%
+ \ifx\eee\empty%
+ \dotorline(382,-40)(-3,-5){79}/(382,-40)(303,-171)%
+ \else%
+ \dotorline(382,-40)(-3,-5){62}/(382,-40)(320,-143)%
+ \fi\fi}%
+\def\dothskbonde{%
+ \ifx\eee\empty%
+ \ifx\fff\empty%
+ \dotorline(103,-171)(1,0){200}/(103,-171)(303,-171)%
+ \else%
+ \dotorline(143,-171)(1,0){160}/(143,-171)(303,-171)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(103,-171)(1,0){160}/(103,-171)(263,-171)%
+ \else%
+ \dotorline(143,-171)(1,0){120}/(143,-171)(263,-171)%
+ \fi\fi}%
+\def\dothskbondf{%
+ \ifx\aaa\empty%
+ \ifx\fff\empty
+ \dotorline(0,0)(3,-5){103}/(0,0)(103,-171)%
+ \else%
+ \dotorline(0,0)(3,-5){79}/(0,0)(79,-131)%
+ \fi%
+ \else%
+ \ifx\fff\empty%
+ \dotorline(24,-40)(3,-5){79}/(24,-40)(103,-171)%
+ \else%
+ \dotorline(24,-40)(3,-5){62}/(24,-40)(86,-143)%
+ \fi\fi}%
+\def\dothskbondvert{%
+ \ifx\fff\empty%
+ \ifx\bbb\empty%
+ \dotorline(103,-171)(0,1){342}/(103,-171)(103,171)%
+ \else%
+ \dotorline(103,-171)(0,1){300}/(103,-171)(103,129)%
+ \fi%
+ \else%
+ \ifx\bbb\empty%
+ \dotorline(103,171)(0,-1){300}/(103,171)(103,-129)%
+ \else%
+ \dotorline(103,-129)(0,1){258}/(103,-129)(103,129)%
+ \fi\fi}%
+\def\dothskbondverti{%
+ \ifx\eee\empty%
+ \ifx\ccc\empty%
+ \dotorline(303,-171)(0,1){342}/(303,-171)(303,171)%
+ \else%
+ \dotorline(303,-171)(0,1){300}/(303,-171)(303,129)%
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \dotorline(303,171)(0,-1){300}/(303,171)(303,-129)%
+ \else%
+ \dotorline(303,-129)(0,1){258}/(303,-129)(303,129)%
+ \fi\fi}%
+\def\set@skel@bondh#1#2#3{%
+ \expandafter\if\csname @#2#2#2\endcsname #2\relax%OK
+ % \if\@aaa #2\relax%OK
+ \def\skbondreplace{#3}%
+ \@skbondlistfalse
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \if\@@tmpb A\relax%
+ \@skbondlisttrue
+ \expandafter\csname dothskbond#3\endcsname% \dothskbonda etc.
+ \else\if\@@tmpb B\relax%
+ \@skbondlisttrue
+ {\thicklines
+ \expandafter\csname hskbond#3\endcsname% \hskbonda etc.
+ }%
+ \else%%%added for color 2010/10/01
+ \@skbondlisttrue%
+ \put(0,0){\@@tmpb}%
+ \fi\fi
+ \fi%
+ }%
+ \if@skbondlist\else
+ {\thinlines
+ \expandafter\csname hskbond#3\endcsname% \hskbonda etc.
+ }%
+ \fi%
+ \else
+ \expandafter\ifx\csname @#2#2#2\endcsname \empty\relax%
+ % \ifx\@aaa\empty\relax
+ \@tfor\member:=#1\do{%
+ \expandafter\twoCH@@R\member//%
+ \if\@@tmpa #2\relax%
+ \XyMTeXWarning{Unavailable bond `#2' in SKBONDLIST}\fi
+ }%
+ \fi\fi
+}% end of \set@skel@bondh
+\def\sixheteroh{\@ifnextchar({\@six@heteroh(@}{\@six@heteroh(@)}}
+\def\@six@heteroh(#1){\@ifnextchar[{\@six@@heteroh(#1)[@}%
+{\@six@@heteroh(#1)[@]}}
+\def\@six@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheteroh(#1)[#2]{#3}{#4}[@}%
+{\@sixheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheteroh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@sixh{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{7}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixheteroh}%2002/4/30 by S. Fujita
+{%
+\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \hskbondd etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{f}% bond between 6 and 1 \@fff -> \hskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax \hbondd\hbondf\hbondb%
+\else \if\member l\relax \hbonda\hbondc\hbonde%
+\else \if\member a\relax \hbonda%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondc%
+\else \if\member d\relax \hbondd%
+\else \if\member e\relax \hbonde%
+\else \if\member f\relax \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixh
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{0}{0}{7}{0}% %atom 1--6%
+\setsixringh{#4}{0}{0}{7}{0}% %subst 1--6
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixheteroh macro
+\def\test@vrtx@sixh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or% \xdef\aaa{\@memberb}%
+ \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or% \xdef\bbb{\@memberb}%
+ \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or% \xdef\ccc{\@memberb}%
+ \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or% \xdef\ddd{\@memberb}%
+ \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or% \xdef\eee{\@memberb}%
+ \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or% \xdef\fff{\@memberb}%
+ \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@sixh
+\def\sixheterohi{\@ifnextchar({\@six@heterohi(@}{\@six@heterohi(@)}}
+\def\@six@heterohi(#1){\@ifnextchar[{\@six@@heterohi(#1)[@}%
+{\@six@@heterohi(#1)[@]}}
+\def\@six@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@sixheterohi(#1)[#2]{#3}{#4}[@}%
+{\@sixheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@sixheterohi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@sixhi{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{0}{5}{-1}% %subst 1--4
+\ylpositionh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(880,800)(-240,-400){sixheterohi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 5 \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{e}{e}% bond between 5 and 6 \@eee -> \hskbonde etc
+\set@skel@bondh{#1}{f}{d}% bond between 6 and 1 \@fff -> \hskbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax \hbondd \hbondf \hbondb%
+\else \if\member l\relax \hbonda \hbondc \hbonde%
+\else \if\member a\relax \hbondc%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbonda%
+\else \if\member d\relax \hbondf%
+\else \if\member e\relax \hbonde%
+\else \if\member f\relax \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \set@fusionadd@sixhi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{5}{0}{5}{-1}% %subst 1--4
+\set@hetatom@sixh{#3}{11}{4}{7}{-1}% %subst 5 and 6
+\setsixringh{#4}{5}{0}{5}{-1}% %subst 1--4
+\setsixringh{#4}{11}{4}{7}{-1}% %subst 5 and 6
+\end{ShiftPicEnv}%
+\iniatom\iniflag}% %end of \sixheterohi macro
+\def\test@vrtx@sixhi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+\fi\fi}%
+}% end of \test@vrtx@sixhi
+\def\pyridineh{\@ifnextchar[{\@pyridineh[@}{\@pyridineh[r]}}%
+\def\@pyridineh[#1]#2{%
+\iforigpt \typeout{command `pyridineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N}{#2}}%end of \pyridineh macro
+\def\pyridinehi{\@ifnextchar[{\@pyridinehi}{\@pyridinehi[r]}}%
+\def\@pyridinehi[#1]#2{%
+\iforigpt \typeout{command `pyridinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N}{#2}}% %end of \pyridinehi macro
+\def\pyrazineh{\@ifnextchar[{\@pyrazineh[@}{\@pyrazineh[r]}}%
+\def\@pyrazineh[#1]#2{%
+\iforigpt \typeout{command `pyrazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;4==N}{#2}}%end of \pyrazineh macro
+\def\pyrazinehi{\@ifnextchar[{\@pyrazinehi[@}{\@pyrazinehi[r]}}%
+\def\@pyrazinehi[#1]#2{%
+\iforigpt \typeout{command `pyrazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;4==N}{#2}}%end of \pyrazinehi macro
+\def\pyrimidineh{%
+ \@ifnextchar[{\@pyrimidineh[@}{\@pyrimidineh[r]}}%
+\def\@pyrimidineh[#1]#2{%
+\iforigpt \typeout{command `pyrimidineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;3==N}{#2}}%
+ %end of \pyrimidineh macro
+\def\pyrimidinehi{%
+ \@ifnextchar[{\@pyrimidinehi[@}{\@pyrimidinehi[r]}}%
+\def\@pyrimidinehi[#1]#2{%
+\iforigpt \typeout{command `pyrimidinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;3==N}{#2}}%end of \pyrimidinehi macro
+\def\pyridazineh{\@ifnextchar[{\@pyridazineh[@}{\@pyridazineh[r]}}%
+\def\@pyridazineh[#1]#2{%
+\iforigpt \typeout{command `pyridazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;2==N}{#2}}%
+ %end of \pyridazineh macro
+\def\pyridazinehi{%
+ \@ifnextchar[{\@pyridazinehi}{\@pyridazinehi[r]}}%
+\def\@pyridazinehi[#1]#2{%
+\iforigpt \typeout{command `pyridazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;2==N}{#2}}%end of \pyridazinehi macro
+\def\triazineh{\@ifnextchar[{\@triazineh[@}{\@triazineh[r]}}%
+\def\@triazineh[#1]#2{%
+\iforigpt \typeout{command `triazineh' %
+ is based on `sixheteroh'.}\fi%
+\sixheteroh[#1]{1==N;3==N;5==N}{#2}}%end of \triazineh macro
+\def\triazinehi{\@ifnextchar[{\@triazinehi[@}{\@triazinehi[r]}}%
+\def\@triazinehi[#1]#2{%
+\iforigpt \typeout{command `triazinehi' %
+ is based on `sixheterohi'.}\fi%
+\sixheterohi[#1]{1==N;3==N;5==N}{#2}}%end of \triazinehi macro
+\def\fiveheteroh{\@ifnextchar({\@five@heteroh(@}{\@five@heteroh(@)}}
+\def\@five@heteroh(#1){\@ifnextchar[{\@five@@heteroh(#1)[@}%
+{\@five@@heteroh(#1)[@]}}
+\def\@five@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheteroh(#1)[#2]{#3}{#4}[@}%
+{\@fiveheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheteroh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vrtx@fivehi{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{1}{5}{-1}% % for 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylpositionh{#4}{10}{4}{7}{-1}% % for 4 to 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fiveheteroh}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \skbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \skbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 4 \@ccc -> \skbondhoriz etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \skbonde etc
+\set@skel@bondh{#1}{e}{d}% bond between 5 and 1 \@eee -> \skbondd etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax \hbondc%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondvert%
+\else \if\member d\relax \hbonde%
+\else \if\member e\relax \hbondd%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fiveh
+\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{1}{5}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% % for 1 to 3
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{10}{4}{7}{-1}%
+\storeclipinfo%added 2001/06/20 by S. Fujita
+}% % for 4 to 5
+\developclipinfo%added 2001/06/20 by S. Fujita
+\Put@Direct(0,0){\setsixringh{#4}{5}{1}{5}{-1}}% % for 1 to 3
+\Put@Direct(0,0){\setsixringh{#4}{10}{4}{7}{-1}}% % for 4 to 5
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \fiveheteroh macro
+\def\test@vrtx@fivehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \if\@tmpb s\relax\def\ddd{}\else\def\ddd{@}\fi
+ \or \if\@tmpb s\relax\def\ccc{}\else\def\ccc{@}\fi
+ \or \if\@tmpb s\relax\def\bbb{}\else\def\bbb{@}\fi
+ \or \if\@tmpb s\relax\def\fff{}\else\def\fff{@}\fi
+ \or \if\@tmpb s\relax\def\eee{}\else\def\eee{@}\fi
+ \or \if\@tmpb s\relax\def\aaa{}\else\def\aaa{@}\fi% dummy
+\fi\fi}%
+}% end of \test@vrtx@sixhi
+\def\fiveheterohi{\@ifnextchar({\@five@heterohi(@}{\@five@heterohi(@)}}
+\def\@five@heterohi(#1){\@ifnextchar[{\@five@@heterohi(#1)[@}%
+{\@five@@heterohi(#1)[@]}}
+\def\@five@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@fiveheterohi(#1)[#2]{#3}{#4}[@}%
+{\@fiveheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@fiveheterohi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{b}{c}{e}{f}{d}%d--dummy
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{4}{0}% % for 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+\ylpositionh{#4}{1}{4}{7}{0}% % for 4 to 5
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(800,880)(-240,-400){fiveheterohi}%2002/4/30 by S. Fujita
+{\resetbdsw%
+\@bond@@omit{#5}%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 4 \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{d}{e}% bond between 4 and 5 \@ddd -> \hskbonde etc
+\set@skel@bondh{#1}{e}{f}% bond between 5 and 6 \@eee -> \hskbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r%
+\else \if\member a\relax \hbonda%
+\else \if\member b\relax \hbondb%
+\else \if\member c\relax \hbondverti%
+\else \if\member d\relax \hbonde%
+\else \if\member e\relax \hbondf%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(173,0){180}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@fivehi
+\fi\fi\fi\fi\fi\fi\fi}%
+\set@hetatom@sixh{#3}{0}{0}{4}{0}% % for 1 to 3
+\set@hetatom@sixh{#3}{1}{4}{7}{0}% % for 4 to 5
+\setsixringh{#4}{0}{0}{4}{0}% % for 1 to 3
+\setsixringh{#4}{1}{4}{7}{0}% % for 4 to 5
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \fiveheterohi macro
+\def\pyrroleh{\@ifnextchar[{\@pyrroleh[@}{\@pyrroleh[bd]}}%
+\def\@pyrroleh[#1]#2{%
+\iforigpt \typeout{command `pyrroleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N}{#2}}%
+\def\pyrazoleh{\@ifnextchar[{\@pyrazoleh[@}{\@pyrazoleh[bd]}}%
+\def\@pyrazoleh[#1]#2{%
+\iforigpt \typeout{command `pyrazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N;2==N}{#2}}%
+\def\imidazoleh{\@ifnextchar[{\@imidazoleh[@}{\@imidazoleh[bd]}}%
+\def\@imidazoleh[#1]#2{%
+\iforigpt \typeout{command `imidazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==N;3==N}{#2}}%
+\def\isoxazoleh{\@ifnextchar[{\@isoxazoleh[@}{\@isoxazoleh[bd]}}%
+\def\@isoxazoleh[#1]#2{%
+\iforigpt \typeout{command `isoxazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O;2==N}{#2}}%
+\def\oxazoleh{\@ifnextchar[{\@oxazoleh[@}{\@oxazoleh[bd]}}%
+\def\@oxazoleh[#1]#2{%
+\iforigpt \typeout{command `oxazoleh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O;3==N}{#2}}%
+\def\furanh{\@ifnextchar[{\@furanh[@}{\@furanh[bd]}}
+\def\@furanh[#1]#2{%
+\iforigpt \typeout{command `furanh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==O}{#2}}
+\def\thiopheneh{\@ifnextchar[{\@thiopheneh[@}{\@thiopheneh[bd]}}
+\def\@thiopheneh[#1]#2{%
+\iforigpt \typeout{command `thiopheneh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{1==S}{#2}}
+\def\pyrrolehi{\@ifnextchar[{\@pyrrolehi[@}{\@pyrrolehi[bd]}}%
+\def\@pyrrolehi[#1]#2{%
+\iforigpt \typeout{command `pyrrolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N}{#2}}%
+\def\pyrazolehi{\@ifnextchar[{\@pyrazolehi[@}{\@pyrazolehi[bd]}}%
+\def\@pyrazolehi[#1]#2{%
+\iforigpt \typeout{command `pyrazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N;2==N}{#2}}%
+\def\imidazolehi{\@ifnextchar[{\@imidazolehi[@}{\@imidazolehi[bd]}}%
+\def\@imidazolehi[#1]#2{%
+\iforigpt \typeout{command `imidazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==N;3==N}{#2}}%
+\def\isoxazolehi{\@ifnextchar[{\@isoxazolehi[@}{\@isoxazolehi[bd]}}%
+\def\@isoxazolehi[#1]#2{%
+\iforigpt \typeout{command `isoxazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O;2==N}{#2}}%
+\def\oxazolehi{\@ifnextchar[{\@oxazolehi[@}{\@oxazolehi[bd]}}%
+\def\@oxazolehi[#1]#2{%
+\iforigpt \typeout{command `oxazolehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O;3==N}{#2}}%
+\def\furanhi{\@ifnextchar[{\@furanhi[@}{\@furanhi[bd]}}
+\def\@furanhi[#1]#2{%
+\iforigpt \typeout{command `furanhi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==O}{#2}}
+\def\thiophenehi{\@ifnextchar[{\@thiophenehi[@}{\@thiophenehi[bd]}}
+\def\@thiophenehi[#1]#2{%
+\iforigpt \typeout{command `thiophenehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{1==S}{#2}}
+\def\decaheteroh{\@ifnextchar({\@deca@heteroh(@}{\@deca@heteroh(@)}}
+\def\@deca@heteroh(#1){\@ifnextchar[{\@deca@@heteroh(#1)[@}%
+{\@deca@@heteroh(#1)[@]}}
+\def\@deca@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheteroh(#1)[#2]{#3}{#4}[@}%
+{\@decaheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheteroh(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@sixv{#3}{a}{b}{c}{d}{e}{f}%
+\test@vertix@decav{#3}{g}{h}{i}{j}{@}{@}%
+\@reset@ylsw%
+\ylhetpositionh{#4}{0}{0}{5}{0}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylhetpositionh{#4}{-1}{3}{7}{0}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylhetpositionh{#4}{-7}{0}{2}{0}% %substituent on 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{4}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{10}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){decaheteroh}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{c}% bond between 3 and 4 \@ccc -> \hskbondc etc
+\set@skel@bondh{#1}{d}{d}% bond between 4 and 5 \@ddd -> \skbondd etc
+\set@skel@bondh{#1}{k}{e}% bond between 7 and 8 \@kkk -> \skbonde etc
+\set@skel@bondh{#1}{j}{f}% bond between 7 and 8 \@jjj -> \skbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{i}{a}}%
+ % bond between 8a and 8 \@iii -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{c}}%
+ % bond between 4a and 5 \@eee -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{d}}%
+ % bond between 5 and 6 \@fff -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{e}}%
+ % bond between 6 and 7 \@ggg -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{f}}%
+ % bond between 7 and 8 \@hhh -> \hskbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4%
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+\else \if\member d\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 4 and 4a
+}%
+\else \if\member e\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 5 and 4a
+}%
+\else \if\member f\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+}%
+\else \if\member i\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 8 and 8a
+}%
+\else \if\member j\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 8a
+}%
+\else \if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+}%
+\else \if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 8a and 4a in the other ring
+}%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \if\member B%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 4\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decah
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{0}{0}{5}{0}%
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{-1}{3}{7}{0}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{-7}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+ \@aclipfalse%2006/9/5added
+\storeclipinfo
+}%%substituent on 8
+\Put@Direct(0,0){\set@vrtx@fuseh{#3}%
+\storeclipinfo
+}% fused positions
+\developclipinfo
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringh{#4}{0}{0}{5}{0}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{-1}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 8
+\Put@Direct(0,-342){\setsixringh{#4}{-7}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-8}{4}}% %9 for 4a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(103,-171){\setatombond{#4}{-9}{10}}% %10 for 8a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \decaheteroh macro
+\def\ylhetpositionh#1#2#3#4#5{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifnum#5<0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax\fi
+\ifnum\@tmpaa>#3\relax%
+\ifnum\@tmpaa<#4\relax%
+\ifcase\@tmpaa%0 omit
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \else
+ \gdef\@ylii{30}\gdef\@yli{0}\global\@ylswtrue%\@ylatrue% subst. on 1
+ \fi
+ \or
+ \ifx\bbb\empty
+ \gdef\@ylii{-103}\gdef\@yli{-171}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{-223}\global\@ylswtrue%\@ylbtrue% subst. on 2
+ \fi
+ \or
+ \ifx\ccc\empty
+ \gdef\@ylii{-303}\gdef\@yli{-171}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{-223}\global\@ylswtrue%\@ylctrue% subst. on 3
+ \fi
+ \or
+ \ifx\ddd\empty
+ \gdef\@ylii{-406}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \else
+ \gdef\@ylii{-436}\gdef\@yli{0}\global\@ylswtrue%\@yldtrue% subst. on 4
+ \fi
+ \or
+ \ifx\eee\empty
+ \gdef\@ylii{-303}\gdef\@yli{171}\global\@ylswtrue%\@yletrue% subst. on 5
+ \else
+ \gdef\@ylii{-333}\gdef\@yli{223}\global\@ylswtrue%\@yletrue% subst. on 5
+ \fi
+ \or
+ \ifx\fff\empty
+ \gdef\@ylii{-103}\gdef\@yli{171}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \else
+ \gdef\@ylii{-73}\gdef\@yli{223}\global\@ylswtrue%\@ylftrue% subst. on 6
+ \fi
+\fi%end of ifcase
+\fi\fi\fi\fi\fi}}%
+\def\decaheterohi{\@ifnextchar({\@deca@heterohi(@}{\@deca@heterohi(@)}}
+\def\@deca@heterohi(#1){\@ifnextchar[{\@deca@@heterohi(#1)[@}%
+{\@deca@@heterohi(#1)[@]}}
+\def\@deca@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@decaheterohi(#1)[#2]{#3}{#4}[@}%
+{\@decaheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@decaheterohi(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@decavi{#3}%
+\@reset@ylsw%
+\ylhetpositionh{#4}{5}{0}{5}{-1}% %substituents on 1 to 4
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylhetpositionh{#4}{12}{3}{7}{-1}% %substituents on 6 to 8
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylhetpositionh{#4}{-4}{0}{2}{0}% %substituent on 5
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-9}{4}% %10 for 8a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{10}% %9 for 4a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){decaheterohi}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@bondh{#1}{c}{a}% bond between 3 and 4 \@ccc -> \hskbonda etc
+\set@skel@bondh{#1}{d}{f}% bond between 4 and 4a \@ddd -> \hskbondf etc
+\set@skel@bondh{#1}{k}{e}% bond between 4a and 8a \@kkk -> \hskbonde etc
+\set@skel@bondh{#1}{j}{d}% bond between 8a and 1 \@jjj -> \hskbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{a}}%
+ % bond between 4a and 5 \@eee -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{i}{c}}%
+ % bond between 8a and 8 \@iii -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{d}}%
+ % bond between 7 and 8 \@hhh -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{e}}%
+ % bond between 6 and 7 \@ggg -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{f}}%
+ % bond between 5 and 6 \@fff -> \hskbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\fff=\jjj \let\eee=\iii%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+\else \if\member b\relax
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member d\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 8a
+}%
+\else \if\member e\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 8 and 8a
+}%
+\else \if\member f\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 8 and 7
+}%
+\else \if\member g\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 5 and 6
+}%
+\else \if\member i\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 5 and 4a
+}%
+\else \if\member j\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 4 and 4a
+}%
+\else \if\member k\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 8a and 4a
+}%
+\else \if\member K\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 8a and 4a
+}%
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,0){240}% %circle
+\else \if\member B%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle
+\else \expandafter\twoCH@@R\member//%
+ \def\aax{8a}\def\aay{4a}\def\aaz{10}%
+ \if\@@tmpa 4\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aaz\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@decahi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+\iniflag
+\@tmpclipfalse
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{0}{5}{-1}%
+\storeclipinfo
+}% %substituents on 1 to 4
+\developclipinfo
+\Put@Direct(0,-342){\iniflag%2000/11/11 by Shinsaku Fujita
+ \set@hetatom@sixh{#3}{12}{3}{7}{-1}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+\storeclipinfo
+}%substituents on 6 to 8
+\developclipinfo
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{-4}{0}{2}{0}%
+ \@aclipfalse \if@aclip \@hcliptrue \fi%
+\storeclipinfo
+}%%substituent on 5
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@decafusehi{#3}%
+ \@tmpclipfalse
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \fi
+ \if@tmpclip \@jcliptrue \fi
+\storeclipinfo
+}% fused positions
+\developclipinfo
+\global\drawsamesubsttrue%2002/05/30 warning on
+\Put@Direct(0,0){\setsixringh{#4}{5}{0}{5}{-1}}% %substituents on 1 to 4
+\global\drawsamesubstfalse%2002/05/30 warning off
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 6 to 8
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{12}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 5
+\Put@Direct(0,-342){\setsixringh{#4}{-4}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-9}{4}}% %10 for 8a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi
+ \Put@Direct(103,-171){\setatombond{#4}{-8}{10}}% %9 for 4a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \decaheterohi macro
+\def\set@vrtx@decafusehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or\or
+ \or%%%%4
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \fi\fi\fi\fi
+ \or\or\or
+ \or%8
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \fi\fi\fi\fi
+\or%9 (= 4a)
+ \ifx\@tmpb\empty%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden fused position `4a' or `9'}%
+ \fi
+\or%10 (= 8a)
+ \ifx\@tmpb\empty%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden fused position `8a' or `10'}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@decafusehi
+\def\set@fusion@decahi{%
+ \let\@@tmpa=\@tmpa
+ \let\@@tmpb=\@tmpb
+ \if\@tmpa a%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa A%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa b%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa B%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa c%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa C%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \else\if\@tmpa d%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `d'}%
+ \fi
+ \else\if\@tmpa D%
+ \let\@@tmpa=\@tmpa
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `D'}%
+ \fi
+ \else\if\@tmpa e%
+ \edef\@@tmpa{c}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `e'}%
+ \fi
+ \else\if\@tmpa E%
+ \edef\@@tmpa{C}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `E'}%
+ \fi
+ \else\if\@tmpa f%
+ \edef\@@tmpa{d}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa F%
+ \edef\@@tmpa{D}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa g%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa G%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa h%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa H%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \else\if\@tmpa i%
+ \edef\@@tmpa{a}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `i'}%
+ \fi
+ \else\if\@tmpa I%
+ \edef\@@tmpa{A}%
+ \Put@Direct(0,-342){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `I'}%
+ \fi
+ \else\if\@tmpa j%
+ \edef\@@tmpa{f}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `j'}%
+ \fi
+ \else\if\@tmpa J%
+ \edef\@@tmpa{F}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Unfavorable Fusion for bond `J'}%
+ \fi
+ \else\if\@tmpa k%
+ \edef\@@tmpa{e}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `k'}%
+ \fi
+ \else\if\@tmpa K%
+ \edef\@@tmpa{E}%
+ \Put@Direct(0,0){\set@fusionadd@sixhi}%
+ \if@smallringsw\else
+ \XyMTeXWarning{Forbidden Fusion for bond `K'}%
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}% end of the macro \set@fusion@decahi
+\def\quinolineh{%
+ \@ifnextchar[{\@quinolineh[@}{\@quinolineh[acfhk]}}%
+\def\@quinolineh[#1]#2{%
+\iforigpt \typeout{command `quinolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N}{#2}}%
+\def\quinolinehi{%
+ \@ifnextchar[{\@quinolinehi[@}{\@quinolinehi[acfhk]}}%
+\def\@quinolinehi[#1]#2{%
+\iforigpt \typeout{command `quinolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N}{#2}}%
+\def\isoquinolineh{%
+ \@ifnextchar[{\@isoquinolineh[@}{\@isoquinolineh[acfhk]}}%
+\def\@isoquinolineh[#1]#2{%
+\iforigpt \typeout{command `isoquinolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{2==N}{#2}}%
+\def\isoquinolinehi{%
+ \@ifnextchar[{\@isoquinolinehi[@}{\@isoquinolinehi[acfhk]}}%
+\def\@isoquinolinehi[#1]#2{%
+\iforigpt \typeout{command `isoquinolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{2==N}{#2}}%
+\def\quinoxalineh{%
+ \@ifnextchar[{\@quinoxalineh[@}{\@quinoxalineh[acfhk]}}%
+\def\@quinoxalineh[#1]#2{%
+\iforigpt \typeout{command `quinoxalineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;4==N}{#2}}%
+\def\quinoxalinehi{%
+ \@ifnextchar[{\@quinoxalinehi[@}{\@quinoxalinehi[acfhk]}}%
+\def\@quinoxalinehi[#1]#2{%
+\iforigpt \typeout{command `quinoxalinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;4==N}{#2}}%
+\def\quinazolineh{%
+ \@ifnextchar[{\@quinazolineh[@}{\@quinazolineh[acfhk]}}%
+\def\@quinazolineh[#1]#2{%
+\iforigpt \typeout{command `quinazolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;3==N}{#2}}%
+\def\quinazolinehi{%
+ \@ifnextchar[{\@quinazolinehi[@}{\@quinazolinehi[acfhk]}}%
+\def\@quinazolinehi[#1]#2{%
+\iforigpt \typeout{command `quinazolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;3==N}{#2}}%
+\def\cinnolineh{%
+ \@ifnextchar[{\@cinnolineh[@}{\@cinnolineh[acfhk]}}%
+\def\@cinnolineh[#1]#2{%
+\iforigpt \typeout{command `cinnolineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;2==N}{#2}}%
+\def\cinnolinehi{%
+ \@ifnextchar[{\@cinnolinehi[@}{\@cinnolinehi[acfhk]}}%
+\def\@cinnolinehi[#1]#2{%
+\iforigpt \typeout{command `cinnolinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;2==N}{#2}}%
+\def\pteridineh{%
+ \@ifnextchar[{\@pteridineh[@}{\@pteridineh[acfhk]}}%
+\def\@pteridineh[#1]#2{%
+\iforigpt \typeout{command `pteridineh' %
+ is based on `decaheteroh'.}\fi%
+\decaheteroh[#1]{1==N;3==N;5==N;8==N}{#2}}%
+\def\pteridinehi{%
+ \@ifnextchar[{\@pteridinehi[@}{\@pteridinehi[acfhk]}}%
+\def\@pteridinehi[#1]#2{%
+\iforigpt \typeout{command `pteridinehi' %
+ is based on `decaheterohi'.}\fi%
+\decaheterohi[#1]{1==N;3==N;5==N;8==N}{#2}}%
+\def\nonaheteroh{\@ifnextchar({\@nona@heteroh(@}{\@nona@heteroh(@)}}
+\def\@nona@heteroh(#1){\@ifnextchar[{\@nona@@heteroh(#1)[@}%
+{\@nona@@heteroh(#1)[@]}}
+\def\@nona@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheteroh(#1)[#2]{#3}{#4}[@}%
+{\@nonaheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheteroh(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%
+\test@vertix@nonav{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{5}{1}{5}{-1}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylpositionh{#4}{11}{3}{7}{-1}% %substituents on 5 to 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylpositionh{#4}{-3}{0}{2}{0}%%substituent on 4
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{4}% %9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{10}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){nonaheteroh}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{c}% bond between 1 and 2 \@aaa -> \hskbondc etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondvert}%
+ % bond between 3 and 3a \@ccc -> \hskbondhoriz etc
+\set@skel@bondh{#1}{j}{e}% bond between 3a and 7a \@jjj -> \hskbonde etc
+\set@skel@bondh{#1}{i}{d}% bond between 7a and 1 \@iii -> \hskbondd etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{d}{a}}%
+ % bond between 3a and 4 \@ddd -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{c}}%
+ % bond between 7a and 7 \@hhh -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{d}}%
+ % bond between 6 and 7 \@ggg -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{f}}%
+ % bond between 4 and 5 \@eee -> \hskbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 3a and 7a
+ \Put@Direct(0,-342){\hbondf}% bond between 4 and 5
+ \Put@Direct(0,-342){\hbondd}% bond between 6 and 7
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbondc}% bond between 3 and 4
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondvert}% bond between 3 and 3a
+\else \if\member d\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 4 and 3a
+}%
+\else \if\member e\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 4 and 5
+}%
+\else \if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\ddd=\eee \let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 6 and 7
+}%
+\else \if\member h\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 7 and 7a
+}%
+\else \if\member i\relax%
+{\let\eee=\iii%
+ \Put@Direct(0,0){\hbondd}% bond between 1 and 7a
+}%
+\else \if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 7a and 3a
+}%
+\else \if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 7a and 3a
+}%
+\else \if\member B%left aromatic circle
+ \Put@oCircle(233,0){180}% %circle (five-membered)
+\else \if\member A%left aromatic circle
+ \Put@oCircle(203,-342){240}% %circle (six-membered)
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{3a}\def\aay{7a}%
+ \if\@@tmpa 1\relax%
+ \putratom{272}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{196}{-30}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonah
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+\iniflag
+\@tmpclipfalse
+\Put@Direct(0,-342){%
+%%\@clipfalse%2003/5/1 bugfix by Shinsaku Fujita deleted/2006/9/5
+\set@hetatom@sixh{#3}{11}{3}{7}{-1}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi%
+ \@clipfalse%2006/9/5added
+\storeclipinfo
+}%substituents on 5 to 7
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{5}{1}{5}{-1}%
+\storeclipinfo
+}% %substituents on 1 to 3
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{-3}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi%%2006/9/5 bugfix
+\storeclipinfo
+}%%substituent on 4
+%%\developclipinfo%%2006/9/5 deleted
+\Put@Direct(0,0){\set@vrtx@nonafuseh{#3}%
+ \@iclipfalse%2006/9/5 bugfix by Shinsaku Fujita
+ \@jclipfalse%2006/9/5 bugfix by Shinsaku Fujita
+ \@tmpclipfalse
+%% \if@iclip \global\@tmpcliptrue \fi
+%% \if@jclip \global\@icliptrue \fi
+%% \if@tmpclip \global\@jcliptrue \fi
+ \if@iclip \@tmpcliptrue \fi
+ \if@jclip \@icliptrue \else \@iclipfalse \fi
+ \if@tmpclip \@jcliptrue \else \@jclipfalse \fi
+\storeclipinfo
+}% fused positions
+\developclipinfo
+\Put@Direct(0,0){\setsixringh{#4}{5}{1}{5}{-1}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 5 to 7
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{11}{3}{7}{-1}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 4
+\Put@Direct(0,-342){\setsixringh{#4}{-3}{0}{2}{0}}%
+}%
+{%
+ \@clipfusefalse \if@jclip \@clipfusetrue \fi%2006/9/5
+ \Put@Direct(303,-171){\setatombond{#4}{-8}{4}}% %9 for 7a position
+}%
+{%
+ \@clipfusefalse \if@iclip \@clipfusetrue \fi%2006/9/5
+ \Put@Direct(103,-171){\setatombond{#4}{-7}{10}}% %8 for 3a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \nonaheteroh macro
+\def\set@vrtx@nonafuseh#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa\or\or
+ \or%%%%3
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \fi\fi\fi\fi
+ \or\or\or
+ \or%7
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\if\@tmpb h%
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \else\if\@tmpb s%
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \else\ifx\@tmpb\empty\relax
+ \else
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \fi\fi\fi\fi
+\or%8 (= 3a)
+ \ifx\@tmpb\empty%
+ \global\@icliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden fused position `3a' or `8'}%
+ \fi
+\or%9 (= 7a)
+ \ifx\@tmpb\empty%
+ \global\@jcliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden fused position `7a' or `9'}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafuseh
+\def\nonaheterohi{\@ifnextchar({\@nona@heterohi(@}{\@nona@heterohi(@)}}
+\def\@nona@heterohi(#1){\@ifnextchar[{\@nona@@heterohi(#1)[@}%
+{\@nona@@heterohi(#1)[@]}}
+\def\@nona@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@nonaheterohi(#1)[#2]{#3}{#4}[@}%
+{\@nonaheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@nonaheterohi(#1)[#2]#3#4[#5]{%
+\iniflag\iniatom%initialize
+\test@vertix@nonavi{#3}%
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{4}{0}% %substituents on 1 to 3
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\let\ddd=\eee\let\eee=\fff\let\fff=\gggA
+\ylpositionh{#4}{0}{3}{7}{0}%%substituents on 4 to 6
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{\let\aaa=\hhh
+\ylpositionh{#4}{-6}{0}{2}{0}%%substituent on 7
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{342}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-7}{4}% %8 for 3a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-303}\def\@@yli{171}\fi
+\else
+{%
+\clipdetection%
+\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+\ylatombondposition{#4}{-8}{10}%%9 for 7a position
+}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-103}\def\@@yli{171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1200,1200)(-400,-800){nonaheterohi}%2002/4/30 by S. Fujita
+\begingroup
+\resetbdsw%
+\@bond@@omit{#5}%
+{\let\fff=\jjj \let\eee=\iii%
+\set@skel@bondh{#1}{a}{a}% bond between 1 and 2 \@aaa -> \hskbonda etc
+\set@skel@bondh{#1}{b}{b}% bond between 2 and 3 \@bbb -> \hskbondb etc
+\set@skel@longbond{#1}{c}{hskbondverti}%
+ % bond between 3 and 3a \@ccc -> \hskbondverti etc
+\set@skel@bondh{#1}{j}{e}% bond between 3a and 7a \@jjj -> \hskbonde etc
+\set@skel@bondh{#1}{i}{f}% bond between 7a and 1 \@iii -> \hskbondf etc
+}%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+\Put@Direct(0,-342){\set@skel@bondh{#1}{h}{a}}%
+ % bond between 7a and 7 \@hhh -> \hskbonda etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{d}{c}}%
+ % bond between 3a and 4 \@ddd -> \hskbondc etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{e}{d}}%
+ % bond between 4 and 5 \@eee -> \hskbondd etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{f}{e}}%
+ % bond between 5 and 6 \@fff -> \hskbonde etc
+\Put@Direct(0,-342){\set@skel@bondh{#1}{g}{f}}%
+ % bond between 6 and 7 \@ggg -> \hskbondf etc
+}%
+\endgroup
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+{\let\aaa=\hhh \let\ddd=\eee\let\eee=\fff\let\fff=\gggA%
+ \let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 3a and 7a
+ \Put@Direct(0,-342){\hbondf}% bond between 6 and 7
+ \Put@Direct(0,-342){\hbondd}% bond between 4 and 5
+}%
+\else \if\member l\relax%
+\else \if\member a\relax%
+ \Put@Direct(0,0){\hbonda}% bond between 1 and 2
+\else \if\member b\relax%
+ \Put@Direct(0,0){\hbondb}% bond between 2 and 3
+\else \if\member c\relax%
+ \Put@Direct(0,0){\hbondverti}% bond between 3 and 3a
+\else \if\member d\relax%
+{\let\ccc=\iii \let\ddd=\eee%
+ \Put@Direct(0,-342){\hbondc}% bond between 4 and 3a
+}%
+\else \if\member e\relax%
+{\let\ddd=\eee\let\eee=\fff%
+ \Put@Direct(0,-342){\hbondd}% bond between 4 and 5
+}%
+\else \if\member f\relax%
+{\let\eee=\fff \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbonde}% bond between 5 and 6
+}%
+\else \if\member g\relax%
+{\let\aaa=\hhh \let\fff=\gggA%
+ \Put@Direct(0,-342){\hbondf}% bond between 7 and 6
+}%
+\else \if\member h\relax%
+{\let\aaa=\hhh \let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbonda}% bond between 7 and 7a
+}%
+\else \if\member i\relax%
+{\let\fff=\jjj%
+ \Put@Direct(0,0){\hbondf}% bond between 1 and 7a
+}%
+\else \if\member j\relax%
+{\let\ccc=\iii\let\bbb=\jjj%
+ \Put@Direct(0,-342){\hbondb}% bond between 7a and 3a
+}%
+\else \if\member J\relax%
+{\let\eee=\iii\let\fff=\jjj%
+ \Put@Direct(0,0){\hbonde}% bond between 7a and 3a
+}%
+\else \if\member B%aromatic circle
+ \Put@oCircle(173,0){180}% %circle (five-membered)
+\else \if\member A%aromatic circle
+ \Put@oCircle(203,-342){240}% %circle (six-membered)
+\else
+ \expandafter\twoCH@@R\member//%
+ \def\aax{7a}\def\aay{3a}%
+ \if\@@tmpa 1\relax%
+ \putratom{68}{-18}{\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{233}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{120}{60}{\@@tmpb}% % right type
+ \else\if\@@tmpa 7\relax%
+ \putratom{68}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{120}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{233}{-452}{\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{272}{-360}{\@@tmpb}% % right type
+ \else\if\@@tmpa 9\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aax\relax%
+ \putratom{120}{-110}{\@@tmpb}% % right type
+ \else\ifx\@@tmpa\aay\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 8\relax%
+ \putratom{233}{-110}{\@@tmpb}% % right type
+ \else\if\@@tmpa 0\relax%
+ \putratom{140}{-30}{\@@tmpb}% % right type
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \expandafter\twoCH@R\member//%
+ \set@fusion@nonahi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+\fi\fi\fi\fi\fi\fi}%
+\iniflag
+\Put@Direct(0,0){\set@hetatom@sixh{#3}{0}{0}{4}{0}%
+\storeclipinfo
+}% %substituents on 1 to 3
+\developclipinfo
+\Put@Direct(0,-342){\set@hetatom@sixh{#3}{0}{3}{7}{0}%
+ \@gclipfalse \if@fclip \@gcliptrue \fi%
+ \@fclipfalse \if@eclip \@fcliptrue \fi%
+ \@eclipfalse \if@clip \@ecliptrue \fi
+\storeclipinfo
+}%substituents on 4 to 6
+\developclipinfo
+\Put@Direct(0,-342){%
+\@aclipfalse\@bclipfalse\@cclipfalse%2003/05/01 bugfix by Shinsaku Fujita
+\set@hetatom@sixh{#3}{-6}{0}{2}{0}%
+ \@hclipfalse \if@aclip \@hcliptrue \fi
+\storeclipinfo
+}%%substituent on 7
+\developclipinfo
+\Put@Direct(0,0){\set@vrtx@nonafusehi{#3}%
+\storeclipinfo
+}% fused positions
+\developclipinfo
+\Put@Direct(0,0){\setsixringh{#4}{0}{0}{4}{0}}% %substituents on 1 to 3
+{\@clipfalse \if@eclip \@cliptrue \fi% %substituents on 4 to 6
+ \@eclipfalse \if@fclip \@ecliptrue \fi%
+ \@fclipfalse \if@gclip \@fcliptrue \fi%
+\Put@Direct(0,-342){\setsixringh{#4}{0}{3}{7}{0}}%
+}%
+{\@aclipfalse \if@hclip \@acliptrue \fi% %substituent on 7
+\Put@Direct(0,-342){\setsixringh{#4}{-6}{0}{2}{0}}%
+}%
+{\@clipfusefalse \if@iclip \@clipfusetrue \fi%
+ \Put@Direct(303,-171){\setatombond{#4}{-7}{4}}% %8 for 3a position
+}%
+{\@clipfusefalse \if@jclip \@clipfusetrue \fi%
+ \Put@Direct(103,-171){\setatombond{#4}{-8}{10}}%%9 for 7a position
+}%
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \nonaheterohi macro
+\def\set@vrtx@nonafusehi#1{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifcase\@tmpa%
+ \or
+ \or
+ \or%%%%3
+ \if\@tmpb a%
+ \global\@icliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else\relax
+ \fi
+ \or%4
+ \or%5
+ \or%6
+ \or%7
+ \if\@tmpb a%
+ \global\@jcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else\relax
+ \fi
+\or%8 (= 3a)
+ \ifx\@tmpb\empty
+ \global\@icliptrue%
+ \putratom{273}{-211}{\@memberb}% % right type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 3a position}%
+ \fi
+\or%9 (= 7a)
+ \ifx\@tmpb\empty
+ \global\@jcliptrue%
+ \putlatom{135}{-211}{\@memberb}% % left type
+ \else
+ \XyMTeXWarning{Forbidden spiro ring for the 7a position}%
+ \fi
+\fi\fi}%
+}% end of the macro \set@vrtx@nonafusehi
+\def\purineh{\@ifnextchar[{\@purineh[@}{\@purineh[ra]}}%
+\def\@purineh[#1]#2{%
+\iforigpt \typeout{command `purineh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==N;3==N;5==N;7==N}{#2}}%
+\def\purinehi{\@ifnextchar[{\@purinehi[@}{\@purinehi[ra]}}%
+\def\@purinehi[#1]#2{%
+\iforigpt \typeout{command `purinehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==N;3==N;5==N;7==N}{#2}}%
+\def\indoleh{\@ifnextchar[{\@indoleh[@}{\@indoleh[rb]}}%
+\def\@indoleh[#1]#2{%
+\iforigpt \typeout{command `indoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==N}{#2}}%
+\def\indolehi{\@ifnextchar[{\@indolehi[@}{\@indolehi[rb]}}%
+\def\@indolehi[#1]#2{%
+\iforigpt \typeout{command `indolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==N}{#2}}%
+\def\indolizineh{%
+ \@ifnextchar[{\@indolizineh[@}{\@indolizineh[aceg]}}%
+\def\@indolizineh[#1]#2{%
+\iforigpt \typeout{command `indolizineh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{7a==N}{#2}}%
+\def\indolizinehi{%
+ \@ifnextchar[{\@indolizinehi[@}{\@indolizinehi[aceg]}}%
+\def\@indolizinehi[#1]#2{%
+\iforigpt \typeout{command `indolizinehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{7a==N}{#2}}%
+\def\isoindoleh{%
+ \@ifnextchar[{\@isoindoleh[@}{\@isoindoleh[cegi]}}%
+\def\@isoindoleh[#1]#2{%
+\iforigpt \typeout{command `isoindoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{2==N}{#2}}%
+\def\isoindolehi{%
+ \@ifnextchar[{\@isoindolehi[@}{\@isoindolehi[cegi]}}%
+\def\@isoindolehi[#1]#2{%
+\iforigpt \typeout{command `isoindolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{2==N}{#2}}%
+\def\benzofuraneh{%
+ \@ifnextchar[{\@benzofuraneh[@}{\@benzofuraneh[rb]}}%
+\def\@benzofuraneh[#1]#2{%
+\iforigpt \typeout{command `benzofuraneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==O}{#2}}%
+\def\benzofuranehi{%
+ \@ifnextchar[{\@benzofuranehi[@}{\@benzofuranehi[rb]}}%
+\def\@benzofuranehi[#1]#2{%
+\iforigpt \typeout{command `benzofuranehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==O}{#2}}%
+\def\isobenzofuraneh{\@ifnextchar[{\@isobenzofuraneh[@}%
+ {\@isobenzofuraneh[cegi]}}%
+\def\@isobenzofuraneh[#1]#2{%
+\iforigpt \typeout{command `isobenzofuraneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{2==O}{#2}}%
+\def\isobenzofuranehi{\@ifnextchar[{\@isobenzofuranehi[@}%
+ {\@isobenzofuranehi[cegi]}}%
+\def\@isobenzofuranehi[#1]#2{%
+\iforigpt \typeout{command `isobenzofuranehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{2==O}{#2}}%
+\def\benzoxazoleh{%
+ \@ifnextchar[{\@benzoxazoleh[@}{\@benzoxazoleh[rb]}}%
+\def\@benzoxazoleh[#1]#2{%
+\iforigpt \typeout{command `benzoxazoleh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{1==O;3==N}{#2}}%
+\def\benzoxazolehi{%
+ \@ifnextchar[{\@benzoxazolehi[@}{\@benzoxazolehi[rb]}}%
+\def\@benzoxazolehi[#1]#2{%
+\iforigpt \typeout{command `benzoxazolehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{1==O;3==N}{#2}}%
+\def\sixunith{\@ifnextchar[{\@sixunith[@}{\@sixunith[@]}}
+\def\@sixunith[#1]#2#3#4{\sixheteroh[#1]{#2}{#3}[#4]}
+\def\fiveunith{\@ifnextchar[{\@fiveunith[@}{\@fiveunith[r]}}
+\def\@fiveunith[#1]#2#3#4{\fiveheteroh[#1]{#2}{#3}[#4]}
+\def\fiveunithi{\@ifnextchar[{\@fiveunithi[@}{\@fiveunithi[r]}}
+\def\@fiveunithi[#1]#2#3#4{\fiveheterohi[#1]{#2}{#3}[#4]}
+
+\def\threeheteroh{\@ifnextchar({\@three@heteroh(@}{\@three@heteroh(@)}}
+\def\@three@heteroh(#1){\@ifnextchar[{\@three@@heteroh(#1)[@}%
+{\@three@@heteroh(#1)[@]}}
+\def\@three@@heteroh(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheteroh(#1)[#2]{#3}{#4}[@}%
+{\@threeheteroh(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheteroh(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{d}{f}{b}{@}{@}{@}%tentative use for six-h
+\@reset@ylsw%
+\ylpositionh{#4}{3}{3}{5}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{235}\def\@@yli{-103}\fi
+\else
+\ylpositionh{#4}{-1}{1}{3}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{103}\def\@@yli{-29}\fi
+\else
+\ylpositionh{#4}{4}{5}{7}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{103}\def\@@yli{-171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-200,-240){threeheteroh}%
+(200,240)%2002/4/30 by S. Fujita
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{c}{e}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{b}{d}{f}{@}{@}{@}%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{c}}%
+ % bond between 1 and 2 \@aaa -> \skbondc etc
+\Put@Direct(171,-103){\set@skel@bond{#1}{b}{e}}%
+ % bond between 2 and 3 \@bbb -> \skbonde etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{a}}%
+ % bond between 3 and 1 \@ccc -> \skbonda etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondc}%
+\else\if\member b\relax\Put@Direct(171,-103){\bonde}%
+\else\if\member c\relax\Put@Direct(0,-200){\bonda}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threeh
+\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(-215,103){\set@hetatom@sixh{#3}{3}{3}{5}{0}%
+\storeclipinfo
+}%subst 1 <--six h 4
+\developclipinfo
+\Put@Direct(-103,29){\set@hetatom@sixh{#3}{-1}{1}{3}{0}%
+\storeclipinfo
+}%subst 3 <--six h 2
+\developclipinfo
+\Put@Direct(-103,171){\set@hetatom@sixh{#3}{4}{5}{7}{0}%
+\storeclipinfo
+}%subst 2 <--six h 6
+\developclipinfo
+\Put@Direct(-235,103){\setsixringh{#4}{3}{3}{5}{0}}%subst 1
+\Put@Direct(-103,29){\setsixringh{#4}{-1}{1}{3}{0}}%subst 3
+\Put@Direct(-103,171){\setsixringh{#4}{4}{5}{7}{0}}%subst 2
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \threeheteroh macro
+\def\set@fusionadd@threeh{%
+ \if\@@tmpa 0\relax%
+ \putratom{35}{85}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 1\relax%
+ \putratom{80}{85}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 2\relax%
+ \putratom{15}{50}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 3\relax%
+ \putratom{15}{120}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 4\relax%
+ \putratom{180}{130}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 5\relax%
+ \putratom{20}{-60}{\scriptsize\@@tmpb}% % right type
+ \else\if\@@tmpa 6\relax%
+ \putratom{20}{230}{\scriptsize\@@tmpb}% % right type
+ \else
+ \set@fusion@threeh
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@threeh{%
+\if\@@tmpa b\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threeh
+\def\oxiraneh{\@ifnextchar[{\@oxiraneh[@}{\@oxiraneh[]}}
+\def\@oxiraneh[#1]#2{%
+\iforigpt \typeout{command `oxiraneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==O}{#2}}
+\def\aziridineh{\@ifnextchar[{\@aziridineh[@}{\@aziridineh[]}}
+\def\@aziridineh[#1]#2{%
+\iforigpt \typeout{command `aziridineh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==N}{#2}}
+\def\thiiraneh{\@ifnextchar[{\@thiiraneh[@}{\@thiiraneh[]}}
+\def\@thiiraneh[#1]#2{%
+\iforigpt \typeout{command `thiiraneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{1==S}{#2}}
+\def\threeheterohi{\@ifnextchar({\@three@heterohi(@}{\@three@heterohi(@)}}
+\def\@three@heterohi(#1){\@ifnextchar[{\@three@@heterohi(#1)[@}%
+{\@three@@heterohi(#1)[@]}}
+\def\@three@@heterohi(#1)[#2]#3#4{\@ifnextchar[%
+{\@threeheterohi(#1)[#2]{#3}{#4}[@}%
+{\@threeheterohi(#1)[#2]{#3}{#4}[@]}}
+\def\@threeheterohi(#1)[#2]#3#4[#5]{%
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{a}{e}{c}{@}{@}{@}%tentative use for six-h
+\@reset@ylsw%
+\ylpositionh{#4}{0}{0}{2}{0}%subst 1
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{171}\def\@@yli{-103}\fi
+\else
+\ylpositionh{#4}{0}{2}{4}{0}%subst 3
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{303}\def\@@yli{-29}\fi
+\else
+\ylpositionh{#4}{3}{4}{6}{0}%subst 2
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{303}\def\@@yli{-171}\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(580,700)(-400,-240){threeheterohi}%
+(400,240)%2002/4/30 by S. Fujita
+\iniatom\iniflag%initialize
+\test@vertix@sixv{#3}{e}{c}{a}{@}{@}{@}%
+\test@vertix@sixv{#3}{f}{d}{b}{@}{@}{@}%
+{\resetbdsw%
+\@bond@@omit{#5}%
+\Put@Direct(0,0){\set@skel@bond{#1}{a}{d}}%
+ % bond between 1 and 2 \@aaa -> \skbondd etc
+\Put@Direct(-171,-103){\set@skel@bond{#1}{b}{b}}%
+ % bond between 2 and 3 \@bbb -> \skbondb etc
+\Put@Direct(0,-200){\set@skel@bond{#1}{c}{f}}%
+ % bond between 3 and 1 \@ccc -> \skbondf etc
+}%
+\@tfor\member:=#2\do{%
+\if\member r\relax%
+\else\if\member a\relax\Put@Direct(0,0){\bondd}%
+\else\if\member b\relax\Put@Direct(-171,-103){\bondb}%
+\else\if\member c\relax\Put@Direct(0,-200){\bondf}%
+\else\if\member A\relax% aromatic circle
+ \Put@oCircle(70,103){100}% %circle
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusionadd@threehi
+\fi\fi\fi\fi\fi%
+}%
+\iniflag
+\Put@Direct(-171,103){\set@hetatom@sixh{#3}{0}{0}{2}{0}%
+\storeclipinfo
+}%subst 1 <--six h 1
+\developclipinfo
+\Put@Direct(-303,29){\set@hetatom@sixh{#3}{0}{2}{4}{0}%
+\storeclipinfo
+\developclipinfo
+}%subst 3 <--six h 3
+\Put@Direct(-303,171){\set@hetatom@sixh{#3}{3}{4}{6}{0}%
+\storeclipinfo
+}%subst 2 <--six h 5
+\developclipinfo
+\Put@Direct(-171,103){\setsixringh{#4}{0}{0}{2}{0}}%subst 1
+\Put@Direct(-303,29){\setsixringh{#4}{0}{2}{4}{0}}%subst 3
+\Put@Direct(-303,171){\setsixringh{#4}{3}{4}{6}{0}}%subst 2
+\end{ShiftPicEnvB}%
+\iniatom\iniflag}% %end of \threeheterohi macro
+\def\set@fusionadd@threehi{%
+ \if\@@tmpa 0\relax%
+ \putlatom{-35}{85}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 1\relax%
+ \putlatom{-80}{85}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 2\relax%
+ \putlatom{-15}{50}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 3\relax%
+ \putlatom{-15}{120}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 4\relax%
+ \putlatom{-180}{130}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 5\relax%
+ \putlatom{-20}{-60}{\scriptsize\@@tmpb}% % left type
+ \else\if\@@tmpa 6\relax%
+ \putlatom{-20}{230}{\scriptsize\@@tmpb}% % left type
+ \else
+ \set@fusion@threehi
+ \fi\fi\fi\fi\fi\fi\fi%
+}%
+\def\set@fusion@threehi{%
+\if\@@tmpa b\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{-200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{0}{200}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa a\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{0}{200}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{-171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+\fi\fi\fi\fi\fi\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@threehi
+\def\oxiranehi{\@ifnextchar[{\@oxiranehi[@}{\@oxiranehi[]}}
+\def\@oxiranehi[#1]#2{%
+\iforigpt \typeout{command `oxiranehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==O}{#2}}
+\def\aziridinehi{\@ifnextchar[{\@aziridinehi[@}{\@aziridinehi[]}}
+\def\@aziridinehi[#1]#2{%
+\iforigpt \typeout{command `aziridinehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==N}{#2}}
+\def\thiiranehi{\@ifnextchar[{\@thiiranehi[@}{\@thiiranehi[]}}
+\def\@thiiranehi[#1]#2{%
+\iforigpt \typeout{command `thiiranehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{1==S}{#2}}
+\endinput
+%%
+%% End of file `hetaromh.sty'.
diff --git a/macros/latex/contrib/xymtex/base/lewisstruc.dtx b/macros/latex/contrib/xymtex/base/lewisstruc.dtx
new file mode 100644
index 0000000000..c09cf229bb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lewisstruc.dtx
@@ -0,0 +1,1242 @@
+% \iffalse meta-comment
+%% File: lewisstruc.dtx
+%
+% Copyright 2009, 2010, 2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file (lewisstruc.sty) is a successor to:
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files lewisstruc.dtx and lewisstruc.ins
+% and the derived file lewisstruc.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lewisstruc}
+% \def\versi@ndate{November 03, 2009}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lewisstruc}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1697}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2009/11/03}{first edition for LaTeX2e}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \changes{v5.01}{2013/08/02}{bug fix}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{lewisstruc.dtx}[2013/08/02 v5.01 lewisstruc package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{lewisstruc.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Lewis Structures by {\sffamily lewisstruc.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kanagawa, 258-0019 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{lewisstruc.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{lewisstruc:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% lewisstruc & lewisstruc.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*lewisstruc>
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released August 02, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{lewisstruc}
+\def\versi@ndate{August 02, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% The definition of the macro \verb/\LewisTetrahedralA/ uses the command
+% \verb/\tetrahedral/ defined in the \textsf{aliphat} package of
+% the \XyMTeX{} system.
+%
+% \begin{macrocode}
+\RequirePackage{aliphat}
+%\@ifundefined{tetrahedral}{\input aliphat.sty\relax}{}
+% \end{macrocode}
+%
+% \section{Basic Macros}
+% \subsection{Lone Pairs}
+%
+% \begin{macro}{\dotnodimension}
+% A basic command \verb/\dotnodimension/ is used to draw a dot (an electron).
+% \begin{macrocode}
+\def\dotnodimension{\smash{\hbox to0pt{\hss.\hss}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\verticalpair}
+% The command \verb/\verticalpair/ is used to draw a vertical lone pair.
+% \begin{macro}{\horizontalpair}
+% The command \verb/\horizontalpair/ is used to draw a vertical lone pair.
+% \begin{macrocode}
+\def\verticalpair{\vbox{%
+\dotnodimension
+\nointerlineskip
+\kern0.3em
+\dotnodimension}}
+\def\horizontalpair{%
+\hbox{\dotnodimension\kern0.3em\dotnodimension}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\nwlonepair}
+% The command \verb/\nwlonepair/ is used to draw a lone pair located at
+% the northwest position.
+% \begin{macro}{\selonepair}
+% The command \verb/\selonepair/ is used to draw a lone pair at
+% the southest posistion.
+% \begin{macro}{\swlonepair}
+% The command \verb/\swlonepair/ is used to draw a lone pair at
+% the southwest position.
+% \begin{macro}{\nelonepair}
+% The command \verb/\nelonepair/ is used to draw a lone pair at
+% the northeast position.
+% \begin{macrocode}
+\def\nwlonepair{%
+\vtop{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\selonepair{%
+\vbox{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\swlonepair{%
+\vbox{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+\def\nelonepair{%
+\vtop{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LewisSbond}
+% The command \verb/\LewisSbond/ is used to draw a vertical lone pair
+% used in a horizontal position. For example, \verb/H\LewisSbond H/
+% outputs H:H for representing a hydrogen molecule.
+% \begin{macrocode}
+\def\LewisSbond{\raise0.12em\hbox to0.25em{\hss\verticalpair\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\overpair}
+% The command \verb/\overpair/ is used to draw a horizontal lone pair
+% at the head of an atom specified by its argument.
+% \begin{macro}{\underpair}
+% The command \verb/\underpair/ is used to draw a horizontal lone pair
+% under an atom specified by its argument.
+% \begin{macrocode}
+\def\overpair#1{\leavevmode\setbox0=\hbox{#1}%
+\vbox{\hbox to\wd0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\box0}}
+\def\underpair#1{\leavevmode\setbox0=\hbox{#1}%
+\dimen0=\wd0
+\vbox to\ht0{\box0
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}\vss}}%
+\vss}}%bug fix 2013/08/02 \vss added
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Atoms Linked by a Lewis Bond}
+%
+% An atom (\verb/OverAtom/) which is attached to the top of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\overpairover/ command.
+%
+% \begin{verbatim}
+% \overpairover{BaseAtom}{OverAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\overpairover}
+% \begin{macrocode}
+\def\overpairover#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0%
+\ifx\temp@@a\empty\box0\else%
+\vbox{%
+\hbox to\dimen0{\hss#2\hss}%
+\nointerlineskip\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox{\box0}}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% An atom (\verb/UnderAtom/) which is attached to the bottom of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\overpairover/ command.
+%
+% \begin{verbatim}
+% \underpairunder{BaseAtom}{UnderAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\underpairunder}
+% \begin{macrocode}
+\def\underpairunder#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0\dimen1=\ht0
+\ifx\temp@@a\empty\box0\else%
+\vbox to\dimen1{\hbox{\box0}%
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.18em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox to\dimen0{\hss#2\hss}%
+\vss}}%
+\vss}\fi}%bug fix2013/08/02
+% \end{macrocode}
+% \end{macro}
+%
+%
+% An atom (\verb/NWAtom/) which is attached to the northwest of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\leftlonepairover/ command.
+%
+% \begin{verbatim}
+% \leftlonepairover{BaseAtom}{NWAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\leftlonepairover}
+% \begin{macrocode}
+\def\leftlonepairover#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\raise0.9em\hbox{#2}\kern-0.05em\raise0.8em\hbox{\nwlonepair}\kern-0.1em}#1\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% An atom (\verb/NEAtom/) which is attached to the northeast of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\rightlonepairover/ command.
+%
+% \begin{verbatim}
+% \rightlonepairover{BaseAtom}{NEAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\rightlonepairover}
+% \begin{macrocode}
+\def\rightlonepairover#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\raise0.8em\hbox{\nelonepair}\kern-0.05em%
+\raise0.9em\hbox{#2}\hss}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% An atom (\verb/SWAtom/) which is attached to the southwest of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\leftlonepairunder/ command.
+%
+% \begin{verbatim}
+% \leftlonepairunder{BaseAtom}{NEAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\leftlonepairunder}
+% \begin{macrocode}
+\def\leftlonepairunder#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\lower0.9em\hbox{#2}\kern-0.05em%
+\lower0.2em\hbox{\swlonepair}\kern-0.1em}#1\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% An atom (\verb/SEAtom/) which is attached to the southeast of an atom (\verb/BaseAtom/)
+% through a Lewis bond is drawn by the following \verb/\rightlonepairunder/ command.
+%
+% \begin{verbatim}
+% \rightlonepairunder{BaseAtom}{SEAtom}
+% \end{verbatim}
+%
+% \begin{macro}{\rightlonepairunder}
+% \begin{macrocode}
+\def\rightlonepairunder#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\lower0.2em\hbox{\selonepair}\kern-0.05em%
+\lower0.9em\hbox{#2}\hss}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% Atoms (W, X, Y, and Z) which are attached to a central atom (A)
+% through Lewis bonds are drawn by the following \verb/\LewistetrahedralA/ command.
+%
+% \begin{verbatim}
+% \LewistetrahedralA{0==A;1==W;2==X;3==Y;4==Z}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% W
+% :
+% 4 Z : A : X 2
+% :
+% Y
+% 3
+% \end{verbatim}
+%
+% Each of the atoms can be omitted.
+%
+% \begin{macro}{\LewistetrahedralA}
+% \begin{macrocode}
+\def\LewistetrahedralA#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\ifx\temp@e\empty
+\ifx\temp@c\empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else%c not empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi
+\else%e not empty
+\ifx\temp@c\empty
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi\fi
+\endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Atoms (W, X, Y, and Z) which are attached to a central atom (A)
+% through Lewis bonds are drawn by the following \verb/\LewistetrahedralB/ command.
+%
+% \begin{verbatim}
+% \LewistetrahedralB{0==A;1==W;2==X;3==Y;4==Z}
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% 4 Z W 1
+% : :
+% A
+% : :
+% 3 Y X 2
+%
+% \end{verbatim}
+%
+% Each of the atoms can be omitted.
+%
+% \begin{macro}{\LewistetrahedralB}
+% \begin{macrocode}
+\def\LewistetrahedralB#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\rightlonepairover{%
+\leftlonepairover{\leftlonepairunder{%
+\rightlonepairunder{\temp@a}{\temp@c}}{\temp@d}}{\temp@e}}{\temp@b}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Lone Pairs around an Atom}
+%
+% Four lone pairs which are attached to a central atom (A)
+% are drawn by the following \verb/\lonepairAitoiv/ command,
+% where each of the top four argumets takes 0 (absence) or 1 (presence) for
+% representing the absence or presece of a lone pair. The larst argument
+% represents the central atom.
+%
+% \begin{verbatim}
+% \lonepairAitoiv{0 or 1}{0 or 1}{0 or 1}{0 or 1}{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% :
+% 4 : A : 2
+% :
+% 3
+% \end{verbatim}
+%
+% \begin{macro}{\lonepairAitoiv}
+% \begin{macrocode}
+\def\lonepairAitoiv#1#2#3#4#5{\leavevmode
+\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}}%
+\else
+\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}%
+\fi%
+\lower0.2em\hbox{\vbox{\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+\kern0.2em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}%
+\fi
+}}%
+\ifnum#2=0\relax
+\phantom{\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}}%
+\else
+\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% A common code for transforming a command to another command is
+% defined as the command \verb/\fromfourobjects/
+%
+% \begin{macro}{\fromfourobjects}
+% \begin{macrocode}
+\def\fromfourobjects#1#2{%
+\ifnum#1=1234\relax
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\else\ifnum#1=123\relax
+\TEMP@Command{1}{1}{1}{0}{#2}%
+\else\ifnum#1=124\relax
+\TEMP@Command{1}{1}{0}{1}{#2}%
+\else\ifnum#1=134\relax
+\TEMP@Command{1}{0}{1}{1}{#2}%
+\else\ifnum#1=234\relax
+\TEMP@Command{0}{1}{1}{1}{#2}%
+\else\ifnum#1=12\relax
+\TEMP@Command{1}{1}{0}{0}{#2}%
+\else\ifnum#1=13\relax
+\TEMP@Command{1}{0}{1}{0}{#2}%
+\else\ifnum#1=14\relax
+\TEMP@Command{1}{0}{0}{1}{#2}%
+\else\ifnum#1=23\relax
+\TEMP@Command{0}{1}{1}{0}{#2}%
+\else\ifnum#1=24\relax
+\TEMP@Command{0}{1}{0}{1}{#2}%
+\else\ifnum#1=34\relax
+\TEMP@Command{0}{0}{1}{1}{#2}%
+\else\ifnum#1=1\relax
+\TEMP@Command{1}{0}{0}{0}{#2}%
+\else\ifnum#1=2\relax
+\TEMP@Command{0}{1}{0}{0}{#2}%
+\else\ifnum#1=3\relax
+\TEMP@Command{0}{0}{1}{0}{#2}%
+\else\ifnum#1=4\relax
+\TEMP@Command{0}{0}{0}{1}{#2}%
+\else
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% The command \verb/\lonepairAitoiv/ is converted into
+% the command \verb/\lonepairA/, where four lone pairs are
+% specified by a set of numbers 1234, 234, etc as an optional
+% argument. The main argument specifies a central atom.
+%
+% \begin{verbatim}
+% \lonepairA[1234, etc.]{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% :
+% 4 : A : 2
+% :
+% 3
+% \end{verbatim}
+%
+% \begin{macro}{\lonepairA}
+% \begin{macrocode}
+\def\lonepairA{\@ifnextchar[{\l@nepairA}{\l@nepairA[1234]}}
+\def\l@nepairA[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairAitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Four unpaired electron which are attached to a central atom (A)
+% are drawn by the following \verb/\tetraradical/ command,
+% where each of the top four argumets takes 0 (absence) or 1 (presence) for
+% representing the absence or presece of an unpaired electron. The larst argument
+% represents the central atom.
+%
+% \begin{verbatim}
+% \tetraradical{0 or 1}{0 or 1}{0 or 1}{0 or 1}{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% .
+% 4 . A . 2
+% .
+% 3
+% \end{verbatim}
+%
+% \begin{macro}{\chemradical}
+% \begin{macro}{\tetraradical}
+% \begin{macrocode}
+\def\chemradical{\hbox to0pt{\hss.\hss}}
+\def\tetraradical#1#2#3#4#5{\leavevmode\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}}%
+\else
+\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}%
+\fi%
+%\kern0pt
+\lower0.22em\hbox{\vbox{%
+\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+%\kern0.2em
+\kern0.12em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}%
+\fi
+}}%
+%\kern0pt
+\ifnum#2=0\relax
+\phantom{\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}}%
+\else
+\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command \verb/\tetraradical/ is converted into
+% the command \verb/\chemradicalA/, where four unpaired electrons are
+% specified by a set of numbers 1234, 234, etc. as an optional
+% argument. The main argument specifies a central atom.
+%
+% \begin{verbatim}
+% \chemradicalA[1234, etc.]{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% .
+% 4 . A . 2
+% .
+% 3
+% \end{verbatim}
+%
+% \begin{macro}{\chemradicalA}
+% \begin{macrocode}
+\def\chemradicalA{\@ifnextchar[{\chemr@dicalA}{\chemr@dicalA[1234]}}
+\def\chemr@dicalA[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradical%
+\fromfourobjects{#1}{#2}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Four lone pairs which are attached to a central atom (A) in another mode
+% are drawn by the following \verb/\lonepairBitoiv/ command,
+% where each of the top four argumets takes 0 (absence) or 1 (presence) for
+% representing the absence or presece of a lone pair. The larst argument
+% represents the central atom.
+%
+% \begin{verbatim}
+% \lonepairBitoiv{0 or 1}{0 or 1}{0 or 1}{0 or 1}{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 4 1
+% : :
+% A
+% : :
+% 3 2
+% \end{verbatim}
+%
+% \begin{macro}{\lonepairBitoiv}
+% \begin{macrocode}
+\def\lonepairBitoiv#1#2#3#4#5{\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.04em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\nwlonepair}\else
+\nwlonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#3=0\relax \phantom{\swlonepair}\else
+\swlonepair\fi
+\vss}\kern-0.2em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.04em\hbox to0pt{\kern-0.22em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\nelonepair}\else
+\nelonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#2=0\relax \phantom{\selonepair}\else
+\selonepair\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The command \verb/\lonepairBitoiv/ is converted into
+% the command \verb/\lonepairB/, where four lone pairs are
+% specified by a set of numbers 1234, 234, etc as an optional
+% argument. The main argument specifies a central atom.
+%
+% \begin{verbatim}
+% \lonepairB[1234, etc.]{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 4 1
+% : :
+% A
+% : :
+% 3 2
+% \end{verbatim}
+%
+% \begin{macro}{\lonepairB}
+% \begin{macrocode}
+\def\lonepairB{\@ifnextchar[{\l@nepairB}{\l@nepairB[1234]}}
+\def\l@nepairB[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairBitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Four unpaired electron which are attached to a central atom (A) in an alternative mode
+% are drawn by the following \verb/\tetraradicalB/ command,
+% where each of the top four argumets takes 0 (absence) or 1 (presence) for
+% representing the absence or presece of an unpaired electron. The larst argument
+% represents the central atom.
+%
+% \begin{verbatim}
+% \tetraradicalB{0 or 1}{0 or 1}{0 or 1}{0 or 1}{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 4 1
+% . .
+% A
+% . .
+% 3 2
+% \end{verbatim}
+%
+% \begin{macro}{\tetraradicalB}
+% \begin{macrocode}
+\def\tetraradicalB#1#2#3#4#5{\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.009em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#3=0\relax \phantom{\chemradical}\else
+\chemradical\fi
+\vss}\kern-0.05em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.009em\hbox to0pt{\kern-0.05em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#2=0\relax \phantom{\chemradical}\else
+\chemradical\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1}
+% \end{macrocode}
+% \end{macro}
+%
+% The command \verb/\tetraradicalB/ is converted into
+% the command \verb/\chemradicalB/, where four unpaired electrons are
+% specified by a set of numbers 1234, 234, etc. as an optional
+% argument. The main argument specifies a central atom.
+%
+% \begin{verbatim}
+% \chemradicalB[1234, etc.]{A}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 4 1
+% . .
+% A
+% . .
+% 3 2
+% \end{verbatim}
+%
+% \begin{macro}{\chemradicalA}
+% \begin{macrocode}
+\def\chemradicalB{\@ifnextchar[{\chemr@dicalB}{\chemr@dicalB[1234]}}
+\def\chemr@dicalB[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradicalB%
+\fromfourobjects{#1}{#2}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Macros for Nested Structures}
+%
+% The macro \verb/\LewisTetrahedralA/ is defined as an extension of
+% \verb/\LewistetrahedralA/, where it supports a nestec structures.
+% As a basic function of \verb/\LewisTetrahedralA/,
+% atoms (W, X, Y, and Z) which are attached to a central atom (A)
+% through Lewis bonds are drawn by the following \verb/\LewisTetrahedralA/ command.
+%
+% \begin{verbatim}
+% \LewisTetrahedralA{0==A;1==W;2==X;3==Y;4==Z}
+% \end{verbatim}
+%
+% \begin{verbatim}
+% 1
+% W
+% :
+% 4 Z : A : X 2
+% :
+% Y
+% 3
+% \end{verbatim}
+%
+% Each of the atoms can be omitted. The argument of
+% of the macro \verb/\LewisTetrahedralA/ can accommodate a so-called (yl)-function,
+% which can draw a nested structure.
+%
+% \begin{macro}{\LewisTetrahedralA}
+% This macro is based on the definition of the macro \verb/\tetrahedral/
+% defined in the \textsf{aliphat} package.
+% \begin{macrocode}
+\def\LewisTetrahedralA{%
+\@ifnextchar[{\@LewisTetrahedralA[r}{\@LewisTetrahedralA[r]}}
+\def\@LewisTetrahedralA#1]#2{%
+\@ifnextchar<{\@@LewisTetrahedralA#1]{#2}}{\@@LewisTetrahedralA#1]{#2}<,,,>}}
+\def\@@LewisTetrahedralA#1]#2<#3,#4,#5,#6>{%
+\begingroup
+\let\Northbond=\Northlonepair
+\let\Southbond=\Southlonepair
+\let\Eastbond=\Eastlonepair
+\let\Westbond=\Westlonepair
+\let\yltetrahedralposition=\ylLewisTetrahedralAposition
+\@@tetrahedral#1]#2<#3,#4,#5,#6>%
+\endgroup
+\West@bondfalse
+\East@bondfalse
+}%end of macro LewisTetrahedralA
+% \end{macrocode}
+% \end{macro}
+%
+% Note that the innermacros \verb/\Northbond/ etc.\ used in the definition of \verb/\tetrahedral/
+% are replaced by \verb/\Northlonepair/ etc.
+%
+% \begin{macro}{\Northlonepair}
+% \begin{macrocode}
+\def\Northlonepair{%
+\@ifnextchar[{\N@rthlonepair}{\N@rthlonepair[]}}
+\def\N@rthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{120}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb T\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{150}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,52)(0,1){110}%
+ \putlratom{-40}{171}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{90}{\@memberb}%==1 upper substituent
+ \fi\fi\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Southlonepair}
+% \begin{macrocode}
+\def\Southlonepair{%
+\@ifnextchar[{\S@uthlonepair}{\S@uthlonepair[]}}
+\def\S@uthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-180}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-210}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,-48)(0,-1){110}%
+ \putlratom{-40}{-250}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-150}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Eastlonepair}
+% \begin{macrocode}
+\def\Eastlonepair{%
+\@ifnextchar[{\E@stlonepair}{\E@stlonepair[]}}
+\def\E@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(120,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(50,0)(1,0){140}%
+ \putratom{190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Westlonepair}
+% \begin{macrocode}
+\def\Westlonepair{%
+\@ifnextchar[{\W@stlonepair}{\W@stlonepair[]}}
+\def\W@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-125,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,0)(-1,0){140}%
+ \putlatom{-190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro \verb/\LewisTetrahedralA/ supports a (yl)-function, which
+% is based on the x,y-adjustment due to the \verb/\ylLewisTetrahedralAposition/,
+% which is defined in a similar way to \verb/\yltetrahedralposition/ used in
+% the definition of the macro \verb/\tetrahedral/. The original values are
+% left as commented lines in order to compare with the \textsf{aliphat} package
+% of the \XyMTeX{} system.
+%
+% \begin{macro}{\ylLewisTetrahedralAposition}
+% \begin{macrocode}
+\def\ylLewisTetrahedralAposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\West@bondfalse
+\East@bondfalse
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw%
+\ifcase\@tmpa%
+ \or%1
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else%
+% \gdef\@ylii{0}\gdef\@yli{-52}\global\@ylswtrue%N subst. on 1
+ \gdef\@ylii{45}\gdef\@yli{33}\global\@ylswtrue%N subst. on 1
+ \fi%
+ \or%2
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \else%
+% \gdef\@ylii{52}\gdef\@yli{0}\global\@ylswtrue%
+ \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%
+ \fi%
+ \East@bondtrue%W subst. on 1
+ \or%3
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
+ \else%
+% \gdef\@ylii{0}\gdef\@yli{52}\global\@ylswtrue%S subst. on 1
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue%S subst. on 1
+ \fi%
+ \or%4
+ \ifno@centeratom%
+ \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
+ \else%
+% \gdef\@ylii{-52}\gdef\@yli{0}\global\@ylswtrue%
+ \gdef\@ylii{-40}\gdef\@yli{32}\global\@ylswtrue%
+ \fi%
+ \West@bondtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro \verb/\LewisTetrahedralB/ is defined as an extension of
+% \verb/\LewistetrahedralB/, where it supports a nestec structures.
+% As a basic function of \verb/\LewisTetrahedralB/,
+% atoms (W, X, Y, and Z) which are attached to a central atom (A)
+% through Lewis bonds are drawn by the following \verb/\LewisTetrahedralB/ command.
+%
+% \begin{verbatim}
+% \LewisteTrahedralB{0==A;1==W;2==X;3==Y;4==Z}
+% \end{verbatim}
+%
+% \begin{verbatim}
+%
+% 4 Z W 1
+% : :
+% A
+% : :
+% 3 Y X 2
+%
+% \end{verbatim}
+%
+% Each of the atoms can be omitted.
+%
+% \begin{macro}{\LewisTetrahedralB}
+% \begin{macrocode}
+\def\LewisTetrahedralB{%
+\@ifnextchar[{\@LewisTetrahedralB[r}{\@LewisTetrahedralB[r]}}
+\def\@LewisTetrahedralB#1]#2{%
+\begingroup
+\let\NEbond=\NEbondlonepair
+\let\SEbond=\SEbondlonepair
+\let\SWbond=\SWbondlonepair
+\let\NWbond=\NWbondlonepair
+\let\ylsquareposition=\ylLewisTetrahedralBposition
+\@squareplanar#1]{#2}%
+\endgroup
+}%end of macro LewisTetrahedralB
+% \end{macrocode}
+% \end{macro}
+%
+% Note that the inner macros \verb/\NEbond/ etc.\ used in the definition of \verb/\squareplanar/
+% are replaced by \verb/\NEbondlonepair/ etc.
+%
+% \begin{macro}{\NEbondlonepair}
+% \begin{macrocode}
+\def\NEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{90}{82}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(100,100){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{115}{107}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,47)(1,1){95}%
+ \putratom{145}{137}{\@memberb}%==1 (northeast substituent)
+ \else
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{65}{57}{\@memberb}%==1 northeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SEbondlonepair}
+% \begin{macrocode}
+\def\SEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{90}{-148}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(100,-100){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{115}{-173}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,-47)(1,-1){95}%
+ \putratom{145}{-203}{\@memberb}%==2 (southeast substituent)
+ \else
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{65}{-123}{\@memberb}%==2 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SWbondlonepair}
+% \begin{macrocode}
+\def\SWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-90}{-148}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-100,-100){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-115}{-173}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,-47)(-1,-1){95}%
+ \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
+ \else
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-65}{-123}{\@memberb}%==3 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\NWbondlonepair}
+% \begin{macrocode}
+\def\NWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-90}{82}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-100,100){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-115}{107}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-40,47)(-1,1){95}%
+ \putlatom{-145}{137}{\@memberb}%==4 (northwest substituent)
+ \else
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-65}{57}{\@memberb}%==1 northwest substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro \verb/\LewisTetrahedralB/ supports a (yl)-function, which
+% is based on the x,y-adjustment due to the \verb/\ylLewisTetrahedralBposition/,
+% which is defined in a similar way to \verb/\ylsquareposition/ used in
+% the definition of the macro \verb/\squaraplanar/ (renamed from \verb/\square/).
+% The original values are left as commented lines in order to compare
+% with the \textsf{aliphat} package of the \XyMTeX{} system.
+%
+% \begin{macro}{\ylLewisTetrahedralBposition}
+% \begin{macrocode}
+\def\ylLewisTetrahedralBposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%
+% \gdef\@ylii{-40}\gdef\@yli{-47}\global\@ylswtrue% NE subst. on 1
+ \gdef\@ylii{-28}\gdef\@yli{40}\global\@ylswtrue% NE subst. on 1
+ \or%2
+% \gdef\@ylii{-40}\gdef\@yli{47}\global\@ylswtrue% SE subst. on 2
+ \gdef\@ylii{-28}\gdef\@yli{35}\global\@ylswtrue% SE subst. on 2
+ \or%3
+% \gdef\@ylii{50}\gdef\@yli{47}\global\@ylswtrue% SW subst. on 3
+ \gdef\@ylii{35}\gdef\@yli{22}\global\@ylswtrue% SW subst. on 3
+ \or%4
+% \gdef\@ylii{50}\gdef\@yli{-47}\global\@ylswtrue% NW subst. on 4
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue% NW subst. on 4
+\fi%end of ifcase
+\fi\fi\fi}}%
+\endinput
+%</lewisstruc>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/lewisstruc.ins b/macros/latex/contrib/xymtex/base/lewisstruc.ins
new file mode 100644
index 0000000000..96723624e7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lewisstruc.ins
@@ -0,0 +1,48 @@
+\def\batchfile{lewisstruc.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2009,2010,2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Version 1.00 Released on November 03, 2009
+Version 5.00 Released on October 01, 2010
+
+The Present Version:
+Version 5.01 Released on August 02, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files lewisstruc.dtx and lewisstruc.ins
+and the derived file lewisstruc.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{lewisstruc.drv}{t}{%
+ \from{lewisstruc.dtx}{driver}}
+
+\generateFile{lewisstruc.sty}{t}{%
+ \from{lewisstruc.dtx}{lewisstruc}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/lewisstruc.sty b/macros/latex/contrib/xymtex/base/lewisstruc.sty
new file mode 100644
index 0000000000..66180f6010
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lewisstruc.sty
@@ -0,0 +1,629 @@
+%%
+%% This is file `lewisstruc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lewisstruc.dtx (with options: `lewisstruc')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2009,2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.00 Released on November 03, 2009
+%% Version 5.00 Released on October 01, 2010
+%%
+%% The Present Version:
+%% Version 5.01 Released on August 02, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files lewisstruc.dtx and lewisstruc.ins
+%% and the derived file lewisstruc.sty.
+%%
+%% =======================================
+%%
+%% File: lewisstruc.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released August 02, 2013 by Shinsaku Fujita}
+\def\j@urnalname{lewisstruc}
+\def\versi@ndate{August 02, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\RequirePackage{aliphat}
+\def\dotnodimension{\smash{\hbox to0pt{\hss.\hss}}}
+\def\verticalpair{\vbox{%
+\dotnodimension
+\nointerlineskip
+\kern0.3em
+\dotnodimension}}
+\def\horizontalpair{%
+\hbox{\dotnodimension\kern0.3em\dotnodimension}}
+\def\nwlonepair{%
+\vtop{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\selonepair{%
+\vbox{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\swlonepair{%
+\vbox{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+\def\nelonepair{%
+\vtop{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+\def\LewisSbond{\raise0.12em\hbox to0.25em{\hss\verticalpair\hss}}
+\def\overpair#1{\leavevmode\setbox0=\hbox{#1}%
+\vbox{\hbox to\wd0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\box0}}
+\def\underpair#1{\leavevmode\setbox0=\hbox{#1}%
+\dimen0=\wd0
+\vbox to\ht0{\box0
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}\vss}}%
+\vss}}%bug fix 2013/08/02 \vss added
+\def\overpairover#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0%
+\ifx\temp@@a\empty\box0\else%
+\vbox{%
+\hbox to\dimen0{\hss#2\hss}%
+\nointerlineskip\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox{\box0}}\fi}
+\def\underpairunder#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0\dimen1=\ht0
+\ifx\temp@@a\empty\box0\else%
+\vbox to\dimen1{\hbox{\box0}%
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.18em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox to\dimen0{\hss#2\hss}%
+\vss}}%
+\vss}\fi}%bug fix2013/08/02
+\def\leftlonepairover#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\raise0.9em\hbox{#2}\kern-0.05em\raise0.8em\hbox{\nwlonepair}\kern-0.1em}#1\fi}
+\def\rightlonepairover#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\raise0.8em\hbox{\nelonepair}\kern-0.05em%
+\raise0.9em\hbox{#2}\hss}\fi}
+\def\leftlonepairunder#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\lower0.9em\hbox{#2}\kern-0.05em%
+\lower0.2em\hbox{\swlonepair}\kern-0.1em}#1\fi}
+\def\rightlonepairunder#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\lower0.2em\hbox{\selonepair}\kern-0.05em%
+\lower0.9em\hbox{#2}\hss}\fi}
+\def\LewistetrahedralA#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\ifx\temp@e\empty
+\ifx\temp@c\empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else%c not empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi
+\else%e not empty
+\ifx\temp@c\empty
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi\fi
+\endgroup
+}
+\def\LewistetrahedralB#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\rightlonepairover{%
+\leftlonepairover{\leftlonepairunder{%
+\rightlonepairunder{\temp@a}{\temp@c}}{\temp@d}}{\temp@e}}{\temp@b}%
+\endgroup}
+\def\lonepairAitoiv#1#2#3#4#5{\leavevmode
+\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}}%
+\else
+\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}%
+\fi%
+\lower0.2em\hbox{\vbox{\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+\kern0.2em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}%
+\fi
+}}%
+\ifnum#2=0\relax
+\phantom{\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}}%
+\else
+\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1\endgroup}
+\def\fromfourobjects#1#2{%
+\ifnum#1=1234\relax
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\else\ifnum#1=123\relax
+\TEMP@Command{1}{1}{1}{0}{#2}%
+\else\ifnum#1=124\relax
+\TEMP@Command{1}{1}{0}{1}{#2}%
+\else\ifnum#1=134\relax
+\TEMP@Command{1}{0}{1}{1}{#2}%
+\else\ifnum#1=234\relax
+\TEMP@Command{0}{1}{1}{1}{#2}%
+\else\ifnum#1=12\relax
+\TEMP@Command{1}{1}{0}{0}{#2}%
+\else\ifnum#1=13\relax
+\TEMP@Command{1}{0}{1}{0}{#2}%
+\else\ifnum#1=14\relax
+\TEMP@Command{1}{0}{0}{1}{#2}%
+\else\ifnum#1=23\relax
+\TEMP@Command{0}{1}{1}{0}{#2}%
+\else\ifnum#1=24\relax
+\TEMP@Command{0}{1}{0}{1}{#2}%
+\else\ifnum#1=34\relax
+\TEMP@Command{0}{0}{1}{1}{#2}%
+\else\ifnum#1=1\relax
+\TEMP@Command{1}{0}{0}{0}{#2}%
+\else\ifnum#1=2\relax
+\TEMP@Command{0}{1}{0}{0}{#2}%
+\else\ifnum#1=3\relax
+\TEMP@Command{0}{0}{1}{0}{#2}%
+\else\ifnum#1=4\relax
+\TEMP@Command{0}{0}{0}{1}{#2}%
+\else
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi}
+\def\lonepairA{\@ifnextchar[{\l@nepairA}{\l@nepairA[1234]}}
+\def\l@nepairA[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairAitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\chemradical{\hbox to0pt{\hss.\hss}}
+\def\tetraradical#1#2#3#4#5{\leavevmode\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}}%
+\else
+\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}%
+\fi%
+\lower0.22em\hbox{\vbox{%
+\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+\kern0.12em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}%
+\fi
+}}%
+\ifnum#2=0\relax
+\phantom{\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}}%
+\else
+\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1}
+\def\chemradicalA{\@ifnextchar[{\chemr@dicalA}{\chemr@dicalA[1234]}}
+\def\chemr@dicalA[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradical%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\lonepairBitoiv#1#2#3#4#5{\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.04em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\nwlonepair}\else
+\nwlonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#3=0\relax \phantom{\swlonepair}\else
+\swlonepair\fi
+\vss}\kern-0.2em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.04em\hbox to0pt{\kern-0.22em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\nelonepair}\else
+\nelonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#2=0\relax \phantom{\selonepair}\else
+\selonepair\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1\endgroup}
+\def\lonepairB{\@ifnextchar[{\l@nepairB}{\l@nepairB[1234]}}
+\def\l@nepairB[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairBitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\tetraradicalB#1#2#3#4#5{\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.009em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#3=0\relax \phantom{\chemradical}\else
+\chemradical\fi
+\vss}\kern-0.05em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.009em\hbox to0pt{\kern-0.05em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#2=0\relax \phantom{\chemradical}\else
+\chemradical\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1}
+\def\chemradicalB{\@ifnextchar[{\chemr@dicalB}{\chemr@dicalB[1234]}}
+\def\chemr@dicalB[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradicalB%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\LewisTetrahedralA{%
+\@ifnextchar[{\@LewisTetrahedralA[r}{\@LewisTetrahedralA[r]}}
+\def\@LewisTetrahedralA#1]#2{%
+\@ifnextchar<{\@@LewisTetrahedralA#1]{#2}}{\@@LewisTetrahedralA#1]{#2}<,,,>}}
+\def\@@LewisTetrahedralA#1]#2<#3,#4,#5,#6>{%
+\begingroup
+\let\Northbond=\Northlonepair
+\let\Southbond=\Southlonepair
+\let\Eastbond=\Eastlonepair
+\let\Westbond=\Westlonepair
+\let\yltetrahedralposition=\ylLewisTetrahedralAposition
+\@@tetrahedral#1]#2<#3,#4,#5,#6>%
+\endgroup
+\West@bondfalse
+\East@bondfalse
+}%end of macro LewisTetrahedralA
+\def\Northlonepair{%
+\@ifnextchar[{\N@rthlonepair}{\N@rthlonepair[]}}
+\def\N@rthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{120}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb T\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{150}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,52)(0,1){110}%
+ \putlratom{-40}{171}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{90}{\@memberb}%==1 upper substituent
+ \fi\fi\fi%
+}
+\def\Southlonepair{%
+\@ifnextchar[{\S@uthlonepair}{\S@uthlonepair[]}}
+\def\S@uthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-180}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-210}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,-48)(0,-1){110}%
+ \putlratom{-40}{-250}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-150}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\Eastlonepair{%
+\@ifnextchar[{\E@stlonepair}{\E@stlonepair[]}}
+\def\E@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(120,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(50,0)(1,0){140}%
+ \putratom{190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\Westlonepair{%
+\@ifnextchar[{\W@stlonepair}{\W@stlonepair[]}}
+\def\W@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-125,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,0)(-1,0){140}%
+ \putlatom{-190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\ylLewisTetrahedralAposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\West@bondfalse
+\East@bondfalse
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw%
+\ifcase\@tmpa%
+ \or%1
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else%
+ \gdef\@ylii{45}\gdef\@yli{33}\global\@ylswtrue%N subst. on 1
+ \fi%
+ \or%2
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \else%
+ \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%
+ \fi%
+ \East@bondtrue%W subst. on 1
+ \or%3
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
+ \else%
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue%S subst. on 1
+ \fi%
+ \or%4
+ \ifno@centeratom%
+ \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
+ \else%
+ \gdef\@ylii{-40}\gdef\@yli{32}\global\@ylswtrue%
+ \fi%
+ \West@bondtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\LewisTetrahedralB{%
+\@ifnextchar[{\@LewisTetrahedralB[r}{\@LewisTetrahedralB[r]}}
+\def\@LewisTetrahedralB#1]#2{%
+\begingroup
+\let\NEbond=\NEbondlonepair
+\let\SEbond=\SEbondlonepair
+\let\SWbond=\SWbondlonepair
+\let\NWbond=\NWbondlonepair
+\let\ylsquareposition=\ylLewisTetrahedralBposition
+\@squareplanar#1]{#2}%
+\endgroup
+}%end of macro LewisTetrahedralB
+\def\NEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{90}{82}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(100,100){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{115}{107}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,47)(1,1){95}%
+ \putratom{145}{137}{\@memberb}%==1 (northeast substituent)
+ \else
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{65}{57}{\@memberb}%==1 northeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\SEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{90}{-148}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(100,-100){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{115}{-173}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,-47)(1,-1){95}%
+ \putratom{145}{-203}{\@memberb}%==2 (southeast substituent)
+ \else
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{65}{-123}{\@memberb}%==2 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\SWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-90}{-148}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-100,-100){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-115}{-173}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,-47)(-1,-1){95}%
+ \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
+ \else
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-65}{-123}{\@memberb}%==3 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\NWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-90}{82}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-100,100){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-115}{107}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-40,47)(-1,1){95}%
+ \putlatom{-145}{137}{\@memberb}%==4 (northwest substituent)
+ \else
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-65}{57}{\@memberb}%==1 northwest substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\ylLewisTetrahedralBposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%
+ \gdef\@ylii{-28}\gdef\@yli{40}\global\@ylswtrue% NE subst. on 1
+ \or%2
+ \gdef\@ylii{-28}\gdef\@yli{35}\global\@ylswtrue% SE subst. on 2
+ \or%3
+ \gdef\@ylii{35}\gdef\@yli{22}\global\@ylswtrue% SW subst. on 3
+ \or%4
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue% NW subst. on 4
+\fi%end of ifcase
+\fi\fi\fi}}%
+\endinput
+%%
+%% End of file `lewisstruc.sty'.
diff --git a/macros/latex/contrib/xymtex/base/locant.dtx b/macros/latex/contrib/xymtex/base/locant.dtx
new file mode 100644
index 0000000000..4f19a5c4c7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/locant.dtx
@@ -0,0 +1,343 @@
+% \iffalse meta-comment
+%% File: locant.dtx
+%
+% Copyright 1993,1996,2001,2002, 2004, 2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% locant.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files locant.dtx and locant.ins
+% and the derived file locant.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{locant}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{136}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clip information}
+% \changes{v3.00}{2002/04/30}{sfpicture environment etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{locant.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{locant.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Setting locant numbers by {\sffamily locant.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{locant.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{locant:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% locant & locant.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*locant>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{locant}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver4.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{Macros for designating locant numbers}
+%
+% \subsection{Font Size of Locant Numbers}
+% \changes{v2.01}{2001/06/20}{New command: \cs{locantnumsize}}
+%
+% To change the font size of locant numbers, we can use
+% |\locantnumsize|, into which a size command (|\scriptsize| etc.)
+% is introduced by using the |\let| command.
+% The default setting is |\scriptsize| as follows:
+%
+% \begin{macro}{\locantnumsize}
+% \begin{macrocode}
+\let\locantnumsize=\scriptsize
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Bond indicators for vertical formulas}
+%
+% \begin{macro}{\dbloocant}
+% \begin{macro}{\dblocant}
+% The macro |\dbloocant| is used to designate six edges (inner double bonds)
+% of a six-membered ring. Any character can be asigned to the respective
+% bond.
+% The macro |\dblocant| provides a fixed set of aliphabetical charactors
+% on the six edges.
+% \changes{v2.01}{2001/06/20}{The domain of a picture environment
+% has been changed from (800,880) to (0,0).}
+% \begin{macrocode}
+\def\bdloocant#1#2#3#4#5#6{%
+%\begin{sfpicture}(800,880)(-\shiftii,-\shifti)
+\begin{sfpicture}(0,0)(-\shiftii,-\shifti)
+\putratom{90}{380}{\locantnumsize #1}%
+\putratom{200}{180}{\locantnumsize #2}%
+\putratom{90}{-20}{\locantnumsize #3}%
+\putlatom{-90}{380}{\locantnumsize #6}%
+\putlatom{-200}{180}{\locantnumsize #5}%
+\putlatom{-90}{-20}{\locantnumsize #4}%
+\end{sfpicture}}%
+\def\bdlocant{\bdloocant{a}{b}{c}{d}{e}{f}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Atom indicators for vertical formulas}
+% \begin{macro}{\sxloocant}
+% \begin{macro}{\sxlocant}
+% The macro |\sxloocant| is used to designate six vertices
+% of a six-membered ring. Any character can be asigned to the respective
+% bond.
+% The macro |\sxlocant| provides a fixed set of arabic numerals
+% on the six edges.
+% \changes{v2.01}{2001/06/20}{The domain of a picture environment
+% has been changed from (800,880) to (0,0).}
+% \begin{macrocode}
+\def\sxloocant#1#2#3#4#5#6{%
+%\begin{sfpicture}(800,880)(-\shiftii,-\shifti)%
+\begin{sfpicture}(0,0)(-\shiftii,-\shifti)%
+\putratom{-10}{340}{\locantnumsize #1}%
+\putlatom{150}{260}{\locantnumsize #2}%
+\putlatom{150}{110}{\locantnumsize #3}%
+\putratom{-10}{40}{\locantnumsize #4}%
+\putratom{-150}{110}{\locantnumsize #5}%
+\putratom{-150}{260}{\locantnumsize #6}%
+\end{sfpicture}}%
+\def\sxlocant{\sxloocant{1}{2}{3}{4}{5}{6}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Bond indicators for horizontal formulas}
+%
+% \begin{macro}{\dbloocanth}
+% \begin{macro}{\dblocanth}
+% The macro |\dbloocanth| is used to designate six edges (inner double bonds)
+% of a horizontal six-membered ring.
+% Any character can be asigned to the respective bond.
+% The macro |\dblocanth| provides a fixed set of aliphabetical charactors
+% on the six edges.
+% \changes{v2.01}{2001/06/20}{The domain of a picture environment
+% has been changed from (800,880) to (0,0).}
+% \begin{macrocode}
+\def\bdloocnth#1#2#3#4#5#6{%
+%\begin{sfpicture}(880,800)(-\shifti,-\shiftii)%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putlatom{10}{80}{\locantnumsize #1}%
+\putratom{180}{210}{\locantnumsize #2}%
+\putratom{380}{80}{\locantnumsize #3}%
+\putratom{380}{-120}{\locantnumsize #4}%
+\putratom{180}{-260}{\locantnumsize #5}%
+\putlatom{10}{-120}{\locantnumsize #6}%
+\end{sfpicture}}%
+\def\bdlocnth{\bdloocnth{a}{b}{c}{d}{e}{f}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Atom indicators for horizontal formulas}
+% \begin{macro}{\sxloocanth}
+% \begin{macro}{\sixsghlocant}
+% The macro |\sxloocanth| is used to designate six vertices
+% of a horizontal six-membered ring.
+% Any character can be asigned to the respective bond.
+% The macro |\sixsghlocant| provides a fixed set of arabic numerals
+% on the six edges.
+% \changes{v2.01}{2001/06/20}{The domain of a picture environment
+% has been changed from (800,880) to (0,0).}
+% \begin{macrocode}
+\def\sxloocnth#1#2#3#4#5#6{%
+%\begin{sfpicture}(880,800)(-\shifti,-\shiftii)%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putratom{40}{-20}{\locantnumsize #1}%
+\putratom{110}{100}{\locantnumsize #2}%
+\putlatom{290}{100}{\locantnumsize #3}%
+\putlatom{380}{-20}{\locantnumsize #4}%
+\putratom{110}{-140}{\locantnumsize #6}%
+\putlatom{290}{-140}{\locantnumsize #5}%
+\end{sfpicture}}%
+\def\sxlocnth{\sxloocnth{1}{2}{3}{4}{5}{6}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Locant Numbers for Cyclic Sugars}
+%
+% \changes{v2.01}{2001/06/20}{New command: \cs{sixsugarhlocant}}
+% \begin{macro}{\sixsugarhloocnt}
+% \begin{macro}{\sixsugarhlocant}
+% The macro |\sixsugarhloocnt| is used to designate six vertices
+% of a horizontal six-membered sugar ring.
+% Any character can be asigned to the respective bond.
+% The macro |\sixsugarhlocant| provides a fixed set of arabic numerals
+% on the six edges.
+% \begin{macrocode}
+\def\sixsugarhloocnt#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putratom{40}{-20}{\locantnumsize #1}%
+\putratom{120}{125}{\locantnumsize #2}%
+\putlatom{400}{125}{\locantnumsize #3}%
+\putlatom{492}{-20}{\locantnumsize #4}%
+\putratom{120}{-160}{\locantnumsize #6}%
+\putlatom{400}{-160}{\locantnumsize #5}%
+\end{sfpicture}}%
+\def\sixsugarhlocant{\sixsugarhloocnt{4}{5}{6}{1}{2}{3}}
+%</locant>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/locant.ins b/macros/latex/contrib/xymtex/base/locant.ins
new file mode 100644
index 0000000000..d6c75dca39
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/locant.ins
@@ -0,0 +1,52 @@
+\def\batchfile{locant.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 2001, 2002, 2004, 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Old Versins:
+Released on August 16, 1996
+Released on June 20, 2001 (version 2.01) (private version)
+Released on April 30, 2002 (version 3.00)
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.01 Released on August 30, 2004
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files locant.dtx and locant.ins
+and the derived file locant.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{locant.drv}{t}{%
+ \from{locant.dtx}{driver}}
+
+\generateFile{locant.sty}{t}{%
+ \from{locant.dtx}{locant}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/locant.sty b/macros/latex/contrib/xymtex/base/locant.sty
new file mode 100644
index 0000000000..4f0ce53a3c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/locant.sty
@@ -0,0 +1,123 @@
+%%
+%% This is file `locant.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% locant.dtx (with options: `locant')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 2001, 2002, 2004, 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Old Versins:
+%% Released on August 16, 1996
+%% Released on June 20, 2001 (version 2.01) (private version)
+%% Released on April 30, 2002 (version 3.00)
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.01 Released on August 30, 2004
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files locant.dtx and locant.ins
+%% and the derived file locant.sty.
+%%
+%% =======================================
+%%
+%% File: locant.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{locant}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver4.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\let\locantnumsize=\scriptsize
+\def\bdloocant#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shiftii,-\shifti)
+\putratom{90}{380}{\locantnumsize #1}%
+\putratom{200}{180}{\locantnumsize #2}%
+\putratom{90}{-20}{\locantnumsize #3}%
+\putlatom{-90}{380}{\locantnumsize #6}%
+\putlatom{-200}{180}{\locantnumsize #5}%
+\putlatom{-90}{-20}{\locantnumsize #4}%
+\end{sfpicture}}%
+\def\bdlocant{\bdloocant{a}{b}{c}{d}{e}{f}}
+\def\sxloocant#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shiftii,-\shifti)%
+\putratom{-10}{340}{\locantnumsize #1}%
+\putlatom{150}{260}{\locantnumsize #2}%
+\putlatom{150}{110}{\locantnumsize #3}%
+\putratom{-10}{40}{\locantnumsize #4}%
+\putratom{-150}{110}{\locantnumsize #5}%
+\putratom{-150}{260}{\locantnumsize #6}%
+\end{sfpicture}}%
+\def\sxlocant{\sxloocant{1}{2}{3}{4}{5}{6}}
+\def\bdloocnth#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putlatom{10}{80}{\locantnumsize #1}%
+\putratom{180}{210}{\locantnumsize #2}%
+\putratom{380}{80}{\locantnumsize #3}%
+\putratom{380}{-120}{\locantnumsize #4}%
+\putratom{180}{-260}{\locantnumsize #5}%
+\putlatom{10}{-120}{\locantnumsize #6}%
+\end{sfpicture}}%
+\def\bdlocnth{\bdloocnth{a}{b}{c}{d}{e}{f}}
+\def\sxloocnth#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putratom{40}{-20}{\locantnumsize #1}%
+\putratom{110}{100}{\locantnumsize #2}%
+\putlatom{290}{100}{\locantnumsize #3}%
+\putlatom{380}{-20}{\locantnumsize #4}%
+\putratom{110}{-140}{\locantnumsize #6}%
+\putlatom{290}{-140}{\locantnumsize #5}%
+\end{sfpicture}}%
+\def\sxlocnth{\sxloocnth{1}{2}{3}{4}{5}{6}}
+\def\sixsugarhloocnt#1#2#3#4#5#6{%
+\begin{sfpicture}(0,0)(-\shifti,-\shiftii)%
+\putratom{40}{-20}{\locantnumsize #1}%
+\putratom{120}{125}{\locantnumsize #2}%
+\putlatom{400}{125}{\locantnumsize #3}%
+\putlatom{492}{-20}{\locantnumsize #4}%
+\putratom{120}{-160}{\locantnumsize #6}%
+\putlatom{400}{-160}{\locantnumsize #5}%
+\end{sfpicture}}%
+\def\sixsugarhlocant{\sixsugarhloocnt{4}{5}{6}{1}{2}{3}}
+\endinput
+%%
+%% End of file `locant.sty'.
diff --git a/macros/latex/contrib/xymtex/base/lowcycle.dtx b/macros/latex/contrib/xymtex/base/lowcycle.dtx
new file mode 100644
index 0000000000..3aac86549e
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lowcycle.dtx
@@ -0,0 +1,892 @@
+% \iffalse meta-comment
+%% File: lowcycle.dtx
+%
+% Copyright 1993,1996,1998,2001,2002,2004,2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% lowcycle.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files lowcycle.dtx and lowcycle.ins
+% and the derived file lowcycle.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{December 01, 1993}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{lowcycle}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{175}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.01}{1996/06/26}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/6/20}{Size reduction and Clip information}
+% \changes{v3.00}{2002/4/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{lowcycle.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{lowcycle.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Lower carbocyclic compounds by {\sffamily lowcycle.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{lowcycle.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{lowcycle:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% lowcycle & lowcycle.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*lowcycle>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{lowcycle}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for lowcycle.sty}
+%
+% \begin{verbatim}
+% **********************************
+% * lowcycle.sty: list of commands *
+% **********************************
+%
+% \cyclopentanev \@cyclopentanev
+% \cyclopentanevi \@cyclopentanevi
+% \cyclopentaneh \@cyclopentaneh
+% \cyclopentanehi \@cyclopentanehi
+%
+% \cyclobutane \@cyclobutane
+%
+% \cyclopropane \@cyclopropane
+% \cyclopropanei \@cyclopropanei
+% \cyclopropaneh \@cyclopropaneh
+% \cyclopropanehi \@cyclopropanehi
+%
+% \indanev \@indanev
+% \indanevi \@indanevi
+% \indaneh \@indaneh
+% \indanehi \@indanehi
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf lowcycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} etc. for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{threehetero}{\input hetarom.sty\relax}{}
+\@ifundefined{sixheteroh}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Cyclopentane derivatives}
+% \subsection{Vertical type}
+%
+% The macros |\cyclopentanev| and |\cyclopentanevi| have an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% The macro |\cyclopentanev| draws a five-membered ring with a
+% flat top bond, while the macro |\cyclopentanevi| draws an
+% inverse ring with a flat bottom bond.
+% \begin{verbatim}
+% ******************************
+% * cyclopentane derivatives *
+% * (vertical type & inverse) *
+% ******************************
+%
+% \cyclopentanev[BONDLIST]{SUBSLIST}
+% \cyclopentanevi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position. The
+% option `$n+$' ($n=1$--$5$) is used for designating a plus charge on
+% the $n$-carbon.
+% The option `$0+$'is used for designating a plus charge at the center
+% of the five-membered ring.
+% \begin{verbatim}
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus (fully saturated form)
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-carbon atom (n = 1 to 5)
+% {0+} : plus at the center
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \cyclopentanev{1==H;2==F}
+% \cyclopentanev[]{1==H;2==F}
+% \cyclopentanev[H]{1==H;2==F}
+% \end{verbatim}
+%
+% \begin{macro}{\cyclopentanev}
+% \begin{macro}{\cyclopentanevi}
+% \begin{macrocode}
+\def\cyclopentanev{\@ifnextchar[{\@cyclopentanev[@}{\@cyclopentanev[]}}
+\def\@cyclopentanev[#1]#2{%
+\iforigpt \typeout{command `cyclopentanev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{}{#2}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\cyclopentanevi{\@ifnextchar[{\@cyclopentanevi[@}{\@cyclopentanevi[]}}
+\def\@cyclopentanevi[#1]#2{%
+\iforigpt \typeout{command `cyclopentanevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macros |\cyclopentaneh| and |\cyclopentanehi| have an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% The macro |\cyclopentaneh| draws a five-membered ring with a
+% vertical left bond, while the macro |\cyclopentanehi| draws an
+% inverse ring with a vertical right bond.
+% \begin{verbatim}
+% ********************************
+% * cyclopentane derivatives *
+% * (horizontal type & inverse) *
+% ********************************
+%
+% \cyclopentaneh[BONDLIST]{SUBSLIST}
+% \cyclopentanehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position. The
+% option `$n+$' ($n=1$--$5$) is used for designating a plus charge on
+% the $n$-carbon.
+% The option `$0+$'is used for designating a plus charge at the center
+% of the five-membered ring.
+% \begin{verbatim}
+%
+% BONDLIST: list of inner double bonds
+%
+% none : mother nucleus (fully saturated form)
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% d : 4,5-double bond
+% e : 5,1-double bond
+% {n+} : plus at the n-carbon atom (n = 1 to 5)
+% {0+} : plus at the center
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+%
+% e.g.
+%
+% \cyclopentaneh{1==H;2==F}
+% \cyclopentanehi[]{1==H;2==F}
+% \cyclopentanehi[H]{1==H;2==F}
+%
+% \end{verbatim}
+%
+% \begin{macro}{\cyclopentaneh}
+% \begin{macro}{\cyclopentanehi}
+% \begin{macrocode}
+\def\cyclopentaneh{\@ifnextchar[{\@cyclopentaneh[@}{\@cyclopentaneh[]}}
+\def\@cyclopentaneh[#1]#2{%
+\iforigpt \typeout{command `cyclophentaneh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{}{#2}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\cyclopentanehi{%
+ \@ifnextchar[{\@cyclopentanehi[@}{\@cyclopentanehi[]}}
+\def\@cyclopentanehi[#1]#2{%
+\iforigpt \typeout{command `cyclopentanehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Indan derivatives}
+% \subsection{Vertical type}
+%
+% The macros |\indanev| and |\indanevi| have an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% The macro |\indanev| draws a five-membered ring with a
+% flat top bond, while the macro |\indanevi| draws an
+% inverse ring with a flat bottom bond.
+% \begin{verbatim}
+% ***********************************************************
+% * indane derivatives (fused six- and five-membered rings) *
+% * (vertical type & inverse) *
+% ***********************************************************
+%
+% \indanev[BONDLIST]{SUBSLIST}
+% \indanevi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' typesets a six-membered ring with an aromatic circle.
+% The option `$n+$' ($n=1$--$7$) is used for designating a plus charge on
+% the $n$-carbon.
+% \begin{verbatim}
+%
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% H or [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond j : 3a,4a-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 7)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 7 substitution positions)
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+%
+% e.g.
+%
+% \indanev{1==Cl;2==F}
+% \indanev[c]{1==Cl;4==F;2==CH$_{3}$}
+% \indanev[eb]{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+%
+% \end{verbatim}
+%
+% \begin{macro}{\indanev}
+% \begin{macro}{\indanevi}
+% \begin{macrocode}
+\def\indanev{\@ifnextchar[{\@indanev[@}{\@indanev[rb]}}
+\def\@indanev[#1]#2{%
+\iforigpt \typeout{command `indanev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{}{#2}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\indanevi{\@ifnextchar[{\@indanevi[@}{\@indanevi[rb]}}
+\def\@indanevi[#1]#2{%
+\iforigpt \typeout{command `indanevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Horizontal type}
+%
+% The macros |\indaneh| and |\indanehi| have an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% The macro |\indaneh| draws a five-membered ring with a
+% vertical left bond, while the macro |\indanehi| draws an
+% inverse ring with a vertical right bond.
+% \begin{verbatim}
+% ***********************************************************
+% * indane derivatives (fused six- and five-membered rings) *
+% * (horizontal type & inverse) *
+% ***********************************************************
+%
+% \indaneh[BONDLIST]{SUBSLIST}
+% \indanehi[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to j, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' typesets a six-membered ring with an aromatic circle.
+% The option `$n+$' ($n=1$--$7$) is used for designating a plus charge on
+% the $n$-carbon.
+% \begin{verbatim}
+%
+% BONDLIST: list of bonds
+%
+% none or r : aromatic six-membered ring
+% H or [] : fully saturated form
+% a : 1,2-double bond b : 2,3-double bond
+% c : 3,3a-double bond d : 4,3a-double bond
+% e : 4,5-double bond f : 5,6-double bond
+% g : 6,7-double bond h : 7,7a-double bond
+% i : 1,7a-double bond j : 3a,4a-double bond
+% A : aromatic circle
+% {n+} : plus at the n-nitrogen atom (n = 1 to 7)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+%
+% for 8 (3a position) and 9 (7a position)
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \indaneh{1==Cl;2==F}
+% \indaneh[c]{1==Cl;4==F;2==CH$_{3}$}
+% \indaneh[eb]{1D==O;4SA==MeO;4SB==OMe;5==Cl;6==Cl}
+% \end{verbatim}
+%
+% \begin{macro}{\indaneh}
+% \begin{macro}{\indanehi}
+% \begin{macrocode}
+\def\indaneh{\@ifnextchar[{\@indaneh[@}{\@indaneh[rb]}}
+\def\@indaneh[#1]#2{%
+\iforigpt \typeout{command `indaneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{}{#2}}
+\def\indanehi{\@ifnextchar[{\@indanehi[@}{\@indanehi[rb]}}
+\def\@indanehi[#1]#2{%
+\iforigpt \typeout{command `indanehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{Cyclobutane derivatives}
+%
+% The macros |\cyclobutane| has an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% This macro is based on the \verb/\fourhetero/ command for drawing
+% four-membered heterocycles.
+% \begin{verbatim}
+% ***************************
+% * cyclobutane derivatives *
+% ***************************
+% The following numbering is adopted in this macro.
+%
+% c
+% 4 _____ 3
+% d | | b
+% | |
+% 1 ----- 2<===== the original point
+% a
+%
+% \cyclobutane[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to e, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `$n+$' ($n=1$--$4$) is used for designating a plus charge on
+% the $n$-carbon.
+% \begin{verbatim}
+%
+% BONDLIST: list of inner double bonds
+%
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 4,3-double bond
+% e : 4,1-double bond
+%
+% {n+} : plus at the n-nitrogen atom (n = 1 to 4)
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 5 substitution positions)
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \cyclobutane{1==H;2==F}
+% \cyclobutane[c]{1==Cl;4==F;2==CH$_{3}$}
+% \cyclobutane[eb]{1D==O;4SA==MeO;4SB==OMe}
+% \end{verbatim}
+%
+% \begin{macro}{\cyclobutane}
+% \begin{macrocode}
+\def\cyclobutane{\@ifnextchar[{\@cyclobutane[@}{\@cyclobutane[]}}
+\def\@cyclobutane[#1]#2{%
+\iforigpt \typeout{command `cyclobutane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Cyclopropane derivatives}
+%
+% The macros |\cyclopropane| has an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% This macro is based on the \verb/\threehetero/ command for drawing
+% three-membered heterocycles.
+% \begin{verbatim}
+% ****************************
+% * cyclopropane derivatives *
+% * (vertical type) *
+% ****************************
+% The following numbering is adopted in this macro.
+%
+% b
+% 3--------2
+% c ` / a
+% `1/ <===== the original point
+%
+%
+% \cyclopropane[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' is used for designating an aromatic character with a
+% circle.
+% The option `$n+$' ($n=1$--$3$) is used for designating a plus charge on
+% the $n$-carbon, while
+% the case $n=4$--$6$) indicates a plus charge outside the ring.
+% The option `0+' draws a plus symbol at the center of the ring.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 3 substitution positions)
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+%
+% e.g.
+%
+% \cyclopropane{1==N}{1==Cl;2==F}
+%
+% \end{verbatim}
+%
+% \begin{macro}{\cyclopropane}
+% \begin{macro}{\cyclopropanev}
+% \begin{macrocode}
+\def\cyclopropane{\@ifnextchar[{\@cyclopropane[@}{\@cyclopropane[]}}
+\def\@cyclopropane[#1]#2{%
+\iforigpt \typeout{command `cyclopropane' %
+ is based on `threehetero'.}\fi%
+\threehetero[#1]{}{#2}}
+\let\cyclopropanev=\cyclopropane
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macros |\cyclopropanei| has an
+% argument |SUBSLIST| as well as an optional argument |BONDLIST|.
+% This macro is based on the \verb/\threehetero/ command for drawing
+% three-membered heterocycles.
+% \begin{verbatim}
+% ****************************
+% * cyclopropane derivatives *
+% * (inverse vertical type) *
+% ****************************
+% The following numbering is adopted in this macro.
+%
+% /1` <===== the original point
+% c / ` a
+% 3--------2
+% b
+%
+% \cyclopropanei[BONDLIST]{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one or more
+% characters selected from a to c, each of which indicates the presence of
+% an inner (endcyclic) double bond on the corresponding position.
+% The option `A' is used for designating an aromatic character with a
+% circle.
+% The option `$n+$' ($n=1$--$3$) is used for designating a plus charge on
+% the $n$-carbon, while
+% the case $n=4$--$6$) indicates a plus charge outside the ring.
+% The option `0+' draws a plus symbol at the center of the ring.
+% \begin{verbatim}
+%
+% BONDLIST =
+%
+% none : saturated
+% a : 1,2-double bond
+% b : 2,3-double bond
+% c : 3,1-double bond
+% A : aromatic circle
+% {n+} : plus at the n-hetero atom (n = 1 to 3)
+% : n=4 -- outer plus at 1 position
+% : n=5 -- outer plus at 2 position
+% : n=6 -- outer plus at 3 position
+% {0+} : plus at the center of a cyclopropane ring
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents (max 3 substitution positions)
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+%
+% e.g.
+%
+% \cyclopropanei{1==N}{1==Cl;2==F}
+%
+% \end{verbatim}
+% \changes{v1.02}{1998/10/20}{Newly added command}
+%
+% \begin{macro}{\cyclopropanei}
+% \begin{macro}{\cyclopropenevi}
+% \begin{macrocode}
+\def\cyclopropanei{\@ifnextchar[{\@cyclopropanei[@}{\@cyclopropanei[]}}
+\def\@cyclopropanei[#1]#2{%
+\iforigpt \typeout{command `cyclopropanei' %
+ is based on `threeheteroi'.}\fi%
+\threeheteroi[#1]{}{#2}}
+\let\cyclopropanevi=\cyclopropanei
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cyclopropaneh}
+% \begin{macrocode}
+\def\cyclopropaneh{\@ifnextchar[{\@cyclopropaneh[@}{\@cyclopropaneh[]}}
+\def\@cyclopropaneh[#1]#2{%
+\iforigpt \typeout{command `cyclopropaneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cyclopropanehi}
+% \begin{macrocode}
+\def\cyclopropanehi{\@ifnextchar[{\@cyclopropanehi[@}{\@cyclopropanehi[]}}
+\def\@cyclopropanehi[#1]#2{%
+\iforigpt \typeout{command `cyclopropanehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{}{#2}}
+%</lowcycle>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/lowcycle.ins b/macros/latex/contrib/xymtex/base/lowcycle.ins
new file mode 100644
index 0000000000..9421c42936
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lowcycle.ins
@@ -0,0 +1,53 @@
+\def\batchfile{lowcycle.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996,1998,2001,2002,2004,2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.00 Released on August 30, 2004
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files lowcycle.dtx and lowcycle.ins
+and the derived file lowcycle.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{lowcycle.drv}{t}{%
+ \from{lowcycle.dtx}{driver}}
+
+\generateFile{lowcycle.sty}{t}{%
+ \from{lowcycle.dtx}{lowcycle}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/lowcycle.sty b/macros/latex/contrib/xymtex/base/lowcycle.sty
new file mode 100644
index 0000000000..f8e2f30a10
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lowcycle.sty
@@ -0,0 +1,145 @@
+%%
+%% This is file `lowcycle.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lowcycle.dtx (with options: `lowcycle')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996,1998,2001,2002,2004,2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.00 Released on August 30, 2004
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files lowcycle.dtx and lowcycle.ins
+%% and the derived file lowcycle.sty.
+%%
+%% =======================================
+%%
+%% File: lowcycle.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{lowcycle}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{threehetero}{\input hetarom.sty\relax}{}
+\@ifundefined{sixheteroh}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+\def\cyclopentanev{\@ifnextchar[{\@cyclopentanev[@}{\@cyclopentanev[]}}
+\def\@cyclopentanev[#1]#2{%
+\iforigpt \typeout{command `cyclopentanev' %
+ is based on `fiveheterov'.}\fi%
+\fiveheterov[#1]{}{#2}}
+\def\cyclopentanevi{\@ifnextchar[{\@cyclopentanevi[@}{\@cyclopentanevi[]}}
+\def\@cyclopentanevi[#1]#2{%
+\iforigpt \typeout{command `cyclopentanevi' %
+ is based on `fiveheterovi'.}\fi%
+\fiveheterovi[#1]{}{#2}}
+\def\cyclopentaneh{\@ifnextchar[{\@cyclopentaneh[@}{\@cyclopentaneh[]}}
+\def\@cyclopentaneh[#1]#2{%
+\iforigpt \typeout{command `cyclophentaneh' %
+ is based on `fiveheteroh'.}\fi%
+\fiveheteroh[#1]{}{#2}}
+\def\cyclopentanehi{%
+ \@ifnextchar[{\@cyclopentanehi[@}{\@cyclopentanehi[]}}
+\def\@cyclopentanehi[#1]#2{%
+\iforigpt \typeout{command `cyclopentanehi' %
+ is based on `fiveheterohi'.}\fi%
+\fiveheterohi[#1]{}{#2}}
+\def\indanev{\@ifnextchar[{\@indanev[@}{\@indanev[rb]}}
+\def\@indanev[#1]#2{%
+\iforigpt \typeout{command `indanev' %
+ is based on `nonaheterov'.}\fi%
+\nonaheterov[#1]{}{#2}}
+\def\indanevi{\@ifnextchar[{\@indanevi[@}{\@indanevi[rb]}}
+\def\@indanevi[#1]#2{%
+\iforigpt \typeout{command `indanevi' %
+ is based on `nonaheterovi'.}\fi%
+\nonaheterovi[#1]{}{#2}}
+\def\indaneh{\@ifnextchar[{\@indaneh[@}{\@indaneh[rb]}}
+\def\@indaneh[#1]#2{%
+\iforigpt \typeout{command `indaneh' %
+ is based on `nonaheteroh'.}\fi%
+\nonaheteroh[#1]{}{#2}}
+\def\indanehi{\@ifnextchar[{\@indanehi[@}{\@indanehi[rb]}}
+\def\@indanehi[#1]#2{%
+\iforigpt \typeout{command `indanehi' %
+ is based on `nonaheterohi'.}\fi%
+\nonaheterohi[#1]{}{#2}}
+\def\cyclobutane{\@ifnextchar[{\@cyclobutane[@}{\@cyclobutane[]}}
+\def\@cyclobutane[#1]#2{%
+\iforigpt \typeout{command `cyclobutane' %
+ is based on `fourhetero'.}\fi%
+\fourhetero[#1]{}{#2}}
+\def\cyclopropane{\@ifnextchar[{\@cyclopropane[@}{\@cyclopropane[]}}
+\def\@cyclopropane[#1]#2{%
+\iforigpt \typeout{command `cyclopropane' %
+ is based on `threehetero'.}\fi%
+\threehetero[#1]{}{#2}}
+\let\cyclopropanev=\cyclopropane
+\def\cyclopropanei{\@ifnextchar[{\@cyclopropanei[@}{\@cyclopropanei[]}}
+\def\@cyclopropanei[#1]#2{%
+\iforigpt \typeout{command `cyclopropanei' %
+ is based on `threeheteroi'.}\fi%
+\threeheteroi[#1]{}{#2}}
+\let\cyclopropanevi=\cyclopropanei
+\def\cyclopropaneh{\@ifnextchar[{\@cyclopropaneh[@}{\@cyclopropaneh[]}}
+\def\@cyclopropaneh[#1]#2{%
+\iforigpt \typeout{command `cyclopropaneh' %
+ is based on `threeheteroh'.}\fi%
+\threeheteroh[#1]{}{#2}}
+\def\cyclopropanehi{\@ifnextchar[{\@cyclopropanehi[@}{\@cyclopropanehi[]}}
+\def\@cyclopropanehi[#1]#2{%
+\iforigpt \typeout{command `cyclopropanehi' %
+ is based on `threeheterohi'.}\fi%
+\threeheterohi[#1]{}{#2}}
+\endinput
+%%
+%% End of file `lowcycle.sty'.
diff --git a/macros/latex/contrib/xymtex/base/methylen.dtx b/macros/latex/contrib/xymtex/base/methylen.dtx
new file mode 100644
index 0000000000..a1581b9220
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/methylen.dtx
@@ -0,0 +1,6419 @@
+% \iffalse meta-comment
+%% File: methylen.dtx
+%
+% Copyright 1998,2001,2002,2004,2005,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files methylen.dtx and methylen.ins
+% and the derived file methylen.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{July 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{March 29, 2013}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{methylen}
+% \def\versi@ndate{June 27, 2013}
+% \def\versi@nno{ver5.01bbb}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{8103}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.02}{1998/10/31}{first edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clip information}
+% \changes{v2.01}{2001/6/20}{Size reduction and clipping information}
+% \changes{v3.00}{2002/4/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v4.03}{2005/07/20}{Wave bonds}
+% \changes{v5.00}{2010/10/01}{For bond coloring and the LaTeX Project Public License}
+% \changes{v5.01b}{2013/03/29}{bug fix for \cs{yltrimethyleneposition}}
+% \changes{v5.01bb}{2013/06/22}{another bug fix for \cs{yltrimethyleneposition} etc.}
+% \changes{v5.01bbb}{2013/06/27}{addition: Sd, Su, WU, WV, WA, WB etc. }
+% \changes{v5.01}{2013/07/20}{bug fix}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{methylen.dtx}[2013/07/20 v5.01 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{methylen.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Methylene Chains by {\sffamily methylen.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{methylen.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{methylen:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% methylen & methylen.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*methylen>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 20, 2013 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{methylen}
+\def\versi@ndate{July 20, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for methylen.sty}
+%
+% \begin{verbatim}
+% **********************************
+% * methylen.sty: list of commands *
+% **********************************
+%
+% <Switches for drawing substituents and bonds>
+%
+% \if@adoublebond \if@bdoublebond
+% \if@Adoublebond \if@adoublebond}
+% \reset@double
+% \if@linterchainsw \if@rinterchainsw}
+% \reset@interchainsw
+%
+% <Command for drawing substituents and bonds>
+%
+% \@methsubsta \@methsubstd \@methsubstdL
+% \SKbondA \SKbondB
+% \bondA \bondAA
+% \bondB \bondBB
+%
+% <Basic commands for typesetting aliphatic chains>
+%
+% \@@trimethylene
+% \@@dimethylene
+%
+% <Commands for adjusting substitution sites>
+%
+% \yltrimethyleneposition
+% \yldimethyleneposition
+%
+% <Commands for drawing aliphatic chains>
+%
+% \trimethylene \trimethylenei
+% \dimethylene \dimethylenei
+% \tetramethylene \tetramethylenei
+% \pentamethylene \pentamethylenei
+% \hexamethylene \hexamethylenei
+% \heptamethylene \heptamethylenei
+% \octamethylene octamethylenei
+% \nonamethylene \nonamethylenei
+% \decamethylene \decamethylenei
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf polymers.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} etc. for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{Westbond}{\input aliphat.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\@ifundefined{hbonde}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \section{Setting Substituents}
+%
+% Substitutions on each methylene of a polymethylene chain
+% is typeset by macros |\@methsubsta| etc.
+% The macro |\@methsubsta| is used to place substituents on an
+% upper-side methylene. A new bond modifier ``W'' is added to
+% typeset a terminal substituent.
+%
+% \changes{v5.01}{2013/06/27}{Addition Su, Sd, WU, WA, WB}
+%
+% \begin{macro}{\@methsubsta}
+% \begin{macrocode}
+\newif\if@wrongbdWa \@wrongbdWafalse
+\newif\if@wrongbdWd \@wrongbdWdfalse
+\newif\if@wrongbdWaL \@wrongbdWaLfalse
+\newif\if@wrongbdWdL \@wrongbdWdLfalse
+\def\@methsubsta{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+%2023/06/27
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % wavy single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,536)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \if@wrongbdWa
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ \putratom{150}{276}{\@memberb}% % left or right type
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ }%
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ {%
+ \thicklines%
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ }%
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \dotorline(40,382)(5,-3){100}/(40,382)(140,322)%
+ \putratom{150}{276}{\@memberb}% % left or right type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+%2023/06/27
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % wavy single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \else\if\@tmpb U%undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \if@wrongbdWa
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ \putratom{130}{276}{\@memberb}% % left or right type
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ }%
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ }%
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \dotorline(0,406)(5,-3){120}/(0,406)(120,334)%
+ \putratom{130}{276}{\@memberb}% % left or right type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\@methsubstd| is used to place substituents on a
+% down-side methylene. A new bond modifier ``W'' is added to
+% typeset a terminal substituent.
+%
+% \changes{v5.01}{2013/06/27}{Addition Su, Sd, WU, WA, WB}
+%
+% \begin{macro}{\@methsubstd}
+% \begin{macrocode}
+\def\@methsubstd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+%2023/06/27
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % wavy single bond at 1
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ \if@wrongbdWd
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \dotorline(40,24)(5,3){100}/(40,24)(140,84)%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \fi\fi\fi\fi\fi\fi%
+ \else% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+%2023/06/27
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % wavy single bond at 1
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ \if@wrongbdWd
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \dotorline(0,0)(5,3){140}/(0,0)(140,84)%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\@methsubstdL| is used to place substituents on a
+% left-teminal down-side methylene. A new bond modifier ``W'' is
+% added to typeset a terminal substituent.
+% \changes{v5.01}{2013/06/27}{bug fix SU to SV, SV to SU. Addition Su, Sd, WU, WA, WB}
+%
+% \begin{macro}{\@methsubstdL}
+% \begin{macrocode}
+\def\@methsubstdL{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%2013/06/27
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ \putlatom{-150}{54}{\@memberb}% % lefttype
+ \if@wrongbdWdL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \dotorline(-40,24)(-5,3){100}/(-40,24)(-140,84)%
+ \putlatom{-150}{54}{\@memberb}% % left type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+\else% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%2013/06/27
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+%
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \if@wrongbdWdL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \dotorline(0,0)(-5,3){140}/(0,0)(-140,84)%
+ \putlatom{-150}{54}{\@memberb}% % left type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%end of \@methsubstdL
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\@methsubstaL| is used to place substituents on a
+% left-teminal upper-side methylene. A new bond modifier ``W'' is
+% added to typeset a terminal substituent.
+% \changes{v5.01}{2013/06/27}{bug fix SU to SV, SV to SU. Addition Su, Sd, WU, WA, WB}
+%
+% \begin{macro}{\@methsubstaL}
+% \begin{macrocode}
+\def\@methsubstaL{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%2013/06/27
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-78,536)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \if@wrongbdWaL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ }%
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ {%
+ \thicklines%
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ }%
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \dotorline(-40,382)(-5,-3){100}/(-40,382)(-140,322)%
+ \putlatom{-150}{276}{\@memberb}% % left type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%2013/06/27
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+%
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \if@wrongbdWaL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+%2013/06/27
+ \else\if\@tmpc U%undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ }%
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ }%
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ \dotorline(0,406)(-5,-3){120}/(0,406)(-120,334)%
+ \putlatom{-130}{276}{\@memberb}% % left type
+%
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Setting Bonds}
+% \subsection{Outer Skeletal Bonds}
+%
+% The macros |\SKbondB| and |\SKbondA| are used to typeset
+% outer skeletal bonds of a methylene chain (|\..methylene|)
+%
+% \begin{macro}{\SKbondB}
+% \begin{macrocode}
+\def\SKbondB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \else%
+ \Put@Line(0,406)(5,-3){136}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,385)(5,-3){136}% %bond 1-2
+ \else%
+ \Put@Line(35,385)(5,-3){100}% %bond 1-2
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SKbondA}
+% \begin{macrocode}
+\def\SKbondA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \else%
+ \Put@Line(0,406)(-5,-3){136}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,385)(-5,-3){136}% %bond 1-6
+ \else%
+ \Put@Line(-35,385)(-5,-3){100}% %bond 1-6
+ \fi%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\SKbondBi| and |\SKbondAi| are used to typeset
+% outer skeletal bonds of a methylene chain (inverse type |\..methylenei|).
+%
+% \begin{macro}{\SKbondBi}
+% \begin{macrocode}
+\def\SKbondBi{%
+ \begin{sfpicture}(0,0)(0,0)
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(5,3){136}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,21)(5,3){138}% %bond 4-3
+ \else%
+ \Put@Line(35,21)(5,3){100}% %bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SKbondAi}
+% \begin{macrocode}
+\def\SKbondAi{%
+ \begin{sfpicture}(0,0)(0,0)
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(-5,3){136}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,21)(-5,3){138}% %bond 4-5
+ \else%
+ \Put@Line(-35,21)(-5,3){100}% %bond 4-5
+ \fi%
+ \fi\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inner Double Bonds}
+%
+% The macros |\bondB| is used to place a line of
+% a double bond in the (5,-3) direction at the lower side
+% of an outer skeletal bond.
+%
+% \begin{macro}{\bondB}
+% \begin{macrocode}
+\def\bondB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(6,364)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,340)(5,-3){100}% %double bond 1-2
+ \else%
+ \Put@Line(35,352)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondBB| is used to place a line of
+% a double bond in the (5,-3) direction at the upper side
+% of an outer skeletal bond.
+%
+% \begin{macro}{\bondBB}
+% \begin{macrocode}
+\def\bondBB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(42,420)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(42,420)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(52,412)(5,-3){110}% %double bond 1-2
+ \else%
+ \Put@Line(52,412)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondA| is used to place a line of
+% a double bond in the (-5,-3) direction at the lower
+% side of an outer skeletal bond.
+%
+% \begin{macro}{\bondA}
+% \begin{macrocode}
+\def\bondA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-6,364)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,340)(-5,-3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-35,352)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondAA| is used to place a line of
+% a double bond in the (-5,-3) direction at the upper side
+% of an outer skeletal bond.
+%
+% \begin{macro}{\bondAA}
+% \begin{macrocode}
+\def\bondAA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-42,420)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-42,420)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-52,412)(-5,-3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-52,412)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The bond-setting commands with sufix ``i'' are used in the definitions
+% of commands such as |\...methylenei|.
+%
+% The macros |\bondBi| is used to place a line of
+% a double bond in the (5,3) direction at the upper side
+% of an outer skeletal bond.
+%
+% \begin{macro}{\bondBi}
+% \begin{macrocode}
+ \def\bondBi{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+ \else%
+ \Put@Line(6,42)(5,3){100}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,66)(5,3){100}% %double bond 4-3
+ \else%
+ \Put@Line(35,60)(5,3){100}% %double bond 4-3
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondBBi| is used to place a line of
+% a double bond in the (5,3) direction at the lower
+% side of an outer skeletal bond.
+%
+% \begin{macro}{\bondBBi}
+% \begin{macrocode}
+ \def\bondBBi{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+% \Put@Line(6,42)(5,3){126}% %double bond 4-3
+ \Put@Line(42,-14)(5,3){126}% %double bond 1-6
+ \else%
+% \Put@Line(6,42)(5,3){100}% %double bond 4-3
+% \Put@Line(42,-14)(5,3){100}% %double bond 1-6
+ \Put@Line(30,-14)(5,3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+% \Put@Line(35,66)(5,3){100}% %double bond 4-3
+% \Put@Line(52,6)(5,3){100}% %double bond 1-6
+ \Put@Line(52,0)(5,3){100}% %double bond 1-6
+ \else%
+% \Put@Line(35,60)(5,3){100}% %double bond 4-3
+ \Put@Line(52,0)(5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondAi| is used to place a line of
+% a double bond in the (-5,3) direction at the upper
+% side of an outer skeletal bond.
+
+% \begin{macro}{\bondAi}
+% \begin{macrocode}
+ \def\bondAi{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+ \else%
+ \Put@Line(-6,42)(-5,3){100}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,66)(-5,3){100}% %double bond 4-5
+ \else%
+ \Put@Line(-35,60)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\bondAAi| is used to place a line of
+% a double bond in the (-5,3) direction at the lower
+% side of an outer skeletal bond.
+%
+% \begin{macro}{\bondAAi}
+% \begin{macrocode}
+ \def\bondAAi{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+% \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+ \Put@Line(-42,-14)(-5,3){126}% %double bond 1-6
+ \else%
+% \Put@Line(-6,42)(-5,3){100}% %double bond 4-5
+ \Put@Line(-42,-14)(-5,3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+% \Put@Line(-35,66)(-5,3){100}% %double bond 4-5
+ \Put@Line(-52,6)(-5,3){100}% %double bond 1-6
+ \else%
+% \Put@Line(-35,60)(-5,3){100}% %double bond 4-5
+ \Put@Line(-52,0)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Switches}
+%
+% \begin{macro}{\if@adoublebond}
+% \begin{macro}{\if@bdoublebond}
+% \begin{macro}{\if@Adoublebond}
+% \begin{macro}{\if@adoublebond}
+% \begin{macro}{\reset@double}
+% \begin{macrocode}
+\newif\if@adoublebond \@adoublebondfalse
+\newif\if@bdoublebond \@bdoublebondfalse
+\newif\if@Adoublebond \@Adoublebondfalse
+\newif\if@Bdoublebond \@Bdoublebondfalse
+\def\reset@double{%
+\@adoublebondfalse\@bdoublebondfalse
+\@Adoublebondfalse\@Bdoublebondfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@linterchainsw}
+% \begin{macro}{\if@rinterchainsw}
+% \begin{macro}{\reset@interchainsw}
+% \begin{macrocode}
+\newif\if@linterchainsw \@linterchainswfalse
+\newif\if@rinterchainsw \@rinterchainswfalse
+\def\reset@interchainsw{\@linterchainswfalse\@rinterchainswfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Trimethylene}
+% \subsection{Normal direction}
+%
+% A trimethylene (or propane) and its hetera analogs can be typeset
+% by the command |\trimethylene|, which is mainly based on
+% two inner commands: |\yltrimethyleneposition| for adjusting a
+% substitution site and |\@@trimethylene| for
+% placing hetero atoms, double bonds, and substituents.
+%
+% \begin{macro}{\@@trimethylene}
+% \begin{verbatim}
+% \@@trimethylene{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: positions bbb and ccc
+% 2: positions aaa and bbb
+%
+% bbb
+% 2
+% a / ` b
+% 1 3
+% aaa ccc
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\@@trimethylene#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@trimethy{#1}{#4}%
+%\test@vertix@sixv{#1}{a}{b}{c}{@}{@}{@}%
+\begin{sfpicture}(450,480)(0,0)%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+ \Put@Direct(171,-303){\SKbondB}% bond between 1 and 2
+ \Put@Direct(171,-303){\SKbondA}% bond between 1 and 6
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@adoublebond\relax\Put@Direct(171,-303){\bondA}\fi
+\if@bdoublebond\relax\Put@Direct(171,-303){\bondB}\fi
+\if@Adoublebond\relax\Put@Direct(171,-303){\bondAA}\fi
+\if@Bdoublebond\relax\Put@Direct(171,-303){\bondBB}\fi
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\test@termcnt=#3\relax
+%\set@hetatom@methyl{#1}{0}{0}{4}{0}%
+\set@hetatom@methyl{#1}{#4}{0}{4}{0}%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \or\relax
+ \or
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \fi
+\or
+\setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+\or
+ \ifcase#3
+ \setBScolor{\if@cclip \@cliptrue\else \@clipfalse\fi
+ \Put@Direct(342,0){\@methsubstd}}%
+ \or
+ \setBScolor{\if@cclip \@cliptrue\else \@clipfalse\fi
+ \Put@Direct(342,0){\@methsubstd}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi
+}%
+\end{sfpicture}}% end of \@@trimethylene
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\test@vrtx@trimethy}
+% \changes{v2.00}{1998/12/21}{New command: \cs{test@vrtx@trimethy}}
+% \begin{macrocode}
+\def\test@vrtx@trimethy#1#2{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#2\relax
+\ifcase\@tmpaa%
+ \or \if\@tmpb s\relax \xdef\aaa{}\else\if\@tmpb h\relax
+ \xdef\aaa{@}\else\xdef\aaa{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\bbb{}\else\if\@tmpb h\relax
+ \xdef\bbb{@}\else\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\ccc{}\else\if\@tmpb h\relax
+ \xdef\ccc{@}\else\xdef\ccc{@}\fi\fi
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% The |\yltrimethyleneposition| is used to adjust
+% substitution sites for the command |\@@trimethylene|.
+% \changes{v5.01}{2013/06/22}{bug fix}
+%
+% \begin{macro}{\yltrimethyleneposition}
+% \begin{verbatim}
+% \yltrimethylene{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: positions bbb and ccc
+% 2: positions aaa and bbb
+%
+% bbb
+% 2
+% a / ` b
+% 1 3
+% aaa ccc
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.01}{2013/03/29}{bug fix on a terminal position}
+% \changes{v5.01}{2013/07/20}{bug fix}
+% \begin{macrocode}%
+\def\yltrimethyleneposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%
+ \or \def\bbb{@}%\def\bbb{\@memberb}%
+ \or \def\ccc{@}%\def\ccc{\@memberb}%
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1%bug fix 2013/03/29
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \fi
+\or
+ \ifcase#3
+ \ifx\ccc\empty
+ \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \else
+ \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or
+ \ifx\ccc\empty
+ \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \else
+ \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yltrimethyleneposition
+% \end{macrocode}
+% \end{macro}
+%
+% The counter |\test@termcnt|, which is equal to
+% the argument \#3 of command |\@@trimethylene|,
+% is used for testing a terminal point.
+%
+% \begin{macro}{\test@termcnt}
+% \changes{v2.00}{1998/12/21}{New command: \cs{test@termcnt}}
+% \begin{macrocode}
+\newcount\test@termcnt
+% \end{macrocode}
+% \end{macro}
+%
+% The |\set@hetatom@methyl| is used to set a hetero atom
+% at each vertex in the command |\@@trimethylene|.
+%
+% \begin{macro}{\set@hetatom@methyl}
+% \changes{v2.00}{1998/12/20}{New command: \cs{set@hetatom@methyl}}
+% \begin{macrocode}
+\def\set@hetatom@methyl#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1 <--- position 6 of set@hetatom@sixv
+ \ifnum\test@termcnt=1\else%not terminal point (left)
+ \if\@tmpb h\relax%
+ \@acliptrue%
+ \putlatom{0}{30}{\@memberb}% % right type
+ \else\if\@tmpb s\relax%
+ \@aclipfalse%
+% \putlatom{-4}{0}{\@memberb}% % right type
+ \putlatom{0}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{36}{-23}{\@memberb}% % left type
+ \fi\fi\fi
+ \fi
+\or%position 2 <--- position 1 of set@hetatom@sixv
+ \if\@tmpb h\relax%
+ \@bcliptrue%
+ \putratom{171}{53}{\@memberb}% % right type
+ \else\if\@tmpb s\relax%
+ \@bclipfalse%
+ \putratom{171}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+% \putratom{140}{53}{\@memberb}% % right type
+ \putratom{140}{65}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3 <--- position 2 of set@hetatom@sixv
+ \ifnum\test@termcnt=2\else%not terminal point (right)
+ \if\@tmpb h\relax
+ \@ccliptrue%
+% \putratom{320}{30}{\@memberb}% % right type
+ \putratom{330}{30}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{346}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{306}{-23}{\@memberb}% % right type
+ \fi\fi\fi
+ \fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@methyl
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\trimethylene| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\trimethylene}
+% \begin{macro}{\@trimethylene}
+%
+% \begin{verbatim}
+%
+% bbb
+% 2
+% a / ` b (or uppercase letters)
+% / `
+% 1 3
+% aaa ccc
+% \end{verbatim}
+%
+%
+% \begin{verbatim}
+% \trimethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character a, A, b, or B
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 1,2-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 3)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \trimethylene{1==N}{1==Cl;2==F}
+% \trimethylene[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\trimethylene| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethyleneposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylene|.
+% \end{enumerate}
+%
+% \changes{v3.01}{2002/4/30}{Replaced by \cs{ShiftPicEnv}}
+%
+% \begin{macrocode}
+\def\trimethylene{%
+\@ifnextchar[{\@trimethylene[@}{\@trimethylene[]}}
+\def\@trimethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yltrimethyleneposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(450,480)(-50,-180){trimethylene}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue%
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@trimeth%
+\fi\fi\fi\fi}%
+\@wrongbdWatrue%
+\@wrongbdWdfalse%
+ \Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}%
+%
+%for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@trimeth%
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \trimethylene \@trimethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@trimeth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@trimeth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@trimeth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@trimeth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@trimeth
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse direction}
+%
+% A trimethylene (or propane) and its hetera analogs can be typeset
+% by the command |\trimethylenei|, which is mainly based on
+% two inner commands: |\yltrimethyleneiposition| for adjusting a
+% substitution site and |\@@trimethylenei| for
+% placing hetero atoms, double bonds, and substituents.
+%
+% \begin{macro}{\@@trimethylenei}
+% \begin{verbatim}
+% \@@trimethylenei{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: positions bbb and ccc
+% 2: positions aaa and bbb
+%
+% aaa ccc
+% 1 3
+% a ` / b
+% ` /
+% 2
+% bbb
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\@@trimethylenei#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@trimethy{#1}{#4}%
+%\test@vertix@sixv{#1}{a}{b}{c}{@}{@}{@}%
+\begin{sfpicture}(450,480)(0,0)
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+ \Put@Direct(171,0){\SKbondAi}% bond between 1 and 2
+ \Put@Direct(171,0){\SKbondBi}% bond between 2 and 3
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@adoublebond\relax\Put@Direct(171,0){\bondAi}\fi
+\if@bdoublebond\relax\Put@Direct(171,0){\bondBi}\fi
+\if@Adoublebond\relax\Put@Direct(171,0){\bondAAi}\fi
+\if@Bdoublebond\relax\Put@Direct(171,0){\bondBBi}\fi
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\test@termcnt=#3\relax
+%\set@hetatom@methyli{#1}{0}{0}{4}{0}%
+\set@hetatom@methyli{#1}{#4}{0}{4}{0}%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \or\relax
+ \or
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \fi
+\or
+\setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+\or
+ \ifcase#3
+ \setBScolor{\if@cclip \@acliptrue\else \@aclipfalse\fi
+ \Put@Direct(342,-303){\@methsubsta}}%
+ \or
+ \setBScolor{\if@cclip \@acliptrue\else \@aclipfalse\fi
+ \Put@Direct(342,-303){\@methsubsta}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi
+}%
+\end{sfpicture}}% end of \@@trimethylenei
+% \end{macrocode}
+% \end{macro}
+%
+% The |\yltrimethyleneiposition| is used to adjust
+% substitution sites.
+% \changes{v5.01}{2013/06/22}{bug fix}
+% \changes{v5.01}{2013/07/20}{bug fix}
+%
+% \begin{macro}{\yltrimethyleneiposition}
+% \begin{verbatim}
+% \yltrimethylenei{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: positions bbb and ccc
+% 2: positions aaa and bbb
+%
+% aaa ccc
+% 1 3
+% a ` / b
+% ` /
+% 2
+% bbb
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \begin{macrocode}%
+\def\yltrimethyleneiposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+%\expandafter\twoch@r\@membera{}%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%
+ \or \def\bbb{@}%\def\bbb{\@memberb}%
+ \or \def\ccc{@}%\def\ccc{\@memberb}%
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or%%%%%%position 1
+ \ifcase#3
+ \ifx\aaa\empty
+%% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+% \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+%% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+%% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+% \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+%% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or%%%%%%%%position 2
+ \ifx\bbb\empty
+%% \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+%% \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{50}\global\@ylswtrue% subst. on 2
+ \fi
+\or%%%%%%%%position 3
+ \ifcase#3
+ \ifx\ccc\empty
+%% \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-103}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+%% \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-133}\global\@ylswtrue% subst. on 3
+ \else
+%% \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-382}\gdef\@yli{-79}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or
+ \ifx\ccc\empty
+% \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-103}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+% \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-133}\global\@ylswtrue% subst. on 3
+ \else
+% \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-382}\gdef\@yli{-79}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yltrimethyleneiposition
+% \end{macrocode}
+% \end{macro}
+%
+% The |\set@hetatom@methyli| is used to set a hetero atom
+% at each vertex in the command |\@@trimethylenei|.
+%
+% \begin{macro}{\set@hetatom@methyli}
+% \changes{v2.00}{1998/12/20}{New command: \cs{set@hetatom@methyli}}
+% \begin{macrocode}
+\def\set@hetatom@methyli#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1 <-- \set@hetatom@sixv position 5
+ \ifnum\test@termcnt=1\else%not terminal point (left)
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{0}{70}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{36}{65}{\@memberb}% % left type
+ \fi\fi\fi
+ \fi
+\or%position 2 <-- \set@hetatom@sixv position 4
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{171}{50}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{171}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+% \putratom{140}{-10}{\@memberb}% % right type
+ \putratom{140}{-23}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3 <-- \set@hetatom@sixv position 3
+ \ifnum\test@termcnt=2\else%not terminal point (right)
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{342}{70}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{342}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{306}{65}{\@memberb}% % right type
+ \fi\fi\fi
+ \fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@methyli
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\trimethylenei| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\trimethylenei}
+% \begin{macro}{\@trimethylenei}
+%
+% \begin{verbatim}
+% aaa ccc
+% 1 3
+% a ` / b (or uppercase letters)
+% ` /
+% 2
+% bbb
+% \end{verbatim}
+%
+%
+% \begin{verbatim}
+% \trimethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character a, A, b, or B
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a upper-side of an outer skeletal bond,
+% while a uppercase letter typesets a double bond at a lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 1,2-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 3 atoms)
+%
+% for n = 1 to 3
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 3
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 3)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \trimethylenei{1==N}{1==Cl;2==F}
+% \trimethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\trimethylene| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethyleneiposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylenei|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\trimethylenei{%
+\@ifnextchar[{\@trimethylenei[@}{\@trimethylenei[]}}
+\def\@trimethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yltrimethyleneiposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(450,480)(-50,-180){trimethylenei}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+%\@adoublebondfalse
+%\@bdoublebondfalse
+%\@Adoublebondfalse
+%\@Bdoublebondfalse
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@trimethi
+\fi\fi\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+ \Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@trimethi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \trimethylenei
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@trimethi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@trimethi}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@trimethi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@trimethi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@trimethi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Dimethylene}
+% \subsection{Normal direction}
+%
+% A dimethylene (or ethane) and its hetera analogs can be typeset
+% by the command |\dimethylene|, which is mainly based on
+% two inner commands: |\yldimethyleneposition| for adjusting a
+% substitution site and |\@@dimethylene| for
+% placing hetero atoms, double bonds, and substituents.
+%
+% \begin{macro}{\@@dimethylene}
+% \begin{verbatim}
+% \@@dimethylene{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: position bbb
+% 2: position aaa
+%
+% bbb
+% 2
+% a /
+% 1
+% aaa
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\@@dimethylene#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@dimethy{#1}{#4}%
+%\test@vertix@sixv{#1}{a}{b}{@}{@}{@}{@}%
+\begin{sfpicture}(250,480)(0,0)%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+ \Put@Direct(171,-303){\SKbondA}% bond between 1 and 2
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@adoublebond
+ \Put@Direct(171,-303){\bondA}%upper side double bond
+\else\if@Adoublebond
+ \Put@Direct(171,-303){\bondAA}%lower side double bond
+\fi\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\test@termcnt=#3\relax
+%\set@hetatom@methyl{#1}{0}{0}{3}{0}%
+\set@hetatom@methyl{#1}{#4}{0}{3}{0}%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \or\relax
+ \or
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \fi
+\or
+ \ifcase#3
+ \setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+ \or
+ \setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{sfpicture}}% end of \@@dimethylene
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\test@vrtx@dimethy}
+% \changes{v2.00}{1998/12/21}{New command: \cs{test@vrtx@dimethy}}
+% \begin{macrocode}
+\def\test@vrtx@dimethy#1#2{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#2\relax
+\ifcase\@tmpaa%
+ \or \if\@tmpb s\relax \xdef\aaa{}\else\if\@tmpb h\relax
+ \xdef\aaa{@}\else\xdef\aaa{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\bbb{}\else\if\@tmpb h\relax
+ \xdef\bbb{@}\else\xdef\bbb{@}\fi\fi
+\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% The |\yldimethyleneposition| is used to adjust
+% substitution sites.
+% \changes{v5.01}{2013/06/22}{bug fix}
+%
+% \begin{macro}{\yldimethyleneposition}
+% \begin{verbatim}
+% \yldimethylene{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: position bbb
+% 2: position aaa
+%
+% bbb
+% 2
+% a /
+% 1
+% aaa
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.01}{2013/07/20}{Bug fix}
+%
+% \begin{macrocode}%
+\def\yldimethyleneposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%2013/06/22
+ \or \def\bbb{@}%\def\bbb{\@memberb}%2013/06/22
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \ifx\aaa\empty
+% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or
+ \ifcase#3
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or \relax
+ \fi
+\fi%end of ifcase
+\fi\fi}}% end of \yldimethyleneposition
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The macro |\dimethylene| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\dimethylene}
+% \begin{macro}{\@dimethylene}
+% \begin{verbatim}
+%
+% bbb
+% 2
+% a / (or uppercase letters)
+% /
+% 1
+% aaa
+% \end{verbatim}
+%
+%
+% \begin{verbatim}
+% \dimethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character a or A,
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc. )
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 2 atoms)
+%
+% for n = 1 and 2
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 and 2
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 2)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \dimethylene{1==N}{1==Cl;2==F}
+% \dimethylene[a]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\dimethylene| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yldimethyleneposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@dimethylene|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\dimethylene{%
+\@ifnextchar[{\@dimethylene[@}{\@dimethylene[]}}
+\def\@dimethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yldimethyleneposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(250,480)(-50,-180){dimethylene}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@dimeth
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdfalse
+ \Put@Direct(0,0){\@@dimethylene{#2}{#3}{0}{0}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@dimeth
+\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \dimethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@dimeth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@dimeth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@dimeth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@dimeth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@dimeth
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse direction}
+%
+% A dimethylene (or ethane) and its hetera analogs (of inverse direction)
+% can be typeset by the command |\dimethylenei|, which is mainly based on
+% two inner commands: |\yldimethyleneiposition| for adjusting a
+% substitution site and |\@@dimethylenei| for
+% placing hetero atoms, double bonds, and substituents.
+%
+% \begin{macro}{\@@dimethylenei}
+% \begin{verbatim}
+% \@@dimethylenei{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: position bbb
+% 2: positions aaa
+%
+% aaa
+% 1
+% a `
+% `
+% 2
+% bbb
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \changes{v5.00}{2010/10/01}{For bond coloring}
+% \begin{macrocode}
+\def\@@dimethylenei#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@dimethy{#1}{#4}%
+%\test@vertix@sixv{#1}{a}{b}{@}{@}{@}{@}%
+\begin{sfpicture}(250,480)(0,0)%
+% %%%%%%%%%%%%%%%%%%
+% % outer skeleton %
+% %%%%%%%%%%%%%%%%%%
+ \Put@Direct(171,0){\SKbondAi}% bond between 1 and 2
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner double bond %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@adoublebond
+ \Put@Direct(171,0){\bondAi}%upper side double bond
+\else\if@Adoublebond
+ \Put@Direct(171,0){\bondAAi}%lower side double bond
+\fi\fi%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting hetero atoms %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\test@termcnt=#3\relax
+%\set@hetatom@methyli{#1}{0}{0}{3}{0}%
+\set@hetatom@methyli{#1}{#4}{0}{3}{0}%
+% %%%%%%%%%%%%%%%%%%%%%%%%
+% % setting substituents %
+% %%%%%%%%%%%%%%%%%%%%%%%%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \or\relax
+ \or
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \fi
+\or
+ \ifcase#3
+ \setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+ \or
+ \setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{sfpicture}}% end of \@@dimethylenei
+% \end{macrocode}
+% \end{macro}
+%
+% The |\yldimethyleneiposition| is used to adjust
+% substitution sites.
+% \changes{v5.01}{2013/06/22}{bug fix}
+% \changes{v5.01}{2013/07/20}{bug fix}
+%
+% \begin{macro}{\yldimethyleneiposition}
+% \begin{verbatim}
+% \yldimethylenei{ATOMLIST}{BONDLIST}{TERMswitch}{Adjust}
+%
+% <TERMswitch>
+% 0: all positions
+% 1: position bbb
+% 2: position aaa
+%
+% aaa
+% 1
+% a `
+% `
+% 2
+% bbb
+%
+% <Adjust>
+% a positive or negative integer to adjust locant numbers
+% \end{verbatim}
+%
+% \begin{macrocode}%
+\def\yldimethyleneiposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%2013/06/22
+ \or \def\bbb{@}%\def\bbb{\@memberb}%2013/06/22
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or%%%%%%%%position 1
+ \ifcase#3
+ \ifx\aaa\empty
+% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+% \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+% \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or%%%%%%%%position 2
+ \ifcase#3
+ \ifx\bbb\empty
+% \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+% \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{33}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ % \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-211}\gdef\@yli{-10}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or
+ \ifx\bbb\empty
+% \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+% \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{33}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+% \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-211}\gdef\@yli{-10}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or \relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yldimethyleneiposition
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\dimethylenei| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\dimethylenei}
+% \begin{macro}{\@dimethylenei}
+% \begin{verbatim}
+%
+% aaa
+% 1
+% a ` (or uppercase letter)
+% `
+% 2
+% bbb
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \dimethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character a or A,
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc. )
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 2 atoms)
+%
+% for n = 1 and 2
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 and 2
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 2)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \dimethylenei{1==N}{1==Cl;2==F}
+% \dimethylenei[a]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\dimethylenei| uses a picture environment and
+% consists of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yldimethyleneposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@dimethylene|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\dimethylenei{%
+\@ifnextchar[{\@dimethylenei[@}{\@dimethylenei[]}}
+\def\@dimethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yldimethyleneiposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(250,480)(-50,-180){dimethylenei}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@dimethi
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdfalse
+ \Put@Direct(0,0){\@@dimethylenei{#2}{#3}{0}{0}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@dimethi
+\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \dimethylenei
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@dimethi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@dimethi}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@dimethi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@dimethi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@dimethi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Tetramethylenes}
+% \subsection{Normal direction}
+%
+% The macro |\tetramethylene| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\tetramethylene}
+% \begin{macro}{\@tetramethylene}
+%
+% \begin{verbatim}
+%
+% bbb ddd
+% 2 4
+% a / ` b / c (or uppercase letters)
+% / ` /
+% 1 3
+% aaa ccc
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \tetramethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to c (or A to C),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 4 atoms)
+%
+% for n = 1 to 4
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 4)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \tetramethylene{1==N}{1==Cl;2==F}
+% \tetramethylene[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\tetramethylene| uses a picture environment and
+% is based on |\@@trimethylene| and |\@@dimethylene|, each of which
+% is consist of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethyleneposition| or
+% |\yldimethyleneposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylene|or |\@@dimethylene|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\tetramethylene{%
+\@ifnextchar[{\@tetramethylene[@}{\@tetramethylene[]}}
+\def\@tetramethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@tetrameth
+%\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@dimethylene{#2}{#3}{1}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetrameth
+\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@tetrameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@tetrameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@tetrameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@tetrameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetrameth
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse direction}
+%
+% The macro |\tetramethylenei| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\tetramethylenei}
+% \begin{macro}{\@tetramethylenei}
+%
+% \begin{verbatim}
+%
+% aaa ccc
+% 1 3
+% a ` b / ` c (or uppercase letters)
+% ` / `
+% 2 4
+% bbb ddd
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \tetramethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to c (or A to C),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 4 atoms)
+%
+% for n = 1 to 4
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 4)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \tetramethylenei{1==N}{1==Cl;2==F}
+% \tetramethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\tetramethylenei| uses a picture environment and
+% is based on |\@@trimethylenei| and |\@@dimethylenei|, each of which
+% is consist of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethylenieposition| or
+% |\yldimethyleneiposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylenei| or |\@@dimethylenei|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\tetramethylenei{%
+\@ifnextchar[{\@tetramethylenei[@}{\@tetramethylenei[]}}
+\def\@tetramethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenei}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@tetramethi
+%\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\Put@Direct(342,0){\@@dimethylenei{#2}{#3}{1}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\else\if\member b\relax
+\else\if\member A\relax
+\else\if\member B\relax
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetramethi
+\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}%end of \tetramethylenei
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@tetramethi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@tetramethi}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@tetramethi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@tetramethi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetramethi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Cisoid types}
+%
+% The macros |\tetramethylenecup| and |\tetramethylenecap| are
+% used to draw tetramethylenes of cisoid types.
+%
+% \begin{verbatim}
+% Cup:
+% aaa ddd
+% 1 4
+% ` /
+% a ` / c (or uppercase letters)
+% 2------3
+% bbb b ccc
+%
+% Cap:
+% bbb b ccc
+% 2------3
+% a / ` c (or uppercase letters)
+% / `
+% 1 4
+% aaa ddd
+% \end{verbatim}
+%
+% The macros have two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% \begin{verbatim}
+% \tetramethylenecup[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \tetramethylenecap[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to c (or A to C),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 4 atoms)
+%
+% for n = 1 to 4
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 4)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \tetramethylenecup{1==N}{1==Cl;2==F}
+% \tetramethylenecap[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% \begin{macro}{\tetramethylenecup}
+% \begin{macro}{\@tetramethylenecup}
+% \begin{macrocode}
+\def\tetramethylenecup{%
+\@ifnextchar[{\@tetramethylenecup[@}{\@tetramethylenecup[]}}
+\def\@tetramethylenecup[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneposition{#2}{#3}{0}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-371}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenecup}%2002/4/30 by S. Fujita
+(200,180)%
+%bond a and atoms 1 and 2
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+%\else\if\member b\relax%dummy
+%\else\if\member B\relax%dummy
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@tetracup% for all bonds
+%\fi\fi\fi\fi
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@dimethylenei{#2}{#3}{0}{0}}}%
+%bond b
+{\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \relax%
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\fff{@}\xdef\bbb{@}\else
+ \xdef\fff{@}\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\eee{@}\xdef\ccc{@}\else
+ \xdef\eee{@}\xdef\ccc{@}\fi\fi
+\fi\fi}%
+\Put@Direct(68,171){\hskbonde}%
+\reset@double%
+\@tfor\member:=#1\do{%
+ \if\member b\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,171){\hbonde}%
+ \else\if\member B\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,-171){\hbondb}%
+ \fi\fi}}%
+%bond c and atoms 3 and 4
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+ \@wrongbdWafalse
+ \@wrongbdWdLtrue
+\Put@Direct(371,0){\@@dimethylene{#2}{#3}{0}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetracup% for all bonds
+\fi\fi\fi\fi
+\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylenecup
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@tetracup| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@tetracup}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@tetracup}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@tetracup{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{371}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{371}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{542}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetracup
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\tetramethylenecap}
+% \begin{macro}{\@tetramethylenecap}
+% \begin{macrocode}
+\def\tetramethylenecap{%
+\@ifnextchar[{\@tetramethylenecap[@}{\@tetramethylenecap[]}}
+\def\@tetramethylenecap[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yldimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{0}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-371}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenecap}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+%\else\if\member b\relax%dummy
+%\else\if\member B\relax%dummy
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@tetracap% for all bonds
+%\fi\fi\fi\fi
+\fi\fi}%
+\@wrongbdWatrue
+\Put@Direct(0,0){\@@dimethylene{#2}{#3}{0}{0}}}%
+{\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \relax%
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\fff{@}\xdef\bbb{@}\else
+ \xdef\fff{@}\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\eee{@}\xdef\ccc{@}\else
+ \xdef\eee{@}\xdef\ccc{@}\fi\fi
+\fi\fi}%
+\Put@Direct(68,-68){\hskbondb}%
+\reset@double%
+\@tfor\member:=#1\do{%
+ \if\member b\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,-68){\hbondb}%
+ \else\if\member B\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,274){\hbonde}%
+ \fi\fi}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+ \@wrongbdWaLtrue
+\Put@Direct(371,0){\@@dimethylenei{#2}{#3}{0}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetracap% for all bonds
+\fi\fi\fi\fi
+\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylenecap
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@tetracap| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@tetracap}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@tetracap}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@tetracap{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{371}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{371}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{542}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetracap
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Pentamethylene}
+% \subsection{Normal direction}
+%
+% The macro |\pentamethylene| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\pentamethylene}
+% \begin{macro}{\@pentamethylene}
+%
+% \begin{verbatim}
+%
+% bbb ddd
+% 2 4
+% a / ` b / c` d (or uppercase letters)
+% / ` / `
+% 1 3 5
+% aaa ccc
+% \end{verbatim}
+%
+%
+% \begin{verbatim}
+% \pentamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to d (or A to D),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at a lower-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at a upper-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 5)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pentamethylene{1==N}{1==Cl;2==F}
+% \pentamethylene[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\pentamethylene| uses a picture environment and
+% is based on two |\@@trimethylene| commands, each of which
+% is consist of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethyleneposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylene|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\pentamethylene{%
+\@ifnextchar[{\@pentamethylene[@}{\@pentamethylene[]}}
+\def\@pentamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){pentamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@pentameth% for all bonds
+%\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\Put@Direct(342,0){\@@trimethylene{#2}{#3}{1}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@pentameth% for all bonds
+\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \pentamethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@pentameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@pentameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@pentameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@pentameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@pentameth
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Inverse direction}
+%
+% The macro |\pentamethylenei| has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{macro}{\pentamethylenei}
+% \begin{macro}{\@pentamethylenei}
+%
+% \begin{verbatim}
+%
+% (aaa)
+% aaa ccc eee (ccc)
+% 1 3 5
+% a ` b / ` c / d
+% ` / ` /
+% 2 4
+% bbb ddd (bbb)
+% \end{verbatim}
+%
+% \begin{verbatim}
+% \pentamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to d (or A to D),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 5 atoms)
+%
+% for n = 1 to 5
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 5
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 5)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \pentamethylenei{1==N}{1==Cl;2==F}
+% \pentamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The definition of |\pentamethylenei| uses a picture environment and
+% is based on two |\@@trimethylenei| commands, each of which
+% is consist of the following unit processes:
+% \begin{enumerate}
+% \item adjusting substitution site by
+% |\yltrimethyleneiposition|
+% \item treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents by |\@@trimethylenei|.
+% \end{enumerate}
+%
+% \begin{macrocode}
+\def\pentamethylenei{%
+\@ifnextchar[{\@pentamethylenei[@}{\@pentamethylenei[]}}
+\def\@pentamethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){pentamethylenei}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@pentamethi% for all bonds
+%\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trimethylenei{#2}{#3}{1}{-2}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@pentamethi% for all bonds
+\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \pentamethylenei
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The inner command |\set@fusion@pentamethi| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@pentamethi}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@pentamethi}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@pentamethi{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@pentamethi
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Switches for Selecting Normal and Inverse Directions}
+%
+% The switch |\@normorinvsw| is used to select normal or
+% inverse direction in the definition of commands for drawing
+% hexametylenes and higher homologs. The value of this switch is
+% false for normal direction and true for inverse direction.
+%
+% \begin{macro}{\if@normorinvsw}
+% \begin{macrocode}
+\newif\if@normorinvsw \@normorinvswfalse
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@normaldirection| assigns active commands to
+% temporary commands in the definition of a command for drawing
+% hexametylenes or higher homologs of normal direction.
+% \begin{macro}{\set@normaldirection}
+% \begin{macrocode}
+\def\set@normaldirection{%
+\@normorinvswfalse
+\let\@yltrinormorinv=\yltrimethyleneposition
+\let\@yldinormorinv=\yldimethyleneposition
+\let\@@trinormorinv=\@@trimethylene
+\let\@@dinormorinv=\@@dimethylene}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\set@inversedirection| assigns active commands to
+% temporary commands in the definition of a command for drawing
+% hexametylenes or higher homologs of inverse direction.
+% \begin{macro}{\set@inversedirection}
+% \begin{macrocode}
+\def\set@inversedirection{%
+\@normorinvswtrue
+\let\@yltrinormorinv=\yltrimethyleneiposition
+\let\@yldinormorinv=\yldimethyleneiposition
+\let\@@trinormorinv=\@@trimethylenei
+\let\@@dinormorinv=\@@dimethylenei}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Hexamethylenes of normal and inverse direction}
+%
+% Hexamethylene and hetera derivatives are typeset with the commands
+% |\hexamethylene| and |\hexamethylenei|. The former macro
+% is to draw hexamethylenes of normal direction, while the latter
+% is to draw ones of inverse directions.
+%
+% \begin{verbatim}
+% Normal direction:
+%
+% (bbb) ((bbb))
+% bbb ddd fff
+% 2 4 6
+% a / ` b / c` d / e
+% / ` / ` /
+% 1 3 5
+% aaa ccc eee
+% (aaa) (ccc)
+% ((aaa))
+%
+% Inverse direction:
+%
+% (aaa)
+% aaa ccc eee (ccc) ((aaa))
+% 1 3 5
+% a ` b / ` c / d ` e
+% ` / ` / `
+% 2 4 6
+% bbb ddd (bbb) fff((bbb))
+% \end{verbatim}
+%
+% The macros have two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \hexamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \hexamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to e (or A to E),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% e : 5,6-double bond
+% E : 5,6-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 6 atoms)
+%
+% for n = 1 to 6
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 6
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 6)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \hexamethylene{1==N}{1==Cl;2==F}
+% \hexamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The macros |\hexamethylene| and |\hexamethylenei| are
+% based on a common inner macro |\@hexamethylene|,
+% the definition of which uses a picture environment.
+%
+% \begin{macro}{\hexamethylene}
+% \begin{macrocode}
+\def\hexamethylene{%
+\@ifnextchar[{\set@normaldirection\@hexamethylene[@}{%
+\set@normaldirection\@hexamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hexamethylenei}
+% \begin{macrocode}
+\def\hexamethylenei{%
+\@ifnextchar[{\set@inversedirection\@hexamethylene[@}{%
+\set@inversedirection\@hexamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% Inner temporary commands such as |\@@trinormorinv| and
+% |\@@dinormorinv| in the common |\@hexamethylene| macro
+% are replaced by active commands such as |\@@trimethylene| and
+% |\@@dimethylene|. They carry out the following unit processes.
+% \begin{enumerate}
+% \item Adjusting substitution site:
+% |\yltrimethyleneposition|
+% or |\yldimethyleneposition| for normal direction;
+% |\yltrimethyleneiposition|
+% or |\yldimethyleneiposition| for inverse direction.
+% \item Treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents:
+% |\@@trimethylene|
+% or |\@@dimethylene| for normal direction;
+% |\@@trimethylenei|
+% or |\@@dimethylenei| for normal direction.
+% \end{enumerate}
+%
+% \begin{macro}{\@hexamethylene}
+% \begin{macrocode}
+\def\@hexamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){hexamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else\if\member e\relax%dummy
+%\else\if\member E\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@hexameth% for all bonds
+%\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+ \@wrongbdWatrue
+ \@wrongbdWdfalse
+\else% normal
+ \@wrongbdWafalse
+ \@wrongbdWdtrue
+\fi
+\Put@Direct(684,0){\@@dinormorinv{#2}{#3}{1}{-4}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@hexameth% for all bonds
+\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@hexamethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@hexameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@hexameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@hexameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@hexameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@hexameth
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Heptamethylenes of normal and inverse direction}
+%
+% Heptamethylene and hetera derivatives are typeset with the commands
+% |\heptamethylene| and |\heptamethylenei|. The former macro
+% is to draw heptamethylenes of normal direction, while the latter
+% is to draw ones of inverse directions.
+%
+% \begin{verbatim}
+% Normal direction:
+%
+% (bbb) ((bbb))
+% bbb ddd fff
+% 2 4 6
+% a / ` b / c` d / e ` f
+% / ` / ` / `
+% 1 3 5 7
+% aaa ccc eee gggg
+% (aaa) (ccc) ((ccc))
+% ((aaa))
+%
+% Inverse direction:
+%
+% (aaa) ((aaa)) ((ccc))
+% aaa ccc eee (ccc) ggg
+% 1 3 5 7
+% a ` b / ` c / d ` e /f
+% ` / ` / ` /
+% 2 4 6
+% bbb ddd (bbb) fff((bbb))
+% (aaa)
+% \end{verbatim}
+%
+% The macros have two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% \begin{verbatim}
+% \heptamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \heptamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to f (or A to F),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% e : 5,6-double bond
+% E : 5,6-double bond in an opposite side
+% f : 6,7-double bond
+% F : 6,7-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 7 atoms)
+%
+% for n = 1 to 7
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 7
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 7)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \heptamethylene{1==N}{1==Cl;2==F}
+% \heptamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The macros |\heptamethylene| and |\heptamethylenei| are
+% based on a common inner macro |\@heptamethylene|,
+% the definition of which uses a picture environment.
+%
+% \begin{macro}{\heptamethylene}
+% \begin{macrocode}
+\def\heptamethylene{%
+\@ifnextchar[{\set@normaldirection\@heptamethylene[@}{%
+\set@normaldirection\@heptamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\heptamethylenei}
+% \begin{macrocode}
+\def\heptamethylenei{%
+\@ifnextchar[{\set@inversedirection\@heptamethylene[@}{%
+\set@inversedirection\@heptamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% Inner temporary commands such as |\@@trinormorinv| and
+% |\@@dinormorinv| in the common |\@heptamethylene| macro
+% are replaced by active commands such as |\@@trimethylene| and
+% |\@@dimethylene|. They carry out the following unit processes.
+% \begin{enumerate}
+% \item Adjusting substitution site:
+% |\yltrimethyleneposition|
+% or |\yldimethyleneposition| for normal direction;
+% |\yltrimethyleneiposition|
+% or |\yldimethyleneiposition| for inverse direction.
+% \item Treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents:
+% |\@@trimethylene|
+% or |\@@dimethylene| for normal direction;
+% |\@@trimethylenei|
+% or |\@@dimethylenei| for normal direction.
+% \end{enumerate}
+%
+% \begin{macro}{\@heptamethylene}
+% \begin{macrocode}
+\def\@heptamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1450,480)(-200,-180){heptamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else\if\member e\relax%dummy
+%\else\if\member E\relax%dummy
+%\else\if\member f\relax%dummy
+%\else\if\member F\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@heptameth% for all bonds
+%\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\else%normal
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\fi
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@heptameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@heptamethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@heptameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@heptameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@heptameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@heptameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi\fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi\fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@heptameth
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Octamethylenes of normal and inverse directions}
+%
+% Octamethylene and hetera derivatives are typeset with the commands
+% |\octamethylene| and |\octamethylenei|. The former macro
+% is to draw octamethylenes of normal direction, while the latter
+% is to draw ones of inverse directions.
+%
+% \begin{verbatim}
+% Normal direction:
+%
+% (bbb) ((bbb)) (((bbb)))
+% bbb ddd fff hhh
+% 2 4 6 8
+% a / ` b / c` d / e ` f /g
+% / ` / ` / ` /
+% 1 3 5 7
+% aaa ccc eee gggg
+% (aaa) (ccc) ((ccc))
+% ((aaa)) (((aaa)))
+%
+% Inverse direction:
+% (((aaa)))
+% (aaa) ((aaa)) ((ccc))
+% aaa ccc eee (ccc) ggg
+% 1 3 5 7
+% a ` b / ` c / d ` e /f ` g
+% ` / ` / ` / `
+% 2 4 6 8
+% bbb ddd fff hhh
+% (bbb) ((bbb)) (((bbb)))
+% \end{verbatim}
+%
+% The macros has two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% \begin{verbatim}
+% \octamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \octamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to g (or A to G),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% e : 5,6-double bond
+% E : 5,6-double bond in an opposite side
+% f : 6,7-double bond
+% F : 6,7-double bond in an opposite side
+% g : 7,8-double bond
+% G : 7,8-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 8 atoms)
+%
+% for n = 1 to 8
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 8
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 8)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \octamethylene{1==N}{1==Cl;2==F}
+% \octamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The macros |\octamethylene| and |\octamethylenei| are
+% based on a common inner macro |\@octamethylene|,
+% the definition of which uses a picture environment.
+%
+% \begin{macro}{\octamethylene}
+% \begin{macrocode}
+\def\octamethylene{%
+\@ifnextchar[{\set@normaldirection\@octamethylene[@}{%
+\set@normaldirection\@octamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\octamethylenei}
+% \begin{macrocode}
+\def\octamethylenei{%
+\@ifnextchar[{\set@inversedirection\@octamethylene[@}{%
+\set@inversedirection\@octamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% Inner temporary commands such as |\@@trinormorinv| and
+% |\@@dinormorinv| in the common |\@octamethylene| macro
+% are replaced by active commands such as |\@@trimethylene| and
+% |\@@dimethylene|. They carry out the following unit processes.
+% \begin{enumerate}
+% \item Adjusting substitution site:
+% |\yltrimethyleneposition|
+% or |\yldimethyleneposition| for normal direction;
+% |\yltrimethyleneiposition|
+% or |\yldimethyleneiposition| for inverse direction.
+% \item Treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents:
+% |\@@trimethylene|
+% or |\@@dimethylene| for normal direction;
+% |\@@trimethylenei|
+% or |\@@dimethylenei| for normal direction.
+% \end{enumerate}
+%
+% \begin{macro}{\@octamethylene}
+% \begin{macrocode}
+\def\@octamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1620,480)(-200,-180){octamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else\if\member e\relax%dummy
+%\else\if\member E\relax%dummy
+%\else\if\member f\relax%dummy
+%\else\if\member F\relax%dummy
+%\else\if\member g\relax%dummy
+%\else\if\member G\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@octameth% for all bonds
+%\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\else% normal
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\fi
+\Put@Direct(1026,0){\@@dinormorinv{#2}{#3}{1}{-6}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@octameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@octamethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@octameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@octameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@octameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@octameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else\if\@@tmpa g\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{g}%
+ \else\if\@@tmpa G\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{G}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi\fi\fi\fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else\if\@@tmpa g\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{g}%
+ \else\if\@@tmpa G\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{G}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi\fi\fi\fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@octameth
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Nonamethylenes of normal and inverse direction}
+%
+% Nonamethylene and hetera derivatives are typeset with the commands
+% |\nonamethylene| and |\nonamethylenei|. The former macro
+% is to draw nonamethylenes of normal direction, while the latter
+% is to draw ones of inverse directions.
+%
+% \begin{verbatim}
+% Normal direction:
+%
+% (bbb) ((bbb)) (((bbb)))
+% bbb ddd fff hhh
+% 2 4 6 8
+% a / ` b / c` d / e ` f /g` h
+% / ` / ` / ` / `
+% 1 3 5 7 9
+% aaa ccc eee gggg (((ccc)))
+% (aaa) (ccc) ((ccc))
+% ((aaa)) (((aaa)))
+%
+% Inverse direction:
+% (((aaa)))
+% (aaa) ((aaa)) ((ccc))
+% aaa ccc eee (ccc) ggg (((ccc)))
+% 1 3 5 7 9
+% a ` b / ` c / d ` e /f ` g / h
+% ` / ` / ` / ` /
+% 2 4 6 8
+% bbb ddd fff hhh
+% (bbb) ((bbb)) (((bbb)))
+% (aaa) ((aaa)) ((ccc))
+% \end{verbatim}
+%
+% The macros have two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+%
+% \begin{verbatim}
+% \nonamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \nonamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to h (or A to H),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% e : 5,6-double bond
+% E : 5,6-double bond in an opposite side
+% f : 6,7-double bond
+% F : 6,7-double bond in an opposite side
+% g : 7,8-double bond
+% G : 7,8-double bond in an opposite side
+% h : 8,9-double bond
+% H : 8,9-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 9 atoms)
+%
+% for n = 1 to 9
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 9
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 9)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \nonamethylene{1==N}{1==Cl;2==F}
+% \nonamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The macros |\nonamethylene| and |\nonamethylenei| are
+% based on a common inner macro |\@nonamethylene|,
+% the definition of which uses a picture environment.
+%
+% \begin{macro}{\nonamethylene}
+% \begin{macrocode}
+\def\nonamethylene{%
+\@ifnextchar[{\set@normaldirection\@nonamethylene[@}{%
+\set@normaldirection\@nonamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\nonamethylenei}
+% \begin{macrocode}
+\def\nonamethylenei{%
+\@ifnextchar[{\set@inversedirection\@nonamethylene[@}{%
+\set@inversedirection\@nonamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% Inner temporary commands such as |\@@trinormorinv| and
+% |\@@dinormorinv| in the common |\@nonamethylene| macro
+% are replaced by active commands such as |\@@trimethylene| and
+% |\@@dimethylene|. They carry out the following unit processes.
+% \begin{enumerate}
+% \item Adjusting substitution site:
+% |\yltrimethyleneposition|
+% or |\yldimethyleneposition| for normal direction;
+% |\yltrimethyleneiposition|
+% or |\yldimethyleneiposition| for inverse direction.
+% \item Treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents:
+% |\@@trimethylene|
+% or |\@@dimethylene| for normal direction;
+% |\@@trimethylenei|
+% or |\@@dimethylenei| for normal direction.
+% \end{enumerate}
+%
+% \begin{macro}{\@nonamethylene}
+% \begin{macrocode}
+\def\@nonamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1790,480)(-200,-180){nonamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else\if\member e\relax%dummy
+%\else\if\member E\relax%dummy
+%\else\if\member f\relax%dummy
+%\else\if\member F\relax%dummy
+%\else\if\member g\relax%dummy
+%\else\if\member G\relax%dummy
+%\else\if\member h\relax%dummy
+%\else\if\member H\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@nonameth% for all bonds
+%\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\else\if\member h\relax
+\@bdoublebondtrue
+\else\if\member H\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\else% normal
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\fi
+\Put@Direct(1026,0){\@@trinormorinv{#2}{#3}{1}{-6}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else\if\member h\relax%dummy
+\else\if\member H\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@nonameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@nonamethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@nonameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@nonameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@nonameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@nonameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@normorinvsw
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else
+ \set@fusion@octameth
+ \fi\fi
+\else
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else
+ \set@fusion@octameth
+ \fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@nonameth
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Decamethylenes of normal and inverse directions}
+%
+% Decamethylene and hetera derivatives are typeset with the commands
+% |\decamethylene| and |\decamethylenei|. The former macro
+% is to draw decamethylenes of normal direction, while the latter
+% is to draw ones of inverse directions.
+%
+% \begin{verbatim}
+% Normal direction:
+%
+% (bbb) ((bbb)) (((bbb)))
+% bbb ddd fff hhh <bbb>
+% 2 4 6 8 10
+% a / ` b / c` d / e ` f /g ` h / i
+% / ` / ` / ` / ` /
+% 1 3 5 7 9
+% aaa ccc eee gggg (((ccc)))
+% (aaa) (ccc) ((ccc)) <aaa>
+% ((aaa)) (((aaa)))
+%
+% Inverse direction:
+% (((aaa)))
+% (aaa) ((aaa)) ((ccc)) <aaa>
+% aaa ccc eee (ccc) ggg (((ccc)))
+% 1 3 5 7 9
+% a ` b / ` c / d ` e /f ` g / h ` i
+% ` / ` / ` / ` / `
+% 2 4 6 8 10
+% bbb ddd fff hhh <bbb>
+% (bbb) ((bbb)) (((bbb)))
+% \end{verbatim}
+%
+% The macros have two arguments |ATOMLIST| and |SUBSLIST|
+% as well as an optional argument |BONDLIST|.
+% \begin{verbatim}
+% \decamethylene[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \decamethylenei[BONDLIST]{ATOMLIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The |BONDLIST| argument contains one character selected from
+% a to i (or A to I),
+% each of which indicates the presence of an inner (endcyclic) double
+% bond on the corresponding position. A lowercase letter is used
+% to typeset a double bond at the upper-side of an outer skeletal bond,
+% while an uppercase letter typesets a double bond at the lower-side of
+% an outer skeletal bond.
+% (Note that the option `A' represents an aromatic circle in
+% commands |\sixheterov| etc.)
+%
+% \begin{verbatim}
+% BONDLIST =
+%
+% [] or none : no double bond
+% a : 1,2-double bond
+% A : 1,2-double bond in an opposite side
+% b : 2,3-double bond
+% B : 2,3-double bond in an opposite side
+% c : 3,4-double bond
+% C : 3,4-double bond in an opposite side
+% d : 4,5-double bond
+% D : 4,5-double bond in an opposite side
+% e : 5,6-double bond
+% E : 5,6-double bond in an opposite side
+% f : 6,7-double bond
+% F : 6,7-double bond in an opposite side
+% g : 7,8-double bond
+% G : 7,8-double bond in an opposite side
+% h : 8,9-double bond
+% H : 8,9-double bond in an opposite side
+% i : 9,10-double bond
+% I : 9,10-double bond in an opposite side
+% \end{verbatim}
+%
+% The |ATOMLIST| argument contains one or more heteroatom descriptors
+% which are separated from each other by a semicolon. Each heteroatom
+% descriptor consists of a locant number and a heteroatom,
+% where these are separated with a double equality symbol.
+%
+% \begin{verbatim}
+%
+% ATOMLIST: list of heteroatoms (max 10 atoms)
+%
+% for n = 1 to 10
+%
+% n==? : Hetero atom, e.g. N, O, etc. at n-position,
+% e.g. 1==N for N at 1-position
+% \end{verbatim}
+%
+% The |SUBSLIST| argument contains one or more substitution descriptors
+% which are separated from each other by a semicolon. Each substitution
+% descriptor has a locant number with a bond modifier and a substituent,
+% where these are separated with a double equality symbol.
+% \begin{verbatim}
+%
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 10
+%
+% nD : exocyclic double bond at n-atom
+% n or nS : exocyclic single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% nSA : alpha single bond at n-atom (boldface)
+% nSB : beta single bond at n-atom (dotted line)
+% nSa : alpha (not specified) single bond at n-atom
+% nSb : beta (not specified) single bond at n-atom
+% nW : terminal single bond (n=1 or 10)
+%
+% \end{verbatim}
+%
+% Several examples are shown as follows.
+% \begin{verbatim}
+% e.g.
+%
+% \decamethylene{1==N}{1==Cl;2==F}
+% \decamethylenei[b]{1==N}{1==Cl;4==F;2==CH$_{3}$}
+% \end{verbatim}
+%
+% The macros |\decamethylene| and |\decamethylenei| are
+% based on a common inner macro |\@decamethylene|,
+% the definition of which uses a picture environment.
+% \begin{macro}{\decamethylene}
+% \begin{macrocode}
+\def\decamethylene{%
+\@ifnextchar[{\set@normaldirection\@decamethylene[@}{%
+\set@normaldirection\@decamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\decamethylenei}
+% \begin{macrocode}
+\def\decamethylenei{%
+\@ifnextchar[{\set@inversedirection\@decamethylene[@}{%
+\set@inversedirection\@decamethylene[]}}
+% \end{macrocode}
+% \end{macro}
+%
+% Inner temporary commands such as |\@@trinormorinv| and
+% |\@@dinormorinv| in the common |\@decamethylene| macro
+% are replaced by active commands such as |\@@trimethylene| and
+% |\@@dimethylene|. They carry out the following unit processes.
+% \begin{enumerate}
+% \item Adjusting substitution site:
+% |\yltrimethyleneposition|
+% or |\yldimethyleneposition| for normal direction;
+% |\yltrimethyleneiposition|
+% or |\yldimethyleneiposition| for inverse direction.
+% \item Treating atom list,
+% placing outer skeletons, inner double bonds,
+% setting hetero atoms, and
+% placing substituents:
+% |\@@trimethylene|
+% or |\@@dimethylene| for normal direction;
+% |\@@trimethylenei|
+% or |\@@dimethylenei| for normal direction.
+% \end{enumerate}
+%
+% \begin{macro}{\@decamethylene}
+% \begin{macrocode}
+\def\@decamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-8}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1960,480)(-200,-180){decamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+%\else\if\member c\relax%dummy
+%\else\if\member C\relax%dummy
+%\else\if\member d\relax%dummy
+%\else\if\member D\relax%dummy
+%\else\if\member e\relax%dummy
+%\else\if\member E\relax%dummy
+%\else\if\member f\relax%dummy
+%\else\if\member F\relax%dummy
+%\else\if\member g\relax%dummy
+%\else\if\member G\relax%dummy
+%\else\if\member h\relax%dummy
+%\else\if\member H\relax%dummy
+%\else\if\member i\relax%dummy
+%\else\if\member I\relax%dummy
+%\else
+% \expandafter\twoCH@@R\member//%
+% \set@fusion@decameth% for all bonds
+%\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\else\if\member h\relax
+\@bdoublebondtrue
+\else\if\member H\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(1026,0){\@@trinormorinv{#2}{#3}{1}{-6}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member i\relax
+\@adoublebondtrue
+\else\if\member I\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\else% normal
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\fi
+\Put@Direct(1368,0){\@@dinormorinv{#2}{#3}{1}{-8}}}%
+%
+%originally for fused rings
+%shifted for coloring skeletal bond 2010/10/01
+%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else\if\member h\relax%dummy
+\else\if\member H\relax%dummy
+\else\if\member i\relax%dummy
+\else\if\member I\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@decameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end \@decamethylene
+% \end{macrocode}
+% \end{macro}
+%
+% The inner command |\set@fusion@decameth| is used for typesetting
+% a fused ring at each bond represented by |\@@tmpa|. Warnings
+% concerning mismatched ring-fusions are based on the command
+% |\FuseWarning|.
+%
+% \begin{macro}{\set@fusion@decameth}
+% \changes{v2.00}{1998/12/21}{New command: \cs{set@fusion@decameth}}
+% \changes{v5.00}{2010/10/01}{\cs{FuseWarning} recovered for bond coloring}
+% \begin{macrocode}
+\def\set@fusion@decameth{%
+% %%%%%%%%%%%%%%%%%%%%%
+% % inner bond fusion %
+% %%%%%%%%%%%%%%%%%%%%%
+\if@normorinvsw
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else\if\@@tmpa i\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{i}%
+ \else\if\@@tmpa I\relax%
+ \putlratom{1540}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{I}%
+ \else
+ \set@fusion@octameth
+ \fi\fi\fi\fi
+\else
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else\if\@@tmpa i\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{i}%
+ \else\if\@@tmpa I\relax%
+ \putlratom{1540}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{I}%
+ \else
+ \set@fusion@octameth
+ \fi\fi\fi\fi
+\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@decameth
+%</methylen>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/methylen.ins b/macros/latex/contrib/xymtex/base/methylen.ins
new file mode 100644
index 0000000000..d1053e0933
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/methylen.ins
@@ -0,0 +1,57 @@
+\def\batchfile{methylen.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1998, 2001,2002,2004,2005,2010,2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Version 1.02 Released on October 31, 1996 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.00 Released on August 30, 2004
+Version 4.03 Released on July 20, 2005
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on March 29, 2013
+Version 5.01bb Released on June 22, 2013
+Version 5.01bbb Released on June 27, 2013
+
+The Present Version:
+Version 5.01 Released on July 20, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files methylen.dtx and methylen.ins
+and the derived file methylen.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{methylen.drv}{t}{%
+ \from{methylen.dtx}{driver}}
+
+\generateFile{methylen.sty}{t}{%
+ \from{methylen.dtx}{methylen}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/methylen.sty b/macros/latex/contrib/xymtex/base/methylen.sty
new file mode 100644
index 0000000000..f456e4a3d4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/methylen.sty
@@ -0,0 +1,3484 @@
+%%
+%% This is file `methylen.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% methylen.dtx (with options: `methylen')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1998, 2001,2002,2004,2005,2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.02 Released on October 31, 1996 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.00 Released on August 30, 2004
+%% Version 4.03 Released on July 20, 2005
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on March 29, 2013
+%% Version 5.01bb Released on June 22, 2013
+%% Version 5.01bbb Released on June 27, 2013
+%%
+%% The Present Version:
+%% Version 5.01 Released on July 20, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files methylen.dtx and methylen.ins
+%% and the derived file methylen.sty.
+%%
+%% =======================================
+%%
+%% File: methylen.dtx
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released July 20, 2013 by Shinsaku Fujita}
+\def\j@urnalname{methylen}
+\def\versi@ndate{July 20, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{Westbond}{\input aliphat.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\@ifundefined{hbonde}{\input hetaromh.sty\relax}{}
+\unitlength=0.1pt
+\newif\if@wrongbdWa \@wrongbdWafalse
+\newif\if@wrongbdWd \@wrongbdWdfalse
+\newif\if@wrongbdWaL \@wrongbdWaLfalse
+\newif\if@wrongbdWdL \@wrongbdWdLfalse
+\def\@methsubsta{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % wavy single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-72,536)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \if@wrongbdWa
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ }%
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ {%
+ \thicklines%
+ \Put@Line(40,382)(5,-3){100}% % single bond at 1
+ }%
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=46\relax
+ \dotorline(40,382)(5,-3){100}/(40,382)(140,322)%
+ \putratom{150}{276}{\@memberb}% % left or right type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \putratom{41}{563}{\@memberb}% % right type
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % wavy single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \else\if\@tmpb U%undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \if@wrongbdWa
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ }%
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(5,-3){120}% % single bond at 1
+ }%
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=58\relax
+ \dotorline(0,406)(5,-3){120}/(0,406)(120,334)%
+ \putratom{130}{276}{\@memberb}% % left or right type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+\def\@methsubstd{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % wavy single bond at 1
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ \if@wrongbdWd
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(40,24)(5,3){100}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \dotorline(40,24)(5,3){100}/(40,24)(140,84)%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \fi\fi\fi\fi\fi\fi%
+ \else% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \putratom{41}{-230}{\@memberb}% % right type
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \else\if\@tmpc U% undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % wavy single bond at 1
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ \if@wrongbdWd
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(5,3){140}% % single bond at 4
+ }%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=-10\relax
+ \yl@ydiff=30\relax
+ \dotorline(0,0)(5,3){140}/(0,0)(140,84)%
+ \putlratom{150}{54}{\@memberb}% % left or right type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+\def\@methsubstdL{%
+\if@clip %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \dotorline(18,-30)(3,-5){60}/(18,-30)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,-30)(-3,-5){60}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=100\relax
+ \dotorline(-18,-30)(-3,-5){60}/(-18,-30)(-78,-130)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=100\relax
+ {%
+ \thicklines%
+ \Put@Line(18,-30)(3,-5){60}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(-12,-30)(0,-1){110}% % double bond at 4
+ \Put@Line(12,-30)(0,-1){110}% % double bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,-30)(0,-1){110}/(0,-30)(0,-140)%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb U% undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ \putlatom{-150}{54}{\@memberb}% % lefttype
+ \if@wrongbdWdL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(-40,24)(-5,3){100}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \dotorline(-40,24)(-5,3){100}/(-40,24)(-140,84)%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,-30)(0,-1){110}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+\else% no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(3,-5){72}/(0,0)(72,-120)%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-3,-5){72}% % single bond at 4
+ }%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=110\relax
+ \dotorline(0,0)(-3,-5){72}/(0,0)(-72,-120)%
+ \putlatom{-42}{-230}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=110\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(3,-5){72}% % single bond at 4
+ }%
+ \putratom{41}{-230}{\@memberb}% % right type
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(-12,0)(0,-1){140}% % double bond at 4
+ \Put@Line(12,0)(0,-1){140}% % double bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \dotorline(0,0)(0,-1){140}/(0,0)(0,-140)%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ }%
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \if@wrongbdWdL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%beta undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ {%
+ \thicklines%
+ \Put@Line(0,0)(-5,3){140}% % single bond at 4
+ }%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=30\relax
+ \dotorline(0,0)(-5,3){140}/(0,0)(-140,84)%
+ \putlatom{-150}{54}{\@memberb}% % left type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=90\relax
+ \Put@Line(0,0)(0,-1){140}% % single bond at 4
+ \putlratom{-31}{-230}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%end of \@methsubstdL
+\def\@methsubstaL{%
+\if@aclip% %clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \dotorline(18,436)(3,5){60}/(18,436)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc U%(U) beta undefined%bug fix 2013/06/27 V-->U
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-18,436)(-3,5){60}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc V%(V) alpha undefined%bug fix 2013/06/27 U-->V
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \WaveBonds%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-36\relax
+ \yl@ydiff=-27\relax
+ \dotorline(-18,436)(-3,5){60}/(-18,436)(-78,536)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=37\relax
+ \yl@ydiff=-27\relax
+ {%
+ \thicklines%
+ \Put@Line(18,436)(3,5){60}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-12,436)(0,1){110}% % double bond at 1
+ \Put@Line(12,436)(0,1){110}% % double bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,436)(0,1){110}/(0,436)(0,546)%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \if@wrongbdWaL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ {%
+ \WaveBonds%
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ }%
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ {%
+ \thicklines%
+ \Put@Line(-40,382)(-5,-3){100}% % single bond at 1
+ }%
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=46\relax
+ \dotorline(-40,382)(-5,-3){100}/(-40,382)(-140,322)%
+ \putlatom{-150}{276}{\@memberb}% % left type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,436)(0,1){110}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+\else% % no clipping
+ \if\@tmpb S%single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpc B%(B) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc A%(A) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(3,5){72}/(0,406)(72,526)%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc b%(b) beta
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc a%(a) alpha
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc V%(V) beta undefined
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-3,5){72}% % single bond at 1
+ }%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc U%(U) alpha undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \else\if\@tmpc d%(d) alpha
+ \yl@xdiff=-30\relax
+ \yl@ydiff=-37\relax
+ \dotorline(0,406)(-3,5){72}/(0,406)(-72,526)%
+ \putlatom{-42}{563}{\@memberb}% % left type
+ \else\if\@tmpc u%(u) beta
+ \yl@xdiff=31\relax
+ \yl@ydiff=-37\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(3,5){72}% % single bond at 1
+ }%
+ \putratom{41}{563}{\@memberb}% % right type
+ \fi\fi
+ \fi\fi\fi\fi\fi\fi\fi%
+ \else\if\@tmpb D%double bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(-12,406)(0,1){140}% % double bond at 1
+ \Put@Line(12,406)(0,1){140}% % double bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb B%beta single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb A%alpha single bond
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \dotorline(0,406)(0,1){140}/(0,406)(0,546)%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb U%beta undefined
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ }%
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \else\if\@tmpb W%beta single bond
+ \ifx\@tmpc\empty%
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \if@wrongbdWaL
+ \XyMTeXWarning{Wrong Bond-Modifier (W)}%
+ \fi
+ \else\if\@tmpc U%undefined
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ {%
+ \WaveBonds%
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ }%
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \else\if\@tmpc B%beta
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ {%
+ \thicklines%
+ \Put@Line(0,406)(-5,-3){120}% % single bond at 1
+ }%
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \else\if\@tmpc A%alpha
+ \yl@xdiff=10\relax
+ \yl@ydiff=58\relax
+ \dotorline(0,406)(-5,-3){120}/(0,406)(-120,334)%
+ \putlatom{-130}{276}{\@memberb}% % left type
+ \fi\fi\fi\fi
+ \else%
+ \yl@xdiff=31\relax
+ \yl@ydiff=-17\relax
+ \Put@Line(0,406)(0,1){140}% % single bond at 1
+ \putlratom{-31}{563}{\@memberb}% % left or right type
+ \fi\fi\fi\fi\fi\fi%
+ \fi}%
+\def\SKbondB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,406)(5,-3){171}% %bond 1-2
+ \else%
+ \Put@Line(0,406)(5,-3){136}% %bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,385)(5,-3){136}% %bond 1-2
+ \else%
+ \Put@Line(35,385)(5,-3){100}% %bond 1-2
+ \fi%
+ \fi}%
+\def\SKbondA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(0,406)(-5,-3){171}% %bond 1-6
+ \else%
+ \Put@Line(0,406)(-5,-3){136}% %bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,385)(-5,-3){136}% %bond 1-6
+ \else%
+ \Put@Line(-35,385)(-5,-3){100}% %bond 1-6
+ \fi%
+ \fi}%
+\def\SKbondBi{%
+ \begin{sfpicture}(0,0)(0,0)
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(0,0)(5,3){171}% %bond 4-3
+ \else%
+ \Put@Line(0,0)(5,3){136}% %bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,21)(5,3){138}% %bond 4-3
+ \else%
+ \Put@Line(35,21)(5,3){100}% %bond 4-3
+ \fi%
+ \fi\end{sfpicture}}%
+\def\SKbondAi{%
+ \begin{sfpicture}(0,0)(0,0)
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(0,0)(-5,3){171}% %bond 4-5
+ \else%
+ \Put@Line(0,0)(-5,3){136}% %bond 4-5
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,21)(-5,3){138}% %bond 4-5
+ \else%
+ \Put@Line(-35,21)(-5,3){100}% %bond 4-5
+ \fi%
+ \fi\end{sfpicture}}%
+\def\bondB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,364)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(6,364)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,340)(5,-3){100}% %double bond 1-2
+ \else%
+ \Put@Line(35,352)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+\def\bondBB{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(42,420)(5,-3){126}% %double bond 1-2
+ \else%
+ \Put@Line(42,420)(5,-3){100}% %double bond 1-2
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(52,412)(5,-3){110}% %double bond 1-2
+ \else%
+ \Put@Line(52,412)(5,-3){100}% %double bond 1-2
+ \fi% % line <1OO not available
+ \fi%
+ }%
+\def\bondA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-6,364)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-6,364)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,340)(-5,-3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-35,352)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+\def\bondAA{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-42,420)(-5,-3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-42,420)(-5,-3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-52,412)(-5,-3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-52,412)(-5,-3){100}% %double bond 1-6
+ \fi% % line <1OO not available
+ \fi%
+}%
+ \def\bondBi{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(6,42)(5,3){126}% %double bond 4-3
+ \else%
+ \Put@Line(6,42)(5,3){100}% %double bond 4-3
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(35,66)(5,3){100}% %double bond 4-3
+ \else%
+ \Put@Line(35,60)(5,3){100}% %double bond 4-3
+ \fi% % line <1OO not available
+ \fi%
+}%
+ \def\bondBBi{%
+ \ifx\bbb\empty%
+ \ifx\ccc\empty%
+ \Put@Line(42,-14)(5,3){126}% %double bond 1-6
+ \else%
+ \Put@Line(30,-14)(5,3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\ccc\empty%
+ \Put@Line(52,0)(5,3){100}% %double bond 1-6
+ \else%
+ \Put@Line(52,0)(5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+}%
+
+ \def\bondAi{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-6,42)(-5,3){126}% %double bond 4-5
+ \else%
+ \Put@Line(-6,42)(-5,3){100}% %double bond 4-5
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-35,66)(-5,3){100}% %double bond 4-5
+ \else%
+ \Put@Line(-35,60)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+ \def\bondAAi{%
+ \ifx\bbb\empty%
+ \ifx\aaa\empty%
+ \Put@Line(-42,-14)(-5,3){126}% %double bond 1-6
+ \else%
+ \Put@Line(-42,-14)(-5,3){100}% %double bond 1-6
+ \fi%
+ \else%
+ \ifx\aaa\empty%
+ \Put@Line(-52,6)(-5,3){100}% %double bond 1-6
+ \else%
+ \Put@Line(-52,0)(-5,3){100}% %double bond 4-5
+ \fi% % line <1OO not available
+ \fi%
+ }%
+\newif\if@adoublebond \@adoublebondfalse
+\newif\if@bdoublebond \@bdoublebondfalse
+\newif\if@Adoublebond \@Adoublebondfalse
+\newif\if@Bdoublebond \@Bdoublebondfalse
+\def\reset@double{%
+\@adoublebondfalse\@bdoublebondfalse
+\@Adoublebondfalse\@Bdoublebondfalse}
+\newif\if@linterchainsw \@linterchainswfalse
+\newif\if@rinterchainsw \@rinterchainswfalse
+\def\reset@interchainsw{\@linterchainswfalse\@rinterchainswfalse}
+\def\@@trimethylene#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@trimethy{#1}{#4}%
+\begin{sfpicture}(450,480)(0,0)%
+ \Put@Direct(171,-303){\SKbondB}% bond between 1 and 2
+ \Put@Direct(171,-303){\SKbondA}% bond between 1 and 6
+\if@adoublebond\relax\Put@Direct(171,-303){\bondA}\fi
+\if@bdoublebond\relax\Put@Direct(171,-303){\bondB}\fi
+\if@Adoublebond\relax\Put@Direct(171,-303){\bondAA}\fi
+\if@Bdoublebond\relax\Put@Direct(171,-303){\bondBB}\fi
+\test@termcnt=#3\relax
+\set@hetatom@methyl{#1}{#4}{0}{4}{0}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \or\relax
+ \or
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \fi
+\or
+\setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+\or
+ \ifcase#3
+ \setBScolor{\if@cclip \@cliptrue\else \@clipfalse\fi
+ \Put@Direct(342,0){\@methsubstd}}%
+ \or
+ \setBScolor{\if@cclip \@cliptrue\else \@clipfalse\fi
+ \Put@Direct(342,0){\@methsubstd}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi
+}%
+\end{sfpicture}}% end of \@@trimethylene
+\def\test@vrtx@trimethy#1#2{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#2\relax
+\ifcase\@tmpaa%
+ \or \if\@tmpb s\relax \xdef\aaa{}\else\if\@tmpb h\relax
+ \xdef\aaa{@}\else\xdef\aaa{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\bbb{}\else\if\@tmpb h\relax
+ \xdef\bbb{@}\else\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\ccc{}\else\if\@tmpb h\relax
+ \xdef\ccc{@}\else\xdef\ccc{@}\fi\fi
+\fi\fi}}
+\def\yltrimethyleneposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%
+ \or \def\bbb{@}%\def\bbb{\@memberb}%
+ \or \def\ccc{@}%\def\ccc{\@memberb}%
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1%bug fix 2013/03/29
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \fi
+\or
+ \ifcase#3
+ \ifx\ccc\empty
+ \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \else
+ \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or
+ \ifx\ccc\empty
+ \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \else
+ \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yltrimethyleneposition
+\newcount\test@termcnt
+\def\set@hetatom@methyl#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1 <--- position 6 of set@hetatom@sixv
+ \ifnum\test@termcnt=1\else%not terminal point (left)
+ \if\@tmpb h\relax%
+ \@acliptrue%
+ \putlatom{0}{30}{\@memberb}% % right type
+ \else\if\@tmpb s\relax%
+ \@aclipfalse%
+ \putlatom{0}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{36}{-23}{\@memberb}% % left type
+ \fi\fi\fi
+ \fi
+\or%position 2 <--- position 1 of set@hetatom@sixv
+ \if\@tmpb h\relax%
+ \@bcliptrue%
+ \putratom{171}{53}{\@memberb}% % right type
+ \else\if\@tmpb s\relax%
+ \@bclipfalse%
+ \putratom{171}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{140}{65}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3 <--- position 2 of set@hetatom@sixv
+ \ifnum\test@termcnt=2\else%not terminal point (right)
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{330}{30}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{346}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{306}{-23}{\@memberb}% % right type
+ \fi\fi\fi
+ \fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@methyl
+\def\trimethylene{%
+\@ifnextchar[{\@trimethylene[@}{\@trimethylene[]}}
+\def\@trimethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yltrimethyleneposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(450,480)(-50,-180){trimethylene}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue%
+\fi\fi\fi\fi}%
+\@wrongbdWatrue%
+\@wrongbdWdfalse%
+ \Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@trimeth%
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \trimethylene \@trimethylene
+\def\set@fusion@trimeth{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@trimeth
+\def\@@trimethylenei#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@trimethy{#1}{#4}%
+\begin{sfpicture}(450,480)(0,0)
+ \Put@Direct(171,0){\SKbondAi}% bond between 1 and 2
+ \Put@Direct(171,0){\SKbondBi}% bond between 2 and 3
+\if@adoublebond\relax\Put@Direct(171,0){\bondAi}\fi
+\if@bdoublebond\relax\Put@Direct(171,0){\bondBi}\fi
+\if@Adoublebond\relax\Put@Direct(171,0){\bondAAi}\fi
+\if@Bdoublebond\relax\Put@Direct(171,0){\bondBBi}\fi
+\test@termcnt=#3\relax
+\set@hetatom@methyli{#1}{#4}{0}{4}{0}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \or\relax
+ \or
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \fi
+\or
+\setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+\or
+ \ifcase#3
+ \setBScolor{\if@cclip \@acliptrue\else \@aclipfalse\fi
+ \Put@Direct(342,-303){\@methsubsta}}%
+ \or
+ \setBScolor{\if@cclip \@acliptrue\else \@aclipfalse\fi
+ \Put@Direct(342,-303){\@methsubsta}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi
+}%
+\end{sfpicture}}% end of \@@trimethylenei
+\def\yltrimethyleneiposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoCH@R\@membera//%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%
+ \or \def\bbb{@}%\def\bbb{\@memberb}%
+ \or \def\ccc{@}%\def\ccc{\@memberb}%
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or%%%%%%position 1
+ \ifcase#3
+ \ifx\aaa\empty
+%% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+%% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+%% \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else% terminal position
+%% \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or%%%%%%%%position 2
+ \ifx\bbb\empty
+%% \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+%% \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-171}\gdef\@yli{50}\global\@ylswtrue% subst. on 2
+ \fi
+\or%%%%%%%%position 3
+ \ifcase#3
+ \ifx\ccc\empty
+%% \gdef\@ylii{-342}\gdef\@yli{0}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-103}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+%% \gdef\@ylii{-342}\gdef\@yli{40}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-342}\gdef\@yli{-133}\global\@ylswtrue% subst. on 3
+ \else
+%% \gdef\@ylii{-382}\gdef\@yli{-24}\global\@ylswtrue% subst. on 3
+ \gdef\@ylii{-382}\gdef\@yli{-79}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or
+ \ifx\ccc\empty
+ \gdef\@ylii{-342}\gdef\@yli{-103}\global\@ylswtrue% subst. on 3
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-342}\gdef\@yli{-133}\global\@ylswtrue% subst. on 3
+ \else
+ \gdef\@ylii{-382}\gdef\@yli{-79}\global\@ylswtrue% subst. on 3
+ \fi
+ \fi
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yltrimethyleneiposition
+\def\set@hetatom@methyli#1#2#3#4#5{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifnum#5 < 0\relax%
+\@tmpaa=-\@tmpa\relax \advance\@tmpaa by#2\relax%
+\else\@tmpaa=\@tmpa\relax \advance\@tmpaa by#2\relax \fi
+\ifnum\@tmpaa >#3\relax%
+\ifnum\@tmpaa <#4\relax%
+\ifcase\@tmpaa%
+\or%position 1 <-- \set@hetatom@sixv position 5
+ \ifnum\test@termcnt=1\else%not terminal point (left)
+ \if\@tmpb h\relax
+ \@acliptrue%
+ \putlatom{0}{70}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@aclipfalse%
+ \putlatom{0}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@acliptrue%
+ \putlatom{36}{65}{\@memberb}% % left type
+ \fi\fi\fi
+ \fi
+\or%position 2 <-- \set@hetatom@sixv position 4
+ \if\@tmpb h\relax
+ \@bcliptrue%
+ \putratom{171}{50}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@bclipfalse%
+ \putratom{171}{0}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@bcliptrue%
+ \putratom{140}{-23}{\@memberb}% % right type
+ \fi\fi\fi
+\or%position 3 <-- \set@hetatom@sixv position 3
+ \ifnum\test@termcnt=2\else%not terminal point (right)
+ \if\@tmpb h\relax
+ \@ccliptrue%
+ \putratom{342}{70}{\@memberb}% % right type
+ \else\if\@tmpb s\relax
+ \@cclipfalse%
+ \putratom{342}{103}{\@memberb}% % right type
+ \else\if\@tmpb a\relax%omit fused position
+ \else
+ \@ccliptrue%
+ \putratom{306}{65}{\@memberb}% % right type
+ \fi\fi\fi
+ \fi
+\fi% end of ifcase
+\fi\fi\fi}}% end of the macro \set@hetatom@methyli
+\def\trimethylenei{%
+\@ifnextchar[{\@trimethylenei[@}{\@trimethylenei[]}}
+\def\@trimethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yltrimethyleneiposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(450,480)(-50,-180){trimethylenei}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+ \Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@trimethi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \trimethylenei
+\def\set@fusion@trimethi{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@trimethi
+\def\@@dimethylene#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@dimethy{#1}{#4}%
+\begin{sfpicture}(250,480)(0,0)%
+ \Put@Direct(171,-303){\SKbondA}% bond between 1 and 2
+\if@adoublebond
+ \Put@Direct(171,-303){\bondA}%upper side double bond
+\else\if@Adoublebond
+ \Put@Direct(171,-303){\bondAA}%lower side double bond
+\fi\fi%
+\test@termcnt=#3\relax
+\set@hetatom@methyl{#1}{#4}{0}{3}{0}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \or\relax
+ \or
+ \setBScolor{\if@aclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(0,0){\@methsubstdL}}%
+ \fi
+\or
+ \ifcase#3
+ \setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+ \or
+ \setBScolor{\if@bclip \@acliptrue \else \@aclipfalse\fi
+ \Put@Direct(171,-303){\@methsubsta}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{sfpicture}}% end of \@@dimethylene
+\def\test@vrtx@dimethy#1#2{%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#2\relax
+\ifcase\@tmpaa%
+ \or \if\@tmpb s\relax \xdef\aaa{}\else\if\@tmpb h\relax
+ \xdef\aaa{@}\else\xdef\aaa{@}\fi\fi
+ \or \if\@tmpb s\relax \xdef\bbb{}\else\if\@tmpb h\relax
+ \xdef\bbb{@}\else\xdef\bbb{@}\fi\fi
+\fi\fi}}
+\def\yldimethyleneposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%2013/06/22
+ \or \def\bbb{@}%\def\bbb{\@memberb}%2013/06/22
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{40}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-24}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or
+ \ifcase#3
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{-103}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{-133}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or \relax
+ \fi
+\fi%end of ifcase
+\fi\fi}}% end of \yldimethyleneposition
+\def\dimethylene{%
+\@ifnextchar[{\@dimethylene[@}{\@dimethylene[]}}
+\def\@dimethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yldimethyleneposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(250,480)(-50,-180){dimethylene}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdfalse
+ \Put@Direct(0,0){\@@dimethylene{#2}{#3}{0}{0}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@dimeth
+\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \dimethylene
+\def\set@fusion@dimeth{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@dimeth
+\def\@@dimethylenei#1#2#3#4{%
+\leavevmode
+\iniatom\iniflag%initialize
+\test@vrtx@dimethy{#1}{#4}%
+\begin{sfpicture}(250,480)(0,0)%
+ \Put@Direct(171,0){\SKbondAi}% bond between 1 and 2
+\if@adoublebond
+ \Put@Direct(171,0){\bondAi}%upper side double bond
+\else\if@Adoublebond
+ \Put@Direct(171,0){\bondAAi}%lower side double bond
+\fi\fi%
+\test@termcnt=#3\relax
+\set@hetatom@methyli{#1}{#4}{0}{3}{0}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\else
+\ifcase\@tmpaa%0 omit
+\or
+ \ifcase#3
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \or\relax
+ \or
+ \setBScolor{\Put@Direct(0,-303){\@methsubstaL}}%
+ \fi
+\or
+ \ifcase#3
+ \setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+ \or
+ \setBScolor{\if@bclip \@cliptrue \else \@clipfalse\fi
+ \Put@Direct(171,0){\@methsubstd}}%
+ \or\relax
+ \fi
+\fi%end of ifcase
+\fi\fi%
+}%
+\end{sfpicture}}% end of \@@dimethylenei
+\def\yldimethyleneiposition#1#2#3#4{%
+\iniatom\iniflag%initialize2013/06/22
+\reset@@yl%%2013/07/20bug fix
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\if\@tmpb s\else%2013/06/22added for bug fix
+\ifcase\@tmpaa%
+ \or \def\aaa{@}%\def\aaa{\@memberb}%2013/06/22
+ \or \def\bbb{@}%\def\bbb{\@memberb}%2013/06/22
+\fi\fi
+\fi
+}%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#2\do{\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\@tmpaa=\@tmpa \advance\@tmpaa by#4\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpaa%0 omit
+\or%%%%%%%%position 1
+ \ifcase#3
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \or\relax
+ \or
+ \ifx\aaa\empty
+ \gdef\@ylii{0}\gdef\@yli{-103}\global\@ylswtrue% subst. on 1
+ \else
+ \if@linterchainsw%interchain position
+ \gdef\@ylii{0}\gdef\@yli{-133}\global\@ylswtrue% subst. on 1
+ \else%terminal position
+ \gdef\@ylii{40}\gdef\@yli{-79}\global\@ylswtrue% subst. on 1
+ \fi
+ \fi
+ \fi
+\or%%%%%%%%position 2
+ \ifcase#3
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{33}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ % \gdef\@ylii{-211}\gdef\@yli{-93}\global\@ylswtrue% subst. on 2
+ \gdef\@ylii{-211}\gdef\@yli{-10}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or
+ \ifx\bbb\empty
+ \gdef\@ylii{-171}\gdef\@yli{0}\global\@ylswtrue% subst. on 2
+ \else
+ \if@rinterchainsw%interchain position
+ \gdef\@ylii{-171}\gdef\@yli{33}\global\@ylswtrue% subst. on 2
+ \else%terminal position
+ \gdef\@ylii{-211}\gdef\@yli{-10}\global\@ylswtrue% subst. on 2
+ \fi
+ \fi
+ \or \relax
+ \fi
+\fi%end of ifcase
+\fi}}% end of \yldimethyleneiposition
+\def\dimethylenei{%
+\@ifnextchar[{\@dimethylenei[@}{\@dimethylenei[]}}
+\def\@dimethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+\reset@interchainsw%
+\yldimethyleneiposition{#2}{#3}{0}{0}%
+\begin{ShiftPicEnv}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(250,480)(-50,-180){dimethylenei}%2002/4/30 by S. Fujita
+(50,180)%
+\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdfalse
+ \Put@Direct(0,0){\@@dimethylenei{#2}{#3}{0}{0}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@dimethi
+\fi\fi}}%
+\end{ShiftPicEnv}%
+}% end of \dimethylenei
+\def\set@fusion@dimethi{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@dimethi
+\def\tetramethylene{%
+\@ifnextchar[{\@tetramethylene[@}{\@tetramethylene[]}}
+\def\@tetramethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@dimethylene{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetrameth
+\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylene
+\def\set@fusion@tetrameth{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetrameth
+\def\tetramethylenei{%
+\@ifnextchar[{\@tetramethylenei[@}{\@tetramethylenei[]}}
+\def\@tetramethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenei}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\Put@Direct(342,0){\@@dimethylenei{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\else\if\member b\relax
+\else\if\member A\relax
+\else\if\member B\relax
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetramethi
+\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}%end of \tetramethylenei
+\def\set@fusion@tetramethi{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetramethi
+\def\tetramethylenecup{%
+\@ifnextchar[{\@tetramethylenecup[@}{\@tetramethylenecup[]}}
+\def\@tetramethylenecup[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneposition{#2}{#3}{0}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-371}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenecup}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@dimethylenei{#2}{#3}{0}{0}}}%
+{\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \relax%
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\fff{@}\xdef\bbb{@}\else
+ \xdef\fff{@}\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\eee{@}\xdef\ccc{@}\else
+ \xdef\eee{@}\xdef\ccc{@}\fi\fi
+\fi\fi}%
+\Put@Direct(68,171){\hskbonde}%
+\reset@double%
+\@tfor\member:=#1\do{%
+ \if\member b\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,171){\hbonde}%
+ \else\if\member B\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,-171){\hbondb}%
+ \fi\fi}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+ \@wrongbdWafalse
+ \@wrongbdWdLtrue
+\Put@Direct(371,0){\@@dimethylene{#2}{#3}{0}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetracup% for all bonds
+\fi\fi\fi\fi
+\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylenecup
+\def\set@fusion@tetracup{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{371}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{371}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{542}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetracup
+\def\tetramethylenecap{%
+\@ifnextchar[{\@tetramethylenecap[@}{\@tetramethylenecap[]}}
+\def\@tetramethylenecap[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yldimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yldimethyleneiposition{#2}{#3}{0}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-371}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(900,480)(-200,-180){tetramethylenecap}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\fi\fi}%
+\@wrongbdWatrue
+\Put@Direct(0,0){\@@dimethylene{#2}{#3}{0}{0}}}%
+{\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\twoch@r\@membera{}%
+\ifcase\@tmpa%
+ \or \relax%
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\fff{@}\xdef\bbb{@}\else
+ \xdef\fff{@}\xdef\bbb{@}\fi\fi
+ \or \if\@tmpb s\relax\else\if\@tmpb h\relax
+ \xdef\eee{@}\xdef\ccc{@}\else
+ \xdef\eee{@}\xdef\ccc{@}\fi\fi
+\fi\fi}%
+\Put@Direct(68,-68){\hskbondb}%
+\reset@double%
+\@tfor\member:=#1\do{%
+ \if\member b\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,-68){\hbondb}%
+ \else\if\member B\relax
+ \@bdoublebondtrue
+ \Put@Direct(68,274){\hbonde}%
+ \fi\fi}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+ \@wrongbdWaLtrue
+\Put@Direct(371,0){\@@dimethylenei{#2}{#3}{0}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@tetracap% for all bonds
+\fi\fi\fi\fi
+\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \tetramethylenecap
+\def\set@fusion@tetracap{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{371}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{200}{0}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{371}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{542}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@tetracap
+\def\pentamethylene{%
+\@ifnextchar[{\@pentamethylene[@}{\@pentamethylene[]}}
+\def\@pentamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yltrimethyleneposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){pentamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylene{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\Put@Direct(342,0){\@@trimethylene{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@pentameth% for all bonds
+\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \pentamethylene
+\def\set@fusion@pentameth{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{513}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@pentameth
+\def\pentamethylenei{%
+\@ifnextchar[{\@pentamethylenei[@}{\@pentamethylenei[]}}
+\def\@pentamethylenei[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\yltrimethyleneiposition{#2}{#3}{1}{-2}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi\fi
+\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){pentamethylenei}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trimethylenei{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trimethylenei{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@pentamethi% for all bonds
+\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \pentamethylenei
+\def\set@fusion@pentamethi{%
+\if\@@tmpa a\relax%
+ \putlratom{0}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{a}%
+ \else\if\@@tmpa A\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{A}%
+ \else\if\@@tmpa b\relax%
+ \putlratom{171}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{b}%
+ \else\if\@@tmpa B\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{B}%
+ \else\if\@@tmpa c\relax%
+ \putlratom{342}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{c}%
+ \else\if\@@tmpa C\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{C}%
+ \else\if\@@tmpa d\relax%
+ \putlratom{513}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{d}%
+ \else\if\@@tmpa D\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{D}%
+ \fi\fi\fi\fi
+ \fi\fi\fi\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@pentamethi
+\newif\if@normorinvsw \@normorinvswfalse
+\def\set@normaldirection{%
+\@normorinvswfalse
+\let\@yltrinormorinv=\yltrimethyleneposition
+\let\@yldinormorinv=\yldimethyleneposition
+\let\@@trinormorinv=\@@trimethylene
+\let\@@dinormorinv=\@@dimethylene}
+\def\set@inversedirection{%
+\@normorinvswtrue
+\let\@yltrinormorinv=\yltrimethyleneiposition
+\let\@yldinormorinv=\yldimethyleneiposition
+\let\@@trinormorinv=\@@trimethylenei
+\let\@@dinormorinv=\@@dimethylenei}
+\def\hexamethylene{%
+\@ifnextchar[{\set@normaldirection\@hexamethylene[@}{%
+\set@normaldirection\@hexamethylene[]}}
+\def\hexamethylenei{%
+\@ifnextchar[{\set@inversedirection\@hexamethylene[@}{%
+\set@inversedirection\@hexamethylene[]}}
+\def\@hexamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1100,480)(-200,-180){hexamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+ \@wrongbdWatrue
+ \@wrongbdWdfalse
+\else% normal
+ \@wrongbdWafalse
+ \@wrongbdWdtrue
+\fi
+\Put@Direct(684,0){\@@dinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@hexameth% for all bonds
+\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@hexamethylene
+\def\set@fusion@hexameth{%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@hexameth
+\def\heptamethylene{%
+\@ifnextchar[{\set@normaldirection\@heptamethylene[@}{%
+\set@normaldirection\@heptamethylene[]}}
+\def\heptamethylenei{%
+\@ifnextchar[{\set@inversedirection\@heptamethylene[@}{%
+\set@inversedirection\@heptamethylene[]}}
+\def\@heptamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1450,480)(-200,-180){heptamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\else%normal
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\fi
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@heptameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@heptamethylene
+\def\set@fusion@heptameth{%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi\fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi\fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@heptameth
+\def\octamethylene{%
+\@ifnextchar[{\set@normaldirection\@octamethylene[@}{%
+\set@normaldirection\@octamethylene[]}}
+\def\octamethylenei{%
+\@ifnextchar[{\set@inversedirection\@octamethylene[@}{%
+\set@inversedirection\@octamethylene[]}}
+\def\@octamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1620,480)(-200,-180){octamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\else% normal
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\fi
+\Put@Direct(1026,0){\@@dinormorinv{#2}{#3}{1}{-6}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@octameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@octamethylene
+\def\set@fusion@octameth{%
+\if@normorinvsw
+ \if\@@tmpa e\relax%
+ \putlratom{684}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else\if\@@tmpa g\relax%
+ \putlratom{1027}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{g}%
+ \else\if\@@tmpa G\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{G}%
+ \else
+ \set@fusion@pentamethi
+ \fi\fi\fi\fi\fi\fi
+\else
+ \if\@@tmpa e\relax%
+ \putlratom{684}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{e}%
+ \else\if\@@tmpa E\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{E}%
+ \else\if\@@tmpa f\relax%
+ \putlratom{855}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{f}%
+ \else\if\@@tmpa F\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{F}%
+ \else\if\@@tmpa g\relax%
+ \putlratom{1027}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{g}%
+ \else\if\@@tmpa G\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{G}%
+ \else
+ \set@fusion@pentameth
+ \fi\fi\fi\fi\fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@octameth
+\def\nonamethylene{%
+\@ifnextchar[{\set@normaldirection\@nonamethylene[@}{%
+\set@normaldirection\@nonamethylene[]}}
+
+\def\nonamethylenei{%
+\@ifnextchar[{\set@inversedirection\@nonamethylene[@}{%
+\set@inversedirection\@nonamethylene[]}}
+\def\@nonamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1790,480)(-200,-180){nonamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\else\if\member h\relax
+\@bdoublebondtrue
+\else\if\member H\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\else% normal
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\fi
+\Put@Direct(1026,0){\@@trinormorinv{#2}{#3}{1}{-6}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else\if\member h\relax%dummy
+\else\if\member H\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@nonameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end of \@nonamethylene
+\def\set@fusion@nonameth{%
+\if@normorinvsw
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else
+ \set@fusion@octameth
+ \fi\fi
+\else
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else
+ \set@fusion@octameth
+ \fi\fi
+\fi
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@nonameth
+\def\decamethylene{%
+\@ifnextchar[{\set@normaldirection\@decamethylene[@}{%
+\set@normaldirection\@decamethylene[]}}
+\def\decamethylenei{%
+\@ifnextchar[{\set@inversedirection\@decamethylene[@}{%
+\set@inversedirection\@decamethylene[]}}
+\def\@decamethylene[#1]#2#3{%
+\iniflag\iniatom%
+\@reset@ylsw%
+{\@linterchainswfalse%
+\@rinterchainswtrue%
+\@yltrinormorinv{#2}{#3}{0}{0}}%
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{0}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-2}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-342}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-4}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-684}\def\@@yli{0}\fi
+\else
+{\@rinterchainswtrue%
+\@linterchainswtrue%
+\@yltrinormorinv{#2}{#3}{1}{-6}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{0}\fi
+\else
+{\@rinterchainswfalse%
+\@linterchainswtrue%
+\@yldinormorinv{#2}{#3}{1}{-8}}%
+\fi
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{0}\fi\fi
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1960,480)(-200,-180){decamethylene}%2002/4/30 by S. Fujita
+(200,180)%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax
+\@adoublebondtrue
+\else\if\member b\relax
+\@bdoublebondtrue
+\else\if\member A\relax
+\@Adoublebondtrue
+\else\if\member B\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(0,0){\@@trinormorinv{#2}{#3}{0}{0}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member c\relax
+\@adoublebondtrue
+\else\if\member d\relax
+\@bdoublebondtrue
+\else\if\member C\relax
+\@Adoublebondtrue
+\else\if\member D\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(342,0){\@@trinormorinv{#2}{#3}{1}{-2}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member e\relax
+\@adoublebondtrue
+\else\if\member E\relax
+\@Adoublebondtrue
+\else\if\member f\relax
+\@bdoublebondtrue
+\else\if\member F\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(684,0){\@@trinormorinv{#2}{#3}{1}{-4}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member g\relax
+\@adoublebondtrue
+\else\if\member G\relax
+\@Adoublebondtrue
+\else\if\member h\relax
+\@bdoublebondtrue
+\else\if\member H\relax
+\@Bdoublebondtrue
+\fi\fi\fi\fi}%
+\@wrongbdWatrue
+\@wrongbdWdtrue
+\Put@Direct(1026,0){\@@trinormorinv{#2}{#3}{1}{-6}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member i\relax
+\@adoublebondtrue
+\else\if\member I\relax
+\@Adoublebondtrue
+\fi\fi}%
+\if@normorinvsw% inverse
+\@wrongbdWatrue
+\@wrongbdWdfalse
+\else% normal
+\@wrongbdWafalse
+\@wrongbdWdtrue
+\fi
+\Put@Direct(1368,0){\@@dinormorinv{#2}{#3}{1}{-8}}}%
+{\reset@double%
+\@tfor\member:=#1\do{%
+\if\member a\relax%dummy
+\else\if\member b\relax%dummy
+\else\if\member A\relax%dummy
+\else\if\member B\relax%dummy
+\else\if\member c\relax%dummy
+\else\if\member C\relax%dummy
+\else\if\member d\relax%dummy
+\else\if\member D\relax%dummy
+\else\if\member e\relax%dummy
+\else\if\member E\relax%dummy
+\else\if\member f\relax%dummy
+\else\if\member F\relax%dummy
+\else\if\member g\relax%dummy
+\else\if\member G\relax%dummy
+\else\if\member h\relax%dummy
+\else\if\member H\relax%dummy
+\else\if\member i\relax%dummy
+\else\if\member I\relax%dummy
+\else
+ \expandafter\twoCH@@R\member//%
+ \set@fusion@decameth% for all bonds
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi}}%
+\end{ShiftPicEnvB}%
+}% end \@decamethylene
+\def\set@fusion@decameth{%
+\if@normorinvsw
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else\if\@@tmpa i\relax%
+ \putlratom{1369}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{i}%
+ \else\if\@@tmpa I\relax%
+ \putlratom{1540}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{I}%
+ \else
+ \set@fusion@octameth
+ \fi\fi\fi\fi
+\else
+ \if\@@tmpa h\relax%
+ \putlratom{1198}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{h}%
+ \else\if\@@tmpa H\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{H}%
+ \else\if\@@tmpa i\relax%
+ \putlratom{1369}{0}{\@@tmpb}% % bond fused
+ \FuseWarning{-171}{-103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{i}%
+ \else\if\@@tmpa I\relax%
+ \putlratom{1540}{103}{\@@tmpb}% % bond fused
+ \FuseWarning{171}{103}%
+ {\fuseAx}{\fuseAy}{\fuseBx}{\fuseBy}{I}%
+ \else
+ \set@fusion@octameth
+ \fi\fi\fi\fi
+\fi%
+\global\let\FuseWarning=\FuseW@rning%added 2010/10/01
+}% end of the macro \set@fusion@decameth
+\endinput
+%%
+%% End of file `methylen.sty'.
diff --git a/macros/latex/contrib/xymtex/base/polymers.dtx b/macros/latex/contrib/xymtex/base/polymers.dtx
new file mode 100644
index 0000000000..728a4c4bac
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/polymers.dtx
@@ -0,0 +1,750 @@
+% \iffalse meta-comment
+%% File: polymers.dtx
+%
+% Copyright 1996, 1998, 2001, 2002, 2004. 2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files polymers.dtx and polymers.ins
+% and the derived file polymers.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{August 16, 1996}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver4.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{polymers}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{480}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{1996/07/07}{first edition for LaTeX2e}
+% \changes{v1.02}{1998/10/31}{revised edition for LaTeX2e}
+% \changes{v2.00}{1998/12/25}{enhanced edition for LaTeX2e}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clip information}
+% \changes{v3.00}{2002/04/30}{sfpicture environment, etc.}
+% \changes{v4.00}{2002/05/30}{PostScript output and ShiftPicEnv}
+% \changes{v4.01}{2004/08/30}{Minor additions}
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{polymers.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{polymers.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Polymers by {\sffamily polymers.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{polymers.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{polymers:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% polymers & polymers.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*polymers>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{polymers}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for polymers.sty}
+%
+% \begin{verbatim}
+% **********************************
+% * polymers.sty: list of commands *
+% **********************************
+%
+% <Delimeters for polymer units>
+%
+% \leftPMdelim \rightPMdelim
+% \leftpmdelim \rightpmdelim
+%
+% \leftPolymer \leftpolymer
+% \rightPolymer \rightpolymer
+%
+% \leftsqrPolymer \leftSqrpolymer
+% \lsqrdelimiter \leftsqrpolymer
+%
+% \rightsqrPolymer \rightSqrpolymer
+% \rsqrdelimiter \rightsqrpolymer
+%
+% \@sqrpolymer
+% \sqrpolymer \Sqrpolymer
+% \mpolymer
+%
+% <Bonds for polymers>
+%
+% \WestPbond \EastPbond
+% \sbond
+%
+% <Polymers>
+%
+% \polyethylene \@polyethylene
+% \polystyrene \@polystyrene
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf polymers.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} etc. for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{Westbond}{\input aliphat.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% \begin{macrocode}
+% ****************************************************
+% * For separating an augument list to each argument *
+% ****************************************************
+%
+\def\@forsemicol#1:=#2\do#3{%
+%% \edef\@fortmp{#2}\ifx\@fortmp\@empty%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty%
+ \else%
+ \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
+% \end{macrocode}
+%
+% \section{Delimeters for polymer units}
+%
+% \subsection{Right and left delimeters}
+%
+% A polymer structure has a unit surrounded by
+% parentheses or other delimeters. For drawing a
+% parenthesis as the part of a substituent,
+% the following commands are prepared.
+%
+% \subsubsection{Parentheses}
+%
+% \begin{macro}{\leftPMdelim}
+% \begin{macro}{\leftpmdelim}
+% \begin{macrocode}
+% ********************************
+% * Delimeters for polymer units *
+% ********************************
+\def\leftPMdelim#1{$\mathstrut #1$}
+\def\leftpmdelim{\leftPMdelim{\biggm(}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rightPMdelim}
+% \begin{macro}{\rightpmdelim}
+% \begin{macrocode}
+\def\rightPMdelim#1#2{%
+ $\mathstrut #1_{\mkern-5mu #2}$}
+\def\rightpmdelim#1{\rightPMdelim{\biggm)}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\leftpolymer| typesets the left parenthesis of
+% a polymer unit.
+% The command |\leftPolymer| is the inner commend of |\leftpolymer|,
+% where a delimeter can be selected as an argument.
+%
+% \begin{macro}{\leftPolymer}
+% \begin{macro}{\leftpolymer}
+% \begin{macrocode}
+\def\leftPolymer#1#2{%
+\begin{sfpicture}(0,0)(0,0)
+\putlatom{0}{0}{#2}
+\putlatom{120}{0}{$#1$}
+\end{sfpicture}}
+\def\leftpolymer#1{\leftPolymer{\biggm(}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\rightpolymer| typesets the left parenthesis of
+% a polymer unit along with a repeating number as a subscript.
+% The command |\rightPolymer| is the inner commend of |\rightpolymer|,
+% where a delimeter can be selected as an argument.
+%
+% \begin{macro}{\Rightpolymer}
+% \begin{macro}{\rightpolymer}
+% \begin{macrocode}
+\def\rightPolymer#1#2#3{%
+\begin{sfpicture}(0,0)(0,0)
+\putratom{0}{0}{#2}
+\putratom{-150}{0}{%
+% $\mathstrut#1_{\mkern-3mu \mbox{\scriptsize\rm #3}}$}
+ $\mathstrut#1_{\mkern-2mu #3}$}
+\end{sfpicture}}
+\def\rightpolymer#1#2{\rightPolymer{\biggm)}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Brackets}
+%
+% The command |\leftSqrpolymer| typesets the left bracket of
+% a polymer unit.
+% The command |\leftsqrPolymer| is the inner commend of |\leftSqrpolymer|,
+% where a delimeter can be selected as an argument.
+% The bracket selected by the command |\leftSqrpolymer| is
+% a \TeX{} big mathematical symbol,
+% the line of which is
+% boldfaced.
+%
+% \begin{macro}{\leftsqrPolymer}
+% \begin{macro}{\leftSqrpolymer}
+% \begin{macrocode}
+\def\leftsqrPolymer#1#2{%
+\begin{sfpicture}(0,0)(0,0)
+\putlatom{0}{0}{#2}
+\putlatom{120}{0}{$#1$}
+\end{sfpicture}}
+\def\leftSqrpolymer#1{\leftsqrPolymer{\Biggm[}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\rightSqrpolymer| typesets the right bracket of
+% a polymer unit.
+% The command |\rightsqrPolymer| is the inner commend of |\rightSqrpolymer|,
+% where a delimeter can be selected as an argument.
+% The bracket selected by the command |\rightSqrpolymer| is
+% a \TeX{} big mathematical symbol,
+% the line of which is boldfaced.
+%
+% \begin{macro}{\rightsqrPolymer}
+% \begin{macro}{\rightSqrpolymer}
+% \begin{macrocode}
+\def\rightsqrPolymer#1#2#3{%
+\begin{sfpicture}(0,0)(0,0)
+\putratom{0}{0}{#2}
+\putratom{-150}{0}{%
+% $\mathstrut #1_{\mbox{\scriptsize\rm #3}}$}
+ $\mathstrut #1_{#3}$}
+\end{sfpicture}}
+\def\rightSqrpolymer#1#2{\rightsqrPolymer{\Biggm]}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% For drawing polymer brackets of thin line width,
+% we prepare the command |\lsqrdelimiter|. The height of
+% the bracket can be designated by the argument of this
+% command. The command
+% is used to define the command |\leftsqrpolymer|.
+% This command typesets a left bracket of thin line width.
+%
+% \begin{macro}{\lsqrdelimiter}
+% \begin{macro}{\leftsqrpolymer}
+% \begin{macrocode}
+\def\lsqrdelimiter#1{%
+\hbox{\vrule \@width\fboxrule
+$\vcenter to#1{%
+\hrule \@height\fboxrule \@width\fboxsep
+\vfill
+\hrule \@height\fboxrule \@width\fboxsep}$}}
+\def\leftsqrpolymer#1{%
+ \leftsqrPolymer{\lsqrdelimiter{300\unitlength}}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\rsqrdelimiter| is
+% used to define the command |\rightsqrpolymer|, which
+% typesets a right bracket of thin line width.
+%
+% \begin{macro}{\rsqrdelimiter}
+% \begin{macro}{\rightsqrpolymer}
+% \begin{macrocode}
+\def\rsqrdelimiter#1{%
+\hbox{$\vcenter to#1{%
+\hrule \@height\fboxrule \@width\fboxsep \vfill
+\hrule \@height\fboxrule \@width\fboxsep}$\kern-\fboxrule
+\vrule \@width\fboxrule\kern2pt}}
+\def\rightsqrpolymer#1#2{%
+\rightsqrPolymer{\rsqrdelimiter{300\unitlength}}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Pairs of delimeters}
+%
+% The command |\sqrpolymer| typesets a pair of thin-line brackets that
+% surrounds a polymer unit after measuring the height of
+% the unit. On the other hand,
+% the command |\Sqrpolymer| typesets a pair of thick-line brackets.
+% Both of the commands are based on the inner macro |\@sqrpolymer|,
+% in which a line width is designated by means of an argument.
+%
+% \begin{macro}{\@sqrpolymer}
+% \begin{macro}{\sqrpolymer}
+% \begin{macro}{\Sqrpolymer}
+% \begin{macrocode}
+\long\def\@sqrpolymer#1#2#3{%
+\begingroup \fboxrule=#1
+ \leavevmode\setbox\@tempboxa\hbox{#2}\@tempdima\fboxrule
+ \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
+ \@tempdimb=\wd\@tempboxa
+ \advance\@tempdimb by \fboxsep
+ \advance\@tempdimb by \fboxsep
+ \advance\@tempdimb by \fboxrule
+ \advance\@tempdimb by \fboxrule
+ \hbox{\lower \@tempdima\hbox
+ {\vbox{
+ \hbox to\@tempdimb{%
+ \vrule \@height \fboxrule \@width\fboxsep\hfill
+ \vrule \@height \fboxrule \@width\fboxsep}
+ \nointerlineskip
+ \hbox{\vrule \@width \fboxrule \hskip\fboxsep
+ \vbox{\vskip\fboxsep \copy\@tempboxa\vskip\fboxsep}\hskip
+ \fboxsep\vrule \@width \fboxrule}
+ \nointerlineskip
+ \hbox to\@tempdimb{%
+ \vrule \@height \fboxrule \@width\fboxsep\hfill
+ \vrule \@height \fboxrule \@width\fboxsep}}}}%
+\kern2pt\lower\@tempdima\hbox{\scriptsize$#3$}\endgroup}
+\long\def\sqrpolymer#1#2{\@sqrpolymer{0.4pt}{#1}{#2}}
+\long\def\Sqrpolymer#1#2{\@sqrpolymer{1pt}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\mpolymer| typesets a pair of parentheses that
+% surrounds a polymer unit after measuring the height of
+% the unit.
+%
+% \begin{macro}{\mpolymer}
+% \begin{macrocode}
+\long\def\mpolymer#1#2{%
+ \leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule
+ \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
+ \hbox{\lower \@tempdima\hbox{\vbox{\hbox{\hskip\fboxsep%
+ $\left(\vcenter{\vskip\fboxsep \copy\@tempboxa\vskip\fboxsep}%
+ \right)_{#2}$}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Commands for drawing polymers}
+%
+% \subsection{Bonds for polymers}
+%
+% The original commands
+% |\Westbond| and |\Eastbond| are changed into
+% |\WestPbond| and |\EastPbond|, where each bond is lengthened
+% for making a space for drawing delimiters.
+%
+% \begin{macro}{\WestPbond}
+% \begin{macro}{\EastPbond}
+% \begin{macro}{\sbond}
+% \begin{macrocode}
+% **********************
+% * Bonds for polymers *
+% **********************
+\def\WestPbond{%
+\begin{sfpicture}(100,100)(0,0)%
+\Put@Direct(-100,0){\Westbond}%
+\Put@Line(-60,0)(-1,0){90}%
+\end{sfpicture}}%
+\def\EastPbond{%
+\begin{sfpicture}(100,100)(0,0)%
+\Put@Direct(100,0){\Eastbond}%
+\Put@Line(60,0)(1,0){90}%
+\end{sfpicture}}%
+\def\sbond{%
+\begin{sfpicture}(160,0)(0,0)%
+\Put@Line(0,33)(1,0){160}%
+\end{sfpicture}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Polyethylene unit}
+%
+% The command |\polyethylene| is used to draw polyethylene derivatives,
+% in which each substituent is designated by the |SUBSLIST|.
+% The following numbering is used in this macro.
+%
+% \begin{verbatim}
+% ********************
+% * polyethylene unit*
+% ********************
+%
+% The following numbering is adopted in this macro.
+%
+% | 1 6 |
+% | |
+% | | | |
+% 2 ---- (1) -- (2) ---- 5
+% | | (0) | |
+% | |
+% | 3 4 |0
+% \end{verbatim}
+%
+% The command |\polyethylene| has arguments,
+% |CALIST| and |SUBSLIST|, as well as an optional argument |AUXLIST|.
+% \begin{verbatim}
+% \polyethylene[AUXLIST]{CALIST}{SUBSLIST}
+% \end{verbatim}
+%
+% The optional argument |AUXLIST| is used for
+% typesetting auxiliary symbols on central atoms.
+% \begin{verbatim}
+% AUXLIST =
+%
+% {n+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The argument |CALIST| is used for indicating center atoms.
+% \begin{verbatim}
+% CALIST: central atom list
+%
+% for 1 : cetral atom (e.g. 1==C)
+% 2 : cetral atom (e.g. 2==C)
+% 0 : cetral bond (e.g. 0D==)
+% \end{verbatim}
+%
+% The argument |SUBSLIST| is used for indicating substituents.
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% \begin{macro}{\if@centbondsw}
+% \begin{macro}{\if@centatswi}
+% \begin{macro}{\if@centatswii}
+% \begin{macrocode}
+\newif\if@centbondsw \@centbondswfalse
+\newif\if@centatswi \@centatswifalse
+\newif\if@centatswii \@centatswiifalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\polyethylene}
+% \begin{macro}{\@polyethylene}
+% \begin{macrocode}
+\def\polyethylene{\@ifnextchar[{\@polyethylene}{\@polyethylene[]}}
+\def\@polyethylene[#1]#2#3{%
+ \begin{sfpicture}(1100,600)(-400,-300)%
+ \OrigptOutput(400,300){polyethylene}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% ************
+% * aux list *
+% ************
+\def\@@@temp{#1}%
+\ifx\@@@temp\empty\else
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \ifcase\@@tmpa%
+ \or\relax\putratom{47}{50}{\scriptsize\@@tmpb}%
+ \or\relax\putratom{347}{50}{\scriptsize\@@tmpb}%
+\fi}\fi%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% *****************
+% * central atoms *
+% *****************
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+ \expandafter\threech@r\@membera{}{}%
+ \ifcase\@tmpa \global\@centbondswtrue\Put@Direct(20,0){\Eastbond}%
+ \or\global\@centatswitrue\putlratom{-40}{-33}{\@memberb}%
+ \or\global\@centatswiitrue\putlratom{260}{-33}{\@memberb}%
+\fi\fi}%
+\if@centatswi \else\putlratom{-40}{-33}{C}\fi%
+\if@centatswii \else\putlratom{260}{-33}{C}\fi%
+\if@centbondsw \else\Put@Line(70,0)(1,0){160}\fi%
+\global\@centbondswfalse%
+\global\@centatswifalse%
+\global\@centatswiifalse%
+% \end{macrocode}
+%
+% \begin{macrocode}
+% ****************
+% * Substituents *
+% ****************
+\gdef\numrepeated{x}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \gdef\numrepeated{\@memberb}%
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+\or\setBScolor{\Put@Direct(0,0){\WestPbond}}%
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(300,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(300,0){\EastPbond}}%
+\or\setBScolor{\Put@Direct(300,0){\Northbond}}%
+\fi\fi}%end of ifcase
+% \end{macrocode}
+%
+% \begin{macrocode}
+% **************
+% * Delimeters *
+% **************
+\Put@Direct(-200,-33){\leftpmdelim}%
+\Put@Direct(400,-33){\rightpmdelim{\numrepeated}}%
+\end{sfpicture}}%end of macro polyethylene
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Polyestyrene unit}
+%
+% The command |\polyestrene| is used to draw polystyrene derivatives,
+% in which substituents on both the polymer chain and the phenyl group
+% are designated by the |SUBSLIST| and |PHSUBSLIST|, respectively.
+% The following numbering is adopted in this macro.
+% \begin{verbatim}
+% ********************
+% * polystyrene unit *
+% ********************
+%
+% | 1 6 |
+% | |
+% | | | |
+% 2 ---- (1) -- (2) ---- 5
+% | | (0) | |
+% | | |
+% | 3 | |0
+% / `
+% 6 | | 2
+% | |
+% 5 ` / 3
+% `
+% 4
+% \end{verbatim}
+%
+% The command |\polyethylene| has arguments,
+% |CALIST|, |SUBSLIST| and |PHSUBSLIST|,
+% as well as an optional argument |AUXLIST|.
+% \begin{verbatim}
+% \polystyrene[AUXLIST]{CALIST}{SUBSLIST}{PHSUBSLIST}
+% \end{verbatim}
+%
+% The optional argument |AUXLIST| is used for
+% typesetting auxiliary symbols on central atoms.
+% \begin{verbatim}
+% AUXLIST =
+%
+% {n+} : + charge (or another one chararacter) on the center
+% \end{verbatim}
+%
+% The argument |CALIST| is used for indicating center atoms.
+% \begin{verbatim}
+% CALIST: central atom list
+%
+% for 1 : cetral atom (e.g. 1==C)
+% 2 : cetral atom (e.g. 2==C)
+% 0 : cetral bond (e.g. 0D==)
+% \end{verbatim}
+%
+% The argument |SUBSLIST| is used for indicating substituents on
+% the polymer chain.
+% \begin{verbatim}
+% SUBSLIST: list of substituents
+%
+% for n = 1 to 4
+%
+% nT : triple bond at n-atom
+% nD : double bond at n-atom
+% n or nS : single bond at n-atom
+% nA : alpha single bond at n-atom
+% nB : beta single bond at n-atom
+% \end{verbatim}
+%
+% The argument |PHSUBSLIST| is used for indicating substituents on
+% the phenyl group.
+% \begin{verbatim}
+% PHSUBSLIST: list of phenyl substituents
+%
+% for n = 2 to 6
+%
+% n or nS : single bond at n-atom
+% \end{verbatim}
+%
+% \begin{macro}{\polyethylene}
+% \begin{macro}{\@polyethylene}
+% \begin{macrocode}
+\def\polystyrene{\@ifnextchar[{\@polystyrene}{\@polystyrene[]}}
+\def\@polystyrene[#1]#2#3#4{%
+\begin{sfpicture}(1100,1200)(0,-640)%
+ \OrigptOutput(0,640){polystyrene}%
+\begingroup \origptfalse
+\Put@Direct(0,0){\polyethylene[#1]{#2}{#3}}%
+\Put@Line(700,0)(0,1){240}%
+\Put@Direct(300,-646){\bzdrv{#4}}%
+\endgroup
+\end{sfpicture}}%end of macro polystyrene
+%</polymers>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/polymers.ins b/macros/latex/contrib/xymtex/base/polymers.ins
new file mode 100644
index 0000000000..f0811a9020
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/polymers.ins
@@ -0,0 +1,53 @@
+\def\batchfile{polymers.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996,1998,2001,2002,2004,2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Version 1.01 Released on August 16, 1996
+Version 1.02 Released on October 31, 1996 (private version)
+Version 2.00 Released on December 25, 1998
+Version 2.01 Released on June 20, 2001 (private version)
+Version 3.00 Released on April 30, 2002
+Version 4.00 Released on May 30, 2002 (private version)
+Version 4.00 Released on August 30, 2004
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files polymers.dtx and polymers.ins
+and the derived file polymers.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{polymers.drv}{t}{%
+ \from{polymers.dtx}{driver}}
+
+\generateFile{polymers.sty}{t}{%
+ \from{polymers.dtx}{polymers}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/polymers.sty b/macros/latex/contrib/xymtex/base/polymers.sty
new file mode 100644
index 0000000000..60f751d18b
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/polymers.sty
@@ -0,0 +1,229 @@
+%%
+%% This is file `polymers.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% polymers.dtx (with options: `polymers')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996,1998,2001,2002,2004,2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.01 Released on August 16, 1996
+%% Version 1.02 Released on October 31, 1996 (private version)
+%% Version 2.00 Released on December 25, 1998
+%% Version 2.01 Released on June 20, 2001 (private version)
+%% Version 3.00 Released on April 30, 2002
+%% Version 4.00 Released on May 30, 2002 (private version)
+%% Version 4.00 Released on August 30, 2004
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files polymers.dtx and polymers.ins
+%% and the derived file polymers.sty.
+%%
+%% =======================================
+%%
+%% File: polymers.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{polymers}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{Westbond}{\input aliphat.sty\relax}{}
+\@ifundefined{bzdrv}{\input carom.sty\relax}{}
+\unitlength=0.1pt
+\def\@forsemicol#1:=#2\do#3{%
+%% \edef\@fortmp{#2}\ifx\@fortmp\@empty%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty%
+ \else%
+ \expandafter\@forl@@p#2;\@nil;\@nil\@@#1{#3}\fi}
+\def\leftPMdelim#1{$\mathstrut #1$}
+\def\leftpmdelim{\leftPMdelim{\biggm(}}
+\def\rightPMdelim#1#2{%
+ $\mathstrut #1_{\mkern-5mu #2}$}
+\def\rightpmdelim#1{\rightPMdelim{\biggm)}{#1}}
+\def\leftPolymer#1#2{%
+\begin{sfpicture}(0,0)(0,0)
+\putlatom{0}{0}{#2}
+\putlatom{120}{0}{$#1$}
+\end{sfpicture}}
+\def\leftpolymer#1{\leftPolymer{\biggm(}{#1}}
+\def\rightPolymer#1#2#3{%
+\begin{sfpicture}(0,0)(0,0)
+\putratom{0}{0}{#2}
+\putratom{-150}{0}{%
+ $\mathstrut#1_{\mkern-2mu #3}$}
+\end{sfpicture}}
+\def\rightpolymer#1#2{\rightPolymer{\biggm)}{#1}{#2}}
+\def\leftsqrPolymer#1#2{%
+\begin{sfpicture}(0,0)(0,0)
+\putlatom{0}{0}{#2}
+\putlatom{120}{0}{$#1$}
+\end{sfpicture}}
+\def\leftSqrpolymer#1{\leftsqrPolymer{\Biggm[}{#1}}
+\def\rightsqrPolymer#1#2#3{%
+\begin{sfpicture}(0,0)(0,0)
+\putratom{0}{0}{#2}
+\putratom{-150}{0}{%
+ $\mathstrut #1_{#3}$}
+\end{sfpicture}}
+\def\rightSqrpolymer#1#2{\rightsqrPolymer{\Biggm]}{#1}{#2}}
+\def\lsqrdelimiter#1{%
+\hbox{\vrule \@width\fboxrule
+$\vcenter to#1{%
+\hrule \@height\fboxrule \@width\fboxsep
+\vfill
+\hrule \@height\fboxrule \@width\fboxsep}$}}
+\def\leftsqrpolymer#1{%
+ \leftsqrPolymer{\lsqrdelimiter{300\unitlength}}{#1}}
+\def\rsqrdelimiter#1{%
+\hbox{$\vcenter to#1{%
+\hrule \@height\fboxrule \@width\fboxsep \vfill
+\hrule \@height\fboxrule \@width\fboxsep}$\kern-\fboxrule
+\vrule \@width\fboxrule\kern2pt}}
+\def\rightsqrpolymer#1#2{%
+\rightsqrPolymer{\rsqrdelimiter{300\unitlength}}{#1}{#2}}
+\long\def\@sqrpolymer#1#2#3{%
+\begingroup \fboxrule=#1
+ \leavevmode\setbox\@tempboxa\hbox{#2}\@tempdima\fboxrule
+ \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
+ \@tempdimb=\wd\@tempboxa
+ \advance\@tempdimb by \fboxsep
+ \advance\@tempdimb by \fboxsep
+ \advance\@tempdimb by \fboxrule
+ \advance\@tempdimb by \fboxrule
+ \hbox{\lower \@tempdima\hbox
+ {\vbox{
+ \hbox to\@tempdimb{%
+ \vrule \@height \fboxrule \@width\fboxsep\hfill
+ \vrule \@height \fboxrule \@width\fboxsep}
+ \nointerlineskip
+ \hbox{\vrule \@width \fboxrule \hskip\fboxsep
+ \vbox{\vskip\fboxsep \copy\@tempboxa\vskip\fboxsep}\hskip
+ \fboxsep\vrule \@width \fboxrule}
+ \nointerlineskip
+ \hbox to\@tempdimb{%
+ \vrule \@height \fboxrule \@width\fboxsep\hfill
+ \vrule \@height \fboxrule \@width\fboxsep}}}}%
+\kern2pt\lower\@tempdima\hbox{\scriptsize$#3$}\endgroup}
+\long\def\sqrpolymer#1#2{\@sqrpolymer{0.4pt}{#1}{#2}}
+\long\def\Sqrpolymer#1#2{\@sqrpolymer{1pt}{#1}{#2}}
+\long\def\mpolymer#1#2{%
+ \leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule
+ \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
+ \hbox{\lower \@tempdima\hbox{\vbox{\hbox{\hskip\fboxsep%
+ $\left(\vcenter{\vskip\fboxsep \copy\@tempboxa\vskip\fboxsep}%
+ \right)_{#2}$}}}}}
+\def\WestPbond{%
+\begin{sfpicture}(100,100)(0,0)%
+\Put@Direct(-100,0){\Westbond}%
+\Put@Line(-60,0)(-1,0){90}%
+\end{sfpicture}}%
+\def\EastPbond{%
+\begin{sfpicture}(100,100)(0,0)%
+\Put@Direct(100,0){\Eastbond}%
+\Put@Line(60,0)(1,0){90}%
+\end{sfpicture}}%
+\def\sbond{%
+\begin{sfpicture}(160,0)(0,0)%
+\Put@Line(0,33)(1,0){160}%
+\end{sfpicture}}%
+\newif\if@centbondsw \@centbondswfalse
+\newif\if@centatswi \@centatswifalse
+\newif\if@centatswii \@centatswiifalse
+\def\polyethylene{\@ifnextchar[{\@polyethylene}{\@polyethylene[]}}
+\def\@polyethylene[#1]#2#3{%
+ \begin{sfpicture}(1100,600)(-400,-300)%
+ \OrigptOutput(400,300){polyethylene}%
+\def\@@@temp{#1}%
+\ifx\@@@temp\empty\else
+\@tfor\member:=#1\do{%
+ \expandafter\twoch@@r\member{}{}%
+ \ifcase\@@tmpa%
+ \or\relax\putratom{47}{50}{\scriptsize\@@tmpb}%
+ \or\relax\putratom{347}{50}{\scriptsize\@@tmpb}%
+\fi}\fi%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+ \expandafter\threech@r\@membera{}{}%
+ \ifcase\@tmpa \global\@centbondswtrue\Put@Direct(20,0){\Eastbond}%
+ \or\global\@centatswitrue\putlratom{-40}{-33}{\@memberb}%
+ \or\global\@centatswiitrue\putlratom{260}{-33}{\@memberb}%
+\fi\fi}%
+\if@centatswi \else\putlratom{-40}{-33}{C}\fi%
+\if@centatswii \else\putlratom{260}{-33}{C}\fi%
+\if@centbondsw \else\Put@Line(70,0)(1,0){160}\fi%
+\global\@centbondswfalse%
+\global\@centatswifalse%
+\global\@centatswiifalse%
+\gdef\numrepeated{x}%
+\@forsemicol\member:=#3\do{%
+\ifx\member\empty\else%
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifcase\@tmpa \gdef\numrepeated{\@memberb}%
+\or\setBScolor{\Put@Direct(0,0){\Northbond}}%
+\or\setBScolor{\Put@Direct(0,0){\WestPbond}}%
+\or\setBScolor{\Put@Direct(0,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(300,0){\Southbond}}%
+\or\setBScolor{\Put@Direct(300,0){\EastPbond}}%
+\or\setBScolor{\Put@Direct(300,0){\Northbond}}%
+\fi\fi}%end of ifcase
+\Put@Direct(-200,-33){\leftpmdelim}%
+\Put@Direct(400,-33){\rightpmdelim{\numrepeated}}%
+\end{sfpicture}}%end of macro polyethylene
+\def\polystyrene{\@ifnextchar[{\@polystyrene}{\@polystyrene[]}}
+\def\@polystyrene[#1]#2#3#4{%
+\begin{sfpicture}(1100,1200)(0,-640)%
+ \OrigptOutput(0,640){polystyrene}%
+\begingroup \origptfalse
+\Put@Direct(0,0){\polyethylene[#1]{#2}{#3}}%
+\Put@Line(700,0)(0,1){240}%
+\Put@Direct(300,-646){\bzdrv{#4}}%
+\endgroup
+\end{sfpicture}}%end of macro polystyrene
+\endinput
+%%
+%% End of file `polymers.sty'.
diff --git a/macros/latex/contrib/xymtex/base/putline.sed b/macros/latex/contrib/xymtex/base/putline.sed
new file mode 100644
index 0000000000..bb8c2dade0
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/putline.sed
@@ -0,0 +1,10 @@
+#
+# putline.sed 2002/4/15/
+#
+s/\\begin{picture}/\\begin{sfpicture}/g
+s/\\end{picture}/\\end{sfpicture}/g
+s/\\put(\(.*\)){\\line(\(.*\)){\(.*\)}}/\\Put@Line(\1)(\2){\3}/g
+s/\\put(\(.*\)){\\circle\*{\(.*\)}}/\\Put@sCircle(\1){\2}/g
+s/\\put(\(.*\)){\\circle{\(.*\)}}/\\Put@oCircle(\1){\2}/g
+s/\\put(/\\Put@Direct(/g
+s/\\multiput(/\\Multiput@Direct(/g
diff --git a/macros/latex/contrib/xymtex/base/putput.bat b/macros/latex/contrib/xymtex/base/putput.bat
new file mode 100644
index 0000000000..b8433d16f4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/putput.bat
@@ -0,0 +1 @@
+sed -f putline.sed %1 > %2
diff --git a/macros/latex/contrib/xymtex/base/sizeredc.dtx b/macros/latex/contrib/xymtex/base/sizeredc.dtx
new file mode 100644
index 0000000000..fd6bf49f35
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/sizeredc.dtx
@@ -0,0 +1,351 @@
+% \iffalse meta-comment
+%% File: sizeredc.dtx
+%
+% Copyright 1996, 2001, 2002, 2004, 2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files sizeredc.dtx and sizeredc.ins
+% and the derived file sizeredc.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% (old address)
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+% (old address)
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{sizeredc}
+% \def\versi@ndate{June 12, 2001}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{sizeredc}
+% \def\versi@ndate{April 30, 2002}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{sizeredc}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{428}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2001/06/12}{first edition for LaTeX2e}
+% \changes{v1.01}{2002/04/30}{2nd edition for XyMTeX v3.00}
+% \changes{v4.01}{2004/08/30}{Adjust XyMTeX v4.01}
+% \changes{v5.00}{2010/10/01}{the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{sizeredc.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{sizeredc.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Size Reduction of Structural Formulas
+by {\sffamily sizeredc.sty} (\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% % (old address)
+% %Department of Chemistry and Materials Technology, \\
+% %Kyoto Institute of Technology, \\
+% %Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+% %% (old address)
+% %% Ashigara Research Laboratories,
+% %% Fuji Photo Film Co., Ltd., \\
+% %% Minami-Ashigara, Kanagawa, 250-01 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{sizeredc.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{sizeredc:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% sizeredc & sizeredc.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*sizeredc>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{sizeredc}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{Macros for Size Reduction}
+% \subsection{Division of Integers}
+%
+% \begin{macro}{\DIVIDE}
+% The macro |\DIVIDE| is used to the devision of an integer
+% by a divisor. The result (rounded to an integer) is stored
+% in a control sequence such as |\Quatient|.
+% \begin{verbatim}
+% \DIVDE{integer}{divisor}\Quatient
+% \end{verbatim}
+%
+% \begin{macrocode}
+\newcount\@tempcntx \newcount\@tempcnty \newcount\@tempcntz
+\newif\ifseifuflag \seifuflagfalse
+\def\DIVIDE#1#2#3{%
+\seifuflagfalse \@tempcntx=#1
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\seifuflagtrue\fi
+\divide\@tempcntx by#2\relax
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx
+\ifseifuflag \seifuflagfalse \else \seifuflagtrue\fi\fi
+\@tempcntz=\@tempcntx%%store
+\@tempcnty=\@tempcntx \multiply\@tempcnty by#2%
+\ifnum\@tempcnty<0 \@tempcnty=-\@tempcnty\fi
+\@tempcntx=#1%
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\fi
+\advance\@tempcntx by-\@tempcnty%
+\multiply\@tempcntx by10 \edef\s{\the\@tempcntx}%
+\divide\@tempcntx by#2
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\fi
+\ifnum\@tempcntx>4\relax \advance\@tempcntz by1\fi
+\ifseifuflag \xdef#3{-\the\@tempcntz}%
+\else\xdef#3{\the\@tempcntz}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Size Reduction of Formulas}
+%
+% \begin{macro}{\LineTemp}
+% The macro |\LineTemp| is used to redefine the |\line| commond of
+% the \LaTeXe{} picture environment. Thereby, the macro
+% |\LineTemp(a,b){c}| is transformed into the macro
+% |\drawline(0,0)(c, ca/b)| for epic.sty, where |ca/b| is
+% calculated by the macro |\DIVIDE| defined above.
+%
+% \begin{macrocode}
+\newcount\@xArg \newcount\@yArg
+\def\LineTemp(#1,#2)#3{\begingroup
+\@xArg #1\relax \@yArg #2\relax
+\ifnum\@xArg<0 \@tempcntx=-#3 \else
+\ifnum\@xArg>0 \@tempcntx=#3 \else \@tempcntx=0 \fi\fi
+\@tempcnty=#3
+\multiply\@tempcnty by\@yArg\relax
+\ifnum\@tempcnty<0 \@tempcnty=-\@tempcnty\fi
+\ifnum\@xArg<0 \@xArg=-\@xArg\fi
+\ifnum\@xArg=0 \edef\RR{#3}\else
+{\DIVIDE{\@tempcnty}{\@xArg}\RR}\fi
+\@tempcnty=\RR%
+\ifnum\@yArg<0 \ifnum\@tempcnty>0 \@tempcnty=-\@tempcnty\fi\fi
+\drawline(0,0)(\the\@tempcntx,\the\@tempcnty)%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The if-phrase |\ifsizereduction| is to determine whether
+% size-reduction is carried out or not.
+% Then, |\LineTemp| is substituted for the original |\line|
+% if |\sizereductiontrue| is declared and if |\unitlength|
+% is smaller than 0.1pt.
+%
+% \begin{macro}{\line}
+% \begin{macro}{\ifsizereduction}
+% \begin{macrocode}
+\RequirePackage{epic}%
+\newif\ifsizereduction \sizereductionfalse
+%\let\@ldline=\line
+\def\reduced@line(#1,#2)#3{\ifsizereduction
+\ifdim\unitlength<0.1pt \LineTemp(#1,#2){#3}\else
+\@ldline(#1,#2){#3}\fi
+\else\@ldline(#1,#2){#3}\fi}
+\let\line=\reduced@line
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The command |\changeunitlength| is used to set |\unitlength|
+% and to declare |\sizereductiontrue|
+% if |\unitlength| is smaller than 0.1pt.
+% The font size of substituents is changed by |\substfontsize|
+% according to the size reduction.
+%
+% \changes{v4.00}{2002/5/30}{Added: \cs{substfontsize}}
+%
+% \begin{macro}{\@changeunitlength}
+% \begin{macrocode}
+\def\@changeunitlength#1{\unitlength=#1\relax
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else\let\substfontsize=\normalsize
+\fi}
+\let\changeunitlength=\@changeunitlength
+% \end{macrocode}
+% \end{macro}
+%
+% The reduced setting is the original LaTeX picture environment but
+% include the size-reduction mechanism.
+% To switch the size-reduction meachism and the pstricks mechanism,
+% we can use a switching command such as |\originalpicture|.
+% \changes{v3.00}{2002/4/30}{New environment: sfpicture}
+%
+% \begin{macro}{\reducedsizepicture}
+% \begin{macrocode}
+\def\reducedsizepicture{%
+\@ifnextchar[{\reduced@picture}{\reduced@picture[0.1pt]}}
+\def\reduced@picture[#1]{%
+\sizereductiontrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\Put@Direct=\put
+\let\Multiput@Direct=\multiput
+\let\thicklines=\@ldthicklines
+\let\thinlines=\@ldthinlines
+\let\line=\reduced@line
+\let\dotorline=\d@t@rline
+\let\Put@Line=\Put@@Line
+\let\Put@sCircle=\Put@@sCircle
+\let\Put@oCircle=\Put@@oCircle
+\xymtexpsswfalse
+\let\changeunitlength=\@changeunitlength
+\changeunitlength{#1}}
+\reducedsizepicture%size-reduction setting
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The command |\lineslope| of epic.sty has been redefined
+% to give a more precise result.
+%
+% \begin{macro}{\lineslope}
+% \begin{macrocode}
+\let\oldlineslope=\lineslope%used only in the manual
+\def\lineslope(#1,#2){%
+\begingroup
+\ifdim #1 <0pt \@xdim= -#1 \else\@xdim=#1\fi
+\ifdim #2 <0pt \@ydim= -#2 \else\@ydim=#2\fi
+%\typeout{LLL= \the#1, \the#2}
+\multiply\@xdim by10\relax%by S. Fujita 2001/6/20
+\multiply\@ydim by10\relax%by S. Fujita 2001/6/20
+%\typeout{xdim,ydim= \the\@xdim, \the\@ydim}
+\ifdim\@xdim >\@ydim \@tempdima=\@xdim \@xdim=\@ydim \@ydim=\@tempdima
+\@flippedargstrue\else\@flippedargsfalse\fi% x < y
+\ifdim\@ydim >1pt \@tempcntx=\@ydim
+ \divide\@tempcntx by 65536% now \@tempcntx=integral part of #1.
+ \divide\@xdim \@tempcntx\fi
+%\typeout{xdim: \the\@xdim}%
+\ifdim\@xdim <.083333pt \@xarg=1 \@yarg=0
+ \else\ifdim\@xdim <.183333pt \@xarg=6 \@yarg=1
+ \else\ifdim\@xdim <.225pt \@xarg=5 \@yarg=1
+ \else\ifdim\@xdim <.291666pt \@xarg=4 \@yarg=1
+ \else\ifdim\@xdim <.366666pt \@xarg=3 \@yarg=1
+ \else\ifdim\@xdim <.45pt \@xarg=5 \@yarg=2
+ \else\ifdim\@xdim <.55pt \@xarg=2 \@yarg=1
+ \else\ifdim\@xdim <.633333pt \@xarg=5 \@yarg=3
+ \else\ifdim\@xdim <.708333pt \@xarg=3 \@yarg=2
+ \else\ifdim\@xdim <.775pt \@xarg=4 \@yarg=3
+ \else\ifdim\@xdim <.816666pt \@xarg=5 \@yarg=4
+ \else\ifdim\@xdim <.916666pt \@xarg=6 \@yarg=5
+ \else \@xarg=1 \@yarg=1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\if@flippedargs\relax\else\@tempcntx=\@xarg \@xarg=\@yarg
+ \@yarg=\@tempcntx\fi
+\ifdim #1 <0pt \global\@xarg= -\@xarg\else\global\@xarg= \@xarg\fi
+\ifdim #2 <0pt \global\@yarg= -\@yarg\else\global\@yarg= \@yarg\fi
+%%\typeout{closest slope integers = \the\@xarg, \the\@yarg}
+\endgroup}
+%</sizeredc>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/sizeredc.ins b/macros/latex/contrib/xymtex/base/sizeredc.ins
new file mode 100644
index 0000000000..8a24083df5
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/sizeredc.ins
@@ -0,0 +1,49 @@
+\def\batchfile{sizeredc.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 2001, 2002, 2004,2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Released on June 20, 2001 version 1.00
+Released on April 30, 2002 version 1.01
+Released on Auguts 30, 2004 version 4.01 (for XyMTeX 4.01)
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files sizeredc.dtx and sizeredc.ins
+and the derived file sizeredc.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{sizeredc.drv}{t}{%
+ \from{sizeredc.dtx}{driver}}
+
+\generateFile{sizeredc.sty}{t}{%
+ \from{sizeredc.dtx}{sizeredc}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/sizeredc.sty b/macros/latex/contrib/xymtex/base/sizeredc.sty
new file mode 100644
index 0000000000..d3a7e3deb2
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/sizeredc.sty
@@ -0,0 +1,171 @@
+%%
+%% This is file `sizeredc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sizeredc.dtx (with options: `sizeredc')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 2001, 2002, 2004,2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Released on June 20, 2001 version 1.00
+%% Released on April 30, 2002 version 1.01
+%% Released on Auguts 30, 2004 version 4.01 (for XyMTeX 4.01)
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files sizeredc.dtx and sizeredc.ins
+%% and the derived file sizeredc.sty.
+%%
+%% =======================================
+%%
+%% File: sizeredc.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{sizeredc}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\newcount\@tempcntx \newcount\@tempcnty \newcount\@tempcntz
+\newif\ifseifuflag \seifuflagfalse
+\def\DIVIDE#1#2#3{%
+\seifuflagfalse \@tempcntx=#1
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\seifuflagtrue\fi
+\divide\@tempcntx by#2\relax
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx
+\ifseifuflag \seifuflagfalse \else \seifuflagtrue\fi\fi
+\@tempcntz=\@tempcntx%%store
+\@tempcnty=\@tempcntx \multiply\@tempcnty by#2%
+\ifnum\@tempcnty<0 \@tempcnty=-\@tempcnty\fi
+\@tempcntx=#1%
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\fi
+\advance\@tempcntx by-\@tempcnty%
+\multiply\@tempcntx by10 \edef\s{\the\@tempcntx}%
+\divide\@tempcntx by#2
+\ifnum\@tempcntx<0 \@tempcntx=-\@tempcntx\fi
+\ifnum\@tempcntx>4\relax \advance\@tempcntz by1\fi
+\ifseifuflag \xdef#3{-\the\@tempcntz}%
+\else\xdef#3{\the\@tempcntz}\fi}
+\newcount\@xArg \newcount\@yArg
+\def\LineTemp(#1,#2)#3{\begingroup
+\@xArg #1\relax \@yArg #2\relax
+\ifnum\@xArg<0 \@tempcntx=-#3 \else
+\ifnum\@xArg>0 \@tempcntx=#3 \else \@tempcntx=0 \fi\fi
+\@tempcnty=#3
+\multiply\@tempcnty by\@yArg\relax
+\ifnum\@tempcnty<0 \@tempcnty=-\@tempcnty\fi
+\ifnum\@xArg<0 \@xArg=-\@xArg\fi
+\ifnum\@xArg=0 \edef\RR{#3}\else
+{\DIVIDE{\@tempcnty}{\@xArg}\RR}\fi
+\@tempcnty=\RR%
+\ifnum\@yArg<0 \ifnum\@tempcnty>0 \@tempcnty=-\@tempcnty\fi\fi
+\drawline(0,0)(\the\@tempcntx,\the\@tempcnty)%
+\endgroup}
+\RequirePackage{epic}%
+\newif\ifsizereduction \sizereductionfalse
+\def\reduced@line(#1,#2)#3{\ifsizereduction
+\ifdim\unitlength<0.1pt \LineTemp(#1,#2){#3}\else
+\@ldline(#1,#2){#3}\fi
+\else\@ldline(#1,#2){#3}\fi}
+\let\line=\reduced@line
+\def\@changeunitlength#1{\unitlength=#1\relax
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else\let\substfontsize=\normalsize
+\fi}
+\let\changeunitlength=\@changeunitlength
+\def\reducedsizepicture{%
+\@ifnextchar[{\reduced@picture}{\reduced@picture[0.1pt]}}
+\def\reduced@picture[#1]{%
+\sizereductiontrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\Put@Direct=\put
+\let\Multiput@Direct=\multiput
+\let\thicklines=\@ldthicklines
+\let\thinlines=\@ldthinlines
+\let\line=\reduced@line
+\let\dotorline=\d@t@rline
+\let\Put@Line=\Put@@Line
+\let\Put@sCircle=\Put@@sCircle
+\let\Put@oCircle=\Put@@oCircle
+\xymtexpsswfalse
+\let\changeunitlength=\@changeunitlength
+\changeunitlength{#1}}
+\reducedsizepicture%size-reduction setting
+\let\oldlineslope=\lineslope%used only in the manual
+\def\lineslope(#1,#2){%
+\begingroup
+\ifdim #1 <0pt \@xdim= -#1 \else\@xdim=#1\fi
+\ifdim #2 <0pt \@ydim= -#2 \else\@ydim=#2\fi
+\multiply\@xdim by10\relax%by S. Fujita 2001/6/20
+\multiply\@ydim by10\relax%by S. Fujita 2001/6/20
+\ifdim\@xdim >\@ydim \@tempdima=\@xdim \@xdim=\@ydim \@ydim=\@tempdima
+\@flippedargstrue\else\@flippedargsfalse\fi% x < y
+\ifdim\@ydim >1pt \@tempcntx=\@ydim
+ \divide\@tempcntx by 65536% now \@tempcntx=integral part of #1.
+ \divide\@xdim \@tempcntx\fi
+\ifdim\@xdim <.083333pt \@xarg=1 \@yarg=0
+ \else\ifdim\@xdim <.183333pt \@xarg=6 \@yarg=1
+ \else\ifdim\@xdim <.225pt \@xarg=5 \@yarg=1
+ \else\ifdim\@xdim <.291666pt \@xarg=4 \@yarg=1
+ \else\ifdim\@xdim <.366666pt \@xarg=3 \@yarg=1
+ \else\ifdim\@xdim <.45pt \@xarg=5 \@yarg=2
+ \else\ifdim\@xdim <.55pt \@xarg=2 \@yarg=1
+ \else\ifdim\@xdim <.633333pt \@xarg=5 \@yarg=3
+ \else\ifdim\@xdim <.708333pt \@xarg=3 \@yarg=2
+ \else\ifdim\@xdim <.775pt \@xarg=4 \@yarg=3
+ \else\ifdim\@xdim <.816666pt \@xarg=5 \@yarg=4
+ \else\ifdim\@xdim <.916666pt \@xarg=6 \@yarg=5
+ \else \@xarg=1 \@yarg=1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\if@flippedargs\relax\else\@tempcntx=\@xarg \@xarg=\@yarg
+ \@yarg=\@tempcntx\fi
+\ifdim #1 <0pt \global\@xarg= -\@xarg\else\global\@xarg= \@xarg\fi
+\ifdim #2 <0pt \global\@yarg= -\@yarg\else\global\@yarg= \@yarg\fi
+%%\typeout{closest slope integers = \the\@xarg, \the\@yarg}
+\endgroup}
+\endinput
+%%
+%% End of file `sizeredc.sty'.
diff --git a/macros/latex/contrib/xymtex/base/steroid.BAK b/macros/latex/contrib/xymtex/base/steroid.BAK
new file mode 100644
index 0000000000..3c7f932a1f
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/steroid.BAK
@@ -0,0 +1,775 @@
+%%
+%% This is file `steroid.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% steroid.dtx (with options: `steroid')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2009, 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.00 for XyMTeX version 4.04 Released on June 15, 2009
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files steroid.dtx and steroid.ins
+%% and the derived file steroid.sty.
+%%
+%% =======================================
+%%
+%% File: steroid.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{steroid}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF}% Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{steroidchain}{\input carom.sty\relax}{}
+\@ifundefined{ylchairiposition}{\input ccycle.sty\relax}{}
+\unitlength=0.1pt
+\def\gonanealpha{\@ifnextchar[{\@gonanealpha}{\@gonanealpha[]}}
+\def\@gonanealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonanebeta{\@ifnextchar[{\@gonanebeta}{\@gonanebeta[]}}
+\def\@gonanebeta[#1]#2{%
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonane{\@ifnextchar[{\@gonane}{\@gonane[]}}
+\def\@gonane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\estranealpha{\@ifnextchar[{\@estranealpha}{\@estranealpha[]}}
+\def\@estranealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estranebeta{\@ifnextchar[{\@estranebeta}{\@estranebeta[]}}
+\def\@estranebeta[#1]#2{
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estrane{\@ifnextchar[{\@estrane}{\@estrane[]}}
+\def\@estrane[#1]#2{
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\steroidnochainandrostane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H}}
+\def\androstanealpha{\@ifnextchar[{\@androstanealpha}{\@androstanealpha[]}}
+\def\@androstanealpha[#1]#2{\steroidnochainandrostane[#1]{#2;5A==H}}
+\def\androstanebeta{\@ifnextchar[{\@androstanebeta}{\@androstanebeta[]}}
+\def\@androstanebeta[#1]#2{\steroidnochainandrostane[#1]{#2;5B==H}}
+\def\androstane{\@ifnextchar[{\@androstane}{\@androstane[]}}
+\def\@androstane[#1]#2{\steroidnochainandrostane[#1]{#2}}
+\def\steroidethylchain{\@ifnextchar[{\@steroidethylchain[@}{\@steroidethylchain[Z]}}
+\def\@steroidethylchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidethylchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidethylchain macro%
+\def\steroidethylchainpregnane[#1]#2{%
+\steroidethylchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H}}}
+\def\pregnanealpha{\@ifnextchar[{\@pregnanealpha}{\@pregnanealpha[]}}
+\def\@pregnanealpha[#1]#2{\steroidethylchainpregnane[#1]{#2;5A==H}}
+\def\pregnanebeta{\@ifnextchar[{\@pregnanebeta}{\@pregnanebeta[]}}
+\def\@pregnanebeta[#1]#2{\steroidethylchainpregnane[#1]{#2;5B==H}}
+\def\pregnane{\@ifnextchar[{\@pregnane}{\@pregnane[]}}
+\def\@pregnane[#1]#2{\steroidethylchainpregnane[#1]{#2}}
+\def\steroidChain{\@ifnextchar[{\@steroidChain[@}{\@steroidChain[Z]}}
+\def\@steroidChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 25 positions
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 26 positions
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-709}\fi%%set 27 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+ \Put@Line(1368,1012)(5,-3){171}% %bond 24-25
+ \Put@Line(1539,909)(5,3){171}% %bond 25-26
+ \Put@Line(1539,909)(0,-1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \else\if\@tmpb e%
+ \Put@Line(1372,970)(5,-3){126}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1545,952)(5,3){126}% %double bond 25-26
+ \else\if\@tmpb F%
+ \Put@Line(1580,890)(5,3){126}% %double bond 25-26(alternative)
+ \else\if\@tmpb g%
+ \Put@Line(1580,890)(0,-1){148}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidChain macro%
+\def\steroidChaindiMe[#1]#2{%
+\steroidChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestaneAlpha{\@ifnextchar[{\@cholestaneAlpha}{\@cholestaneAlpha[]}}
+\def\@cholestaneAlpha[#1]#2{\steroidChaindiMe[#1]{#2;5A==H}}
+\def\cholestaneBeta{\@ifnextchar[{\@cholestaneBeta}{\@cholestaneBeta[]}}
+\def\@cholestaneBeta[#1]#2{\steroidChaindiMe[#1]{#2;5B==H}}
+\def\cholestane{\@ifnextchar[{\@cholestane}{\@cholestane[]}}
+\def\@cholestane[#1]#2{\steroidChaindiMe[#1]{#2}}
+\def\ergostaneAlpha{\@ifnextchar[{\@ergostaneAlpha}{\@ergostaneAlpha[]}}
+\def\@ergostaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostaneBeta{\@ifnextchar[{\@ergostaneBeta}{\@ergostaneBeta[]}}
+\def\@ergostaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostane{\@ifnextchar[{\@ergostane}{\@ergostane[]}}
+\def\@ergostane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\campestaneAlpha{\@ifnextchar[{\@campestaneAlpha}{\@campestaneAlpha[]}}
+\def\@campestaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestaneBeta{\@ifnextchar[{\@campestaneBeta}{\@campestaneBeta[]}}
+\def\@campestaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestane{\@ifnextchar[{\@campestane}{\@campestane[]}}
+\def\@campestane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\poriferastaneAlpha{\@ifnextchar[{\@poriferastaneAlpha}{\@poriferastaneAlpha[]}}
+\def\@poriferastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastaneBeta{\@ifnextchar[{\@poriferastaneBeta}{\@poriferastaneBeta[]}}
+\def\@poriferastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastane{\@ifnextchar[{\@poriferastane}{\@poriferastane[]}}
+\def\@poriferastane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\stigmastaneAlpha{\@ifnextchar[{\@stigmastaneAlpha}{\@stigmastaneAlpha[]}}
+\def\@stigmastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastaneBeta{\@ifnextchar[{\@stigmastaneBeta}{\@stigmastaneBeta[]}}
+\def\@stigmastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastane{\@ifnextchar[{\@stigmastane}{\@stigmastane[]}}
+\def\@stigmastane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\steroidShortChain{\@ifnextchar[{\@steroidShortChain[@}{\@steroidShortChain[Z]}}
+\def\@steroidShortChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidShortChain macro%
+\def\steroidShortChainMe[#1]#2{%
+\steroidShortChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholaneAlpha{\@ifnextchar[{\@cholaneAlpha}{\@cholaneAlpha[]}}
+\def\@cholaneAlpha[#1]#2{\steroidShortChainMe[#1]{#2;5A==H}}
+\def\cholaneBeta{\@ifnextchar[{\@cholaneBeta}{\@cholaneBeta[]}}
+\def\@cholaneBeta[#1]#2{\steroidShortChainMe[#1]{#2;5B==H}}
+\def\cholane{\@ifnextchar[{\@cholane}{\@cholane[]}}
+\def\@cholane[#1]#2{\steroidShortChainMe[#1]{#2}}
+\def\steroidshortchain{\@ifnextchar[{\@steroidshortchain[@}{\@steroidshortchain[Z]}}
+\def\@steroidshortchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidshortchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\end{sfpicture}}% %end of \steroidshortchain macro%
+\def\steroidshortchainMe[#1]#2{%
+\steroidshortchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholanealpha{\@ifnextchar[{\@cholanealpha}{\@cholanealpha[]}}
+\def\@cholanealpha[#1]#2{\steroidshortchainMe[#1]{#2;5A==H}}
+\def\cholanebeta{\@ifnextchar[{\@cholanebeta}{\@cholanebeta[]}}
+\def\@cholanebeta[#1]#2{\steroidshortchainMe[#1]{#2;5B==H}}
+\def\cholanE{\@ifnextchar[{\@cholanE}{\@cholanE[]}}
+\def\@cholanE[#1]#2{\steroidshortchainMe[#1]{#2}}
+\def\steroidchaindiMe[#1]#2{%
+\steroidchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestanealpha{\@ifnextchar[{\@cholestanealpha}{\@cholestanealpha[]}}
+\def\@cholestanealpha[#1]#2{\steroidchaindiMe[#1]{#2;5A==H}}
+\def\cholestanebeta{\@ifnextchar[{\@cholestanebeta}{\@cholestanebeta[]}}
+\def\@cholestanebeta[#1]#2{\steroidchaindiMe[#1]{#2;5B==H}}
+\def\cholestanE{\@ifnextchar[{\@cholestanE}{\@cholestanE[]}}
+\def\@cholestanE[#1]#2{\steroidchaindiMe[#1]{#2}}
+\def\ergostanealpha{\@ifnextchar[{\@ergostanealpha}{\@ergostanealpha[]}}
+\def\@ergostanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanebeta{\@ifnextchar[{\@ergostanebeta}{\@ergostanebeta[]}}
+\def\@ergostanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanE{\@ifnextchar[{\@ergostanE}{\@ergostanE[]}}
+\def\@ergostanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\campestanealpha{\@ifnextchar[{\@campestanealpha}{\@campestanealpha[]}}
+\def\@campestanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanebeta{\@ifnextchar[{\@campestanebeta}{\@campestanebeta[]}}
+\def\@campestanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanE{\@ifnextchar[{\@campestanE}{\@campestanE[]}}
+\def\@campestanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\poriferastanealpha{\@ifnextchar[{\@poriferastanealpha}{\@poriferastanealpha[]}}
+\def\@poriferastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanebeta{\@ifnextchar[{\@poriferastanebeta}{\@poriferastanebeta[]}}
+\def\@poriferastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanE{\@ifnextchar[{\@poriferastanE}{\@poriferastanE[]}}
+\def\@poriferastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\stigmastanealpha{\@ifnextchar[{\@stigmastanealpha}{\@stigmastanealpha[]}}
+\def\@stigmastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanebeta{\@ifnextchar[{\@stigmastanebeta}{\@stigmastanebeta[]}}
+\def\@stigmastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanE{\@ifnextchar[{\@stigmastanE}{\@stigmastanE[]}}
+\def\@stigmastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\steroidspiro{\@ifnextchar[{\@steroidspiro[@}{\@steroidspiro[Z]}}
+\def\@steroidspiro[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-400}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-1109}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-1212}\fi%%set 26 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidspiro' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \dotorline(1197,909)(0,1){140}/(1197,909)(1197,1049)% 22-O (up)
+ {\thicklines
+ \Put@Line(1197,909)(5,-3){171}% %bond 22-23
+ }%
+ \Put@Line(1539,909)(-5,-3){171}% %bond 24-23
+ \Put@Line(1539,909)(0,1){200}% %bond 24-25
+ \Put@Line(1539,1109)(-5,3){171}% %bond 25-26
+ \Put@Line(1368,1212)(-5,-3){120}% %bond 26-O (down)
+ \Put@Direct(1197,1109){\makebox(0,0){O}}%
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,930)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1366,848)(5,3){140}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1504,930)(0,1){148}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1366,1166)(5,-3){140}% %double bond 26-25
+ \else\if\@tmpb i%
+ \Put@Line(1366,1166)(-5,-3){110}% %double bond 26-O
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1368,806){\setsixringv{#2}{-25}{0}{2}{0}}%for 26
+\Put@Direct(1368,806){\setsixringv{#2}{-23}{1}{3}{0}}%for 25
+\Put@Direct(1368,806){\setsixringv{#2}{-21}{2}{4}{0}}%for 24
+\Put@Direct(1368,806){\setsixringv{#2}{-19}{3}{5}{0}}%for 23
+\end{sfpicture}}% %end of \steroidspiro macro%
+\def\steroidspirotriMe[#1]#2{%
+\steroidspiro[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\spirostanalpha{\@ifnextchar[{\@spirostanalpha}{\@spirostanalpha[]}}
+\def\@spirostanalpha[#1]#2{\steroidspirotriMe[#1]{#2;5A==H;{25}A==CH$_{3}$}}
+\def\spirostanbeta{\@ifnextchar[{\@spirostanbeta}{\@spirostanbeta[]}}
+\def\@spirostanbeta[#1]#2{\steroidspirotriMe[#1]{#2;5B==H;{25}B==CH$_{3}$}}
+\def\spirostan{\@ifnextchar[{\@spirostan}{\@spirostan[]}}
+\def\@spirostan[#1]#2{\steroidspirotriMe[#1]{#2;{{25}}==\null}}
+\def\spirostannor{\@ifnextchar[{\@spirostannor}{\@spirostannor[]}}
+\def\@spirostannor[#1]#2{\steroidspirotriMe[#1]{#2}}
+\def\steroidfuros{\@ifnextchar[{\@steroidfuros[@}{\@steroidfuros[Z]}}
+\def\@steroidfuros[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1212}\fi%%set 26 position
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1881}\def\@@yli{-909}\fi%%set 27 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidfuros' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \Put@Line(1197,909)(5,3){171}% %bond 22-23
+ \Put@Line(1368,1012)(5,-3){171}% %bond 23-24
+ \Put@Line(1539,909)(5,3){171}% %bond 24-25
+ \Put@Line(1710,1012)(5,-3){171}% %bond 25-27
+ \Put@Line(1710,1012)(0,1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,900)(5,3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1410,1022)(5,-3){126}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1582,900)(5,3){126}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1740,1035)(0,1){150}% %double bond 25-26
+ \else\if\@tmpb i%
+ \Put@Line(1752,1022)(5,-3){126}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1197,503){\setsixringv{#2}{-21}{0}{2}{0}}%for 22
+\Put@Direct(1368,606){\setsixringv{#2}{-22}{0}{2}{0}}%for 23
+\Put@Direct(1539,909){\setsixringv{#2}{-20}{3}{5}{0}}%for 24
+\Put@Direct(1710,1012){\setatombond{#2}{-24}{3}}% % for 25
+\Put@Direct(1539,909){\setsixringv{#2}{-24}{1}{3}{0}}%for 26
+\Put@Direct(1710,606){\setsixringv{#2}{-25}{1}{3}{0}}%for 27
+\end{sfpicture}}% %end of \steroidfuros macro%
+\def\steroidfurostriMe[#1]#2{%
+\steroidfuros[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\furostanalpha{\@ifnextchar[{\@furostanalpha}{\@furostanalpha[]}}
+\def\@furostanalpha[#1]#2{\steroidfurostriMe[#1]{#2;5A==H}}
+\def\furostanbeta{\@ifnextchar[{\@furostanbeta}{\@furostanbeta[]}}
+\def\@furostanbeta[#1]#2{\steroidfurostriMe[#1]{#2;5B==H}}
+\def\furostan{\@ifnextchar[{\@furostan}{\@furostan[]}}
+\def\@furostan[#1]#2{\steroidfurostriMe[#1]{#2}}
+\newif\ifpyranoseChairalpha
+\pyranoseChairalphatrue
+\def\pyranoseChairi{\@ifnextchar[{\@pyranoseChairi}{\@pyranoseChairi[r]}}
+\def\@pyranoseChairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){140}/(0,0)(140,187)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){140}% % bond 1 to 6
+\fi
+ \Put@Line(573,91)(-3,1){360}% % 5 to 6
+ \Put@Direct(130,190){O}%
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairi macro
+\def\pyranoseChairii{\@ifnextchar[{\@pyranoseChairii}{\@pyranoseChairii[r]}}
+\def\@pyranoseChairii[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){170}/(0,0)(170,227)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+\fi
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ \Put@Direct(230,50){O}%
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){360}% % 3 to 2
+ \Put@Line(0,0)(3,1){230}% % 1 to 2
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairii macro
+\endinput
+%%
+%% End of file `steroid.sty'.
diff --git a/macros/latex/contrib/xymtex/base/steroid.dtx b/macros/latex/contrib/xymtex/base/steroid.dtx
new file mode 100644
index 0000000000..20f8f200ab
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/steroid.dtx
@@ -0,0 +1,1317 @@
+% \iffalse meta-comment
+%% File: steroid.dtx
+%
+% Copyright 2009, 2010 by Shinsaku Fujita
+% Copyright for the XyMTeX system 1993,1996,1998,2001,2002,2004,2005,2009 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% steroid.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files steroid.dtx and steroid.ins
+% and the derived file steroid.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{steroid}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1778}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2009/06/15}{The first version}
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{steroid.dtx}[2010/10/01 v5.00 XyMTeX{} package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{steroid.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Steroid derivatives by {\sffamily steroid.sty}
+of \XyMTeX{} (\fileversion) }
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun Kanagawa-ken, 258-0019, Japan.
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{steroid.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{steroid:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% steroid & steroid.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*steroid>
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{steroid}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{List of commands for steroid.sty}
+%
+% \begin{verbatim}
+% *********************************
+% * steroid.sty: list of commands *
+% *********************************
+%
+% <Macros for drawing basic steroids>
+%
+% \gonane
+% \gonanealpha
+% \gonanebeta
+%
+% \estrane
+% \estranealpha
+% \estranebeta
+%
+% \steroidnochainandrostane
+% \androstane
+% \androstanealpha
+% \androstanebeta
+%
+% \steroidethylchain
+% \steroidethylchainpregnane
+% \pregnane
+% \pregnanealpha
+% \pregnanebeta
+%
+% <Macros for drawing steroids with chains (modern type)>
+% C22-C23: transoid
+%
+% \steroidChain
+% \steroidChaindiMe
+% \cholestaneAlpha
+% \cholestaneBeta
+% \cholestane
+%
+% \ergostaneAlpha
+% \ergostaneBeta
+% \ergostane
+%
+% \campestaneAlpha
+% \campestaneBeta
+% \campestane
+%
+% \poriferastaneAlpha
+% \poriferastaneBeta
+% \poriferastane
+%
+% \stigmastaneAlpha
+% \stigmastaneBeta
+% \stigmastane
+%
+% <Macros for drawing steroids with short chains (modern type)>
+% C22-C23: transoid
+%
+% \steroidShortChain
+% \steroidShortChainMe
+% \cholaneAlpha
+% \cholaneBeta
+%
+% <Macros for drawing steroids with short chains (old type)>
+% C22-C23: transoid
+%
+% \steroidshortchain
+% \steroidshortchainMe
+% \cholanealpha
+% \cholanebeta
+% \cholanE
+%
+% <Macros for drawing steroids with chains (old type)>
+% C22-C23: cisoid
+%
+% \steroidchaindiMe
+% \cholestanealpha
+% \cholestanebeta
+% \cholestanE
+%
+% \ergostanealpha
+% \ergostanebeta
+% \ergostanE
+%
+% \campestanealpha
+% \campestanebeta
+% \campestanE
+%
+% \poriferastanealpha
+% \poriferastanebeta
+% \poriferastanE
+%
+% \stigmastanealpha
+% \stigmastanebeta
+% \stigmastanE
+%
+% <Macros for drawing spirostans>
+%
+% \steroidspiro
+% \steroidspirotriMe
+% \spirostanalpha
+% \spirostanbeta
+% \spirostan
+% \spirostannor
+%
+% <Macros for drawing furostans>
+%
+% \steroidfuros
+% \steroidspirotriMe
+% \furostanalpha
+% \furostanbeta
+% \furostan
+%
+% <Macros for drawing spiro pyranoses>
+%
+% \pyranoseChairi
+% \pyranoseChairii
+%
+% \end{verbatim}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf steroid.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{steroidchain}{\input carom.sty\relax}{}
+\@ifundefined{ylchairiposition}{\input ccycle.sty\relax}{}
+\unitlength=0.1pt
+% \end{macrocode}
+%
+% The commands |\steroid| and |\steroidchain| for drawing raw skeletons of
+% steroid derivatives have been already defined in {\sf carom.sty}, which
+% is loaded automatically as above.
+%
+% \section{Macros for Steroids with No Side Chains}
+%
+% By starting from the commands |\steroid| defined in the {\sf carom.sty},
+% several intermediate commands are defined to draw steroid derivatives
+% without side chains.
+%
+% \begin{macro}{\gonane}
+% \begin{macro}{\gonanealpha}
+% \begin{macro}{\gonanebeta}
+% \begin{macro}{\estrane}
+% \begin{macro}{\estranealpha}
+% \begin{macro}{\estranebeta}
+% \begin{macrocode}
+% ***********************************************
+% * For drawing side chains of the common style *
+% ***********************************************
+% *******************
+% * gonane, estrane *
+% *******************
+\def\gonanealpha{\@ifnextchar[{\@gonanealpha}{\@gonanealpha[]}}
+\def\@gonanealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonanebeta{\@ifnextchar[{\@gonanebeta}{\@gonanebeta[]}}
+\def\@gonanebeta[#1]#2{%
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonane{\@ifnextchar[{\@gonane}{\@gonane[]}}
+\def\@gonane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\estranealpha{\@ifnextchar[{\@estranealpha}{\@estranealpha[]}}
+\def\@estranealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estranebeta{\@ifnextchar[{\@estranebeta}{\@estranebeta[]}}
+\def\@estranebeta[#1]#2{
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estrane{\@ifnextchar[{\@estrane}{\@estrane[]}}
+\def\@estrane[#1]#2{
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\steroidnochainandrostane}
+% \begin{macro}{\androstane}
+% \begin{macro}{\androstanealpha}
+% \begin{macro}{\androstanebeta}
+% \begin{macrocode}
+% **************
+% * androstane *
+% **************
+\def\steroidnochainandrostane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H}}
+\def\androstanealpha{\@ifnextchar[{\@androstanealpha}{\@androstanealpha[]}}
+\def\@androstanealpha[#1]#2{\steroidnochainandrostane[#1]{#2;5A==H}}
+\def\androstanebeta{\@ifnextchar[{\@androstanebeta}{\@androstanebeta[]}}
+\def\@androstanebeta[#1]#2{\steroidnochainandrostane[#1]{#2;5B==H}}
+\def\androstane{\@ifnextchar[{\@androstane}{\@androstane[]}}
+\def\@androstane[#1]#2{\steroidnochainandrostane[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with a Ethyl Chain}
+%
+% After the definition of the macro |\steroidethylchain| for
+% drawing steroids with an ethyl chain, several commands for
+% drawing pregnane derivative are defined.
+%
+% \begin{macro}{\steroidethylchain}
+% \begin{macrocode}
+\def\steroidethylchain{\@ifnextchar[{\@steroidethylchain[@}{\@steroidethylchain[Z]}}
+\def\@steroidethylchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidethylchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+%\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+%\Put@Direct(1397,709){\setatombond{#2}{-24}{4}}% % for 25
+\end{sfpicture}}% %end of \steroidethylchain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidethylchainpregnane}
+% \begin{macro}{\pregnane}
+% \begin{macro}{\pregnanealpha}
+% \begin{macro}{\pregnanebeta}
+% \begin{macrocode}
+% ************
+% * pregnane *
+% ************
+\def\steroidethylchainpregnane[#1]#2{%
+\steroidethylchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H}}}
+\def\pregnanealpha{\@ifnextchar[{\@pregnanealpha}{\@pregnanealpha[]}}
+\def\@pregnanealpha[#1]#2{\steroidethylchainpregnane[#1]{#2;5A==H}}
+\def\pregnanebeta{\@ifnextchar[{\@pregnanebeta}{\@pregnanebeta[]}}
+\def\@pregnanebeta[#1]#2{\steroidethylchainpregnane[#1]{#2;5B==H}}
+\def\pregnane{\@ifnextchar[{\@pregnane}{\@pregnane[]}}
+\def\@pregnane[#1]#2{\steroidethylchainpregnane[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Chains (Modern Types)}
+%
+% For drawing steroids with side chains of modern expressions, the command |\steroidChain|
+% is created in addition to the previous command |\steroidchain| for drawing a side chain
+% of an old expression.
+%
+% \begin{macro}{\steroidChain}
+% \begin{macrocode}
+% ************************************************************
+% * Raw Skeleton for drawing side chains of the modern style *
+% ************************************************************
+\def\steroidChain{\@ifnextchar[{\@steroidChain[@}{\@steroidChain[Z]}}
+\def\@steroidChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 25 positions
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 26 positions
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-709}\fi%%set 27 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+ \Put@Line(1368,1012)(5,-3){171}% %bond 24-25
+ \Put@Line(1539,909)(5,3){171}% %bond 25-26
+ \Put@Line(1539,909)(0,-1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \else\if\@tmpb e%
+ \Put@Line(1372,970)(5,-3){126}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1545,952)(5,3){126}% %double bond 25-26
+ \else\if\@tmpb F%
+ \Put@Line(1580,890)(5,3){126}% %double bond 25-26(alternative)
+ \else\if\@tmpb g%
+ \Put@Line(1580,890)(0,-1){148}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidChain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidChaindiMe}
+% \begin{macrocode}
+\def\steroidChaindiMe[#1]#2{%
+\steroidChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+% \end{macrocode}
+% \end{macro}
+%
+% Sometimes, |\cholestane[{Z}{Zb}]{}| may be used in place of
+% |\cholestane[{Zb}]{}| because the latter gives an erroneous
+% result.
+%
+%
+% \begin{macro}{\cholestaneAlpha}
+% \begin{macro}{\cholestaneBeta}
+% \begin{macro}{\cholestane}
+% \begin{macro}{\ergostaneAlpha}
+% \begin{macro}{\ergostaneBeta}
+% \begin{macro}{\ergostane}
+% \begin{macro}{\campestaneAlpha}
+% \begin{macro}{\campestaneBeta}
+% \begin{macro}{\campestane}
+% \begin{macro}{\poriferastaneAlpha}
+% \begin{macro}{\poriferastaneBeta}
+% \begin{macro}{\poriferastane}
+% \begin{macro}{\stigmastaneAlpha}
+% \begin{macro}{\stigmastaneBeta}
+% \begin{macro}{\stigmastane}
+% \begin{macrocode}
+% *****************************************************
+% * Intermediate skeletons for drawing *
+% * cholestane, ergostane, campestane, poriferastane, *
+% * and stigmastane (the modern type) *
+% *****************************************************
+\def\cholestaneAlpha{\@ifnextchar[{\@cholestaneAlpha}{\@cholestaneAlpha[]}}
+\def\@cholestaneAlpha[#1]#2{\steroidChaindiMe[#1]{#2;5A==H}}
+\def\cholestaneBeta{\@ifnextchar[{\@cholestaneBeta}{\@cholestaneBeta[]}}
+\def\@cholestaneBeta[#1]#2{\steroidChaindiMe[#1]{#2;5B==H}}
+\def\cholestane{\@ifnextchar[{\@cholestane}{\@cholestane[]}}
+\def\@cholestane[#1]#2{\steroidChaindiMe[#1]{#2}}
+\def\ergostaneAlpha{\@ifnextchar[{\@ergostaneAlpha}{\@ergostaneAlpha[]}}
+\def\@ergostaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostaneBeta{\@ifnextchar[{\@ergostaneBeta}{\@ergostaneBeta[]}}
+\def\@ergostaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostane{\@ifnextchar[{\@ergostane}{\@ergostane[]}}
+\def\@ergostane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\campestaneAlpha{\@ifnextchar[{\@campestaneAlpha}{\@campestaneAlpha[]}}
+\def\@campestaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestaneBeta{\@ifnextchar[{\@campestaneBeta}{\@campestaneBeta[]}}
+\def\@campestaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestane{\@ifnextchar[{\@campestane}{\@campestane[]}}
+\def\@campestane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\poriferastaneAlpha{\@ifnextchar[{\@poriferastaneAlpha}{\@poriferastaneAlpha[]}}
+\def\@poriferastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastaneBeta{\@ifnextchar[{\@poriferastaneBeta}{\@poriferastaneBeta[]}}
+\def\@poriferastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastane{\@ifnextchar[{\@poriferastane}{\@poriferastane[]}}
+\def\@poriferastane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\stigmastaneAlpha{\@ifnextchar[{\@stigmastaneAlpha}{\@stigmastaneAlpha[]}}
+\def\@stigmastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastaneBeta{\@ifnextchar[{\@stigmastaneBeta}{\@stigmastaneBeta[]}}
+\def\@stigmastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastane{\@ifnextchar[{\@stigmastane}{\@stigmastane[]}}
+\def\@stigmastane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Short Chains (Modern Types)}
+%
+%
+% \begin{macro}{\steroidShortChain}
+% \begin{macrocode}
+% ******************************************************************
+% * Raw Skeleton for drawing short side chains of the modern style *
+% ******************************************************************
+\def\steroidShortChain{\@ifnextchar[{\@steroidShortChain[@}{\@steroidShortChain[Z]}}
+\def\@steroidShortChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+%\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidShortChain macro%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\steroidShortChainMe}
+% \begin{macrocode}
+\def\steroidShortChainMe[#1]#2{%
+\steroidShortChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\cholaneAlpha}
+% \begin{macro}{\cholaneBeta}
+% \begin{macro}{\cholane}
+% \begin{macrocode}
+% *****************************************************************
+% * Intermediate skeletons for drawing choranes (the modern type) *
+% *****************************************************************
+\def\cholaneAlpha{\@ifnextchar[{\@cholaneAlpha}{\@cholaneAlpha[]}}
+\def\@cholaneAlpha[#1]#2{\steroidShortChainMe[#1]{#2;5A==H}}
+\def\cholaneBeta{\@ifnextchar[{\@cholaneBeta}{\@cholaneBeta[]}}
+\def\@cholaneBeta[#1]#2{\steroidShortChainMe[#1]{#2;5B==H}}
+\def\cholane{\@ifnextchar[{\@cholane}{\@cholane[]}}
+\def\@cholane[#1]#2{\steroidShortChainMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Short Chains (Old Types)}
+%
+% \begin{macro}{\steroidshortchain}
+% \begin{macrocode}
+% ******************************************************
+% * Raw skeletons drawing side chains of the old style *
+% ******************************************************
+\def\steroidshortchain{\@ifnextchar[{\@steroidshortchain[@}{\@steroidshortchain[Z]}}
+\def\@steroidshortchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidshortchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\end{sfpicture}}% %end of \steroidshortchain macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidshortchainMe}
+% \begin{macro}{\cholanealpha}
+% \begin{macro}{\cholanebeta}
+% \begin{macro}{\cholanE}
+% \begin{macrocode}
+% ***********
+% * cholane *
+% ***********
+\def\steroidshortchainMe[#1]#2{%
+\steroidshortchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholanealpha{\@ifnextchar[{\@cholanealpha}{\@cholanealpha[]}}
+\def\@cholanealpha[#1]#2{\steroidshortchainMe[#1]{#2;5A==H}}
+\def\cholanebeta{\@ifnextchar[{\@cholanebeta}{\@cholanebeta[]}}
+\def\@cholanebeta[#1]#2{\steroidshortchainMe[#1]{#2;5B==H}}
+\def\cholanE{\@ifnextchar[{\@cholanE}{\@cholanE[]}}
+\def\@cholanE[#1]#2{\steroidshortchainMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Steroids with Chains (Old Types)}
+%
+% For drawing steroids with side chains of old expressions, the command |\steroidchain|
+% defined in {\sf carom.sty} is used.
+%
+% \begin{macro}{\steroidchaindiMe}
+% \begin{macro}{\cholestanealpha}
+% \begin{macro}{\cholestanebeta}
+% \begin{macro}{\cholestanE}
+% \begin{macro}{\ergostanealpha}
+% \begin{macro}{\ergostanebeta}
+% \begin{macro}{\ergostanE}
+% \begin{macro}{\campestanealpha}
+% \begin{macro}{\campestanebeta}
+% \begin{macro}{\campestanE}
+% \begin{macrocode}
+% ************************************************
+% * cholestane, ergostane, campestane (old type) *
+% ************************************************
+\def\steroidchaindiMe[#1]#2{%
+\steroidchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestanealpha{\@ifnextchar[{\@cholestanealpha}{\@cholestanealpha[]}}
+\def\@cholestanealpha[#1]#2{\steroidchaindiMe[#1]{#2;5A==H}}
+\def\cholestanebeta{\@ifnextchar[{\@cholestanebeta}{\@cholestanebeta[]}}
+\def\@cholestanebeta[#1]#2{\steroidchaindiMe[#1]{#2;5B==H}}
+\def\cholestanE{\@ifnextchar[{\@cholestanE}{\@cholestanE[]}}
+\def\@cholestanE[#1]#2{\steroidchaindiMe[#1]{#2}}
+\def\ergostanealpha{\@ifnextchar[{\@ergostanealpha}{\@ergostanealpha[]}}
+\def\@ergostanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanebeta{\@ifnextchar[{\@ergostanebeta}{\@ergostanebeta[]}}
+\def\@ergostanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanE{\@ifnextchar[{\@ergostanE}{\@ergostanE[]}}
+\def\@ergostanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\campestanealpha{\@ifnextchar[{\@campestanealpha}{\@campestanealpha[]}}
+\def\@campestanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanebeta{\@ifnextchar[{\@campestanebeta}{\@campestanebeta[]}}
+\def\@campestanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanE{\@ifnextchar[{\@campestanE}{\@campestanE[]}}
+\def\@campestanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\poriferastanealpha}
+% \begin{macro}{\poriferastanebeta}
+% \begin{macro}{\poriferastanE}
+% \begin{macro}{\stigmastanealpha}
+% \begin{macro}{\stigmastanebeta}
+% \begin{macro}{\stigmastanE}
+% \begin{macrocode}
+% *****************************************
+% * poriferastane, stigmastane (old type) *
+% *****************************************
+\def\poriferastanealpha{\@ifnextchar[{\@poriferastanealpha}{\@poriferastanealpha[]}}
+\def\@poriferastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanebeta{\@ifnextchar[{\@poriferastanebeta}{\@poriferastanebeta[]}}
+\def\@poriferastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanE{\@ifnextchar[{\@poriferastanE}{\@poriferastanE[]}}
+\def\@poriferastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\stigmastanealpha{\@ifnextchar[{\@stigmastanealpha}{\@stigmastanealpha[]}}
+\def\@stigmastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanebeta{\@ifnextchar[{\@stigmastanebeta}{\@stigmastanebeta[]}}
+\def\@stigmastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanE{\@ifnextchar[{\@stigmastanE}{\@stigmastanE[]}}
+\def\@stigmastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Spirostans}
+%
+% After the macro |\steroidspiro| is defined as a basic macro
+% several macros for drawing spirostans are defined.
+%
+% \begin{macro}{\steroidspiro}
+% \begin{macrocode}
+% ***************************************
+% * Raw skeleton for drawing spirostans *
+% ***************************************
+\def\steroidspiro{\@ifnextchar[{\@steroidspiro[@}{\@steroidspiro[Z]}}
+\def\@steroidspiro[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-400}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-1109}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-1212}\fi%%set 26 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidspiro' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \dotorline(1197,909)(0,1){140}/(1197,909)(1197,1049)% 22-O (up)
+ {\thicklines
+ \Put@Line(1197,909)(5,-3){171}% %bond 22-23
+ }%
+ \Put@Line(1539,909)(-5,-3){171}% %bond 24-23
+ \Put@Line(1539,909)(0,1){200}% %bond 24-25
+ \Put@Line(1539,1109)(-5,3){171}% %bond 25-26
+ \Put@Line(1368,1212)(-5,-3){120}% %bond 26-O (down)
+ \Put@Direct(1197,1109){\makebox(0,0){O}}%
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,930)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1366,848)(5,3){140}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1504,930)(0,1){148}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1366,1166)(5,-3){140}% %double bond 26-25
+ \else\if\@tmpb i%
+ \Put@Line(1366,1166)(-5,-3){110}% %double bond 26-O
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1368,806){\setsixringv{#2}{-25}{0}{2}{0}}%for 26
+\Put@Direct(1368,806){\setsixringv{#2}{-23}{1}{3}{0}}%for 25
+\Put@Direct(1368,806){\setsixringv{#2}{-21}{2}{4}{0}}%for 24
+\Put@Direct(1368,806){\setsixringv{#2}{-19}{3}{5}{0}}%for 23
+\end{sfpicture}}% %end of \steroidspiro macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidspirotriMe}
+% \begin{macro}{\spirostanalpha}
+% \begin{macro}{\spirostanbeta}
+% \begin{macro}{\spirostan}
+% \begin{macro}{\spirostannor}
+% \begin{macrocode}
+% **************
+% * spirostans *
+% **************
+\def\steroidspirotriMe[#1]#2{%
+\steroidspiro[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\spirostanalpha{\@ifnextchar[{\@spirostanalpha}{\@spirostanalpha[]}}
+\def\@spirostanalpha[#1]#2{\steroidspirotriMe[#1]{#2;5A==H;{25}B==CH$_{3}$}}
+\def\spirostanbeta{\@ifnextchar[{\@spirostanbeta}{\@spirostanbeta[]}}
+\def\@spirostanbeta[#1]#2{\steroidspirotriMe[#1]{#2;5B==H;{25}B==CH$_{3}$}}
+\def\spirostan{\@ifnextchar[{\@spirostan}{\@spirostan[]}}
+\def\@spirostan[#1]#2{\steroidspirotriMe[#1]{#2;{{25}}==\null}}
+\def\spirostannor{\@ifnextchar[{\@spirostannor}{\@spirostannor[]}}
+\def\@spirostannor[#1]#2{\steroidspirotriMe[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Furostans}
+%
+% After the macro |\steroidfuros| is defined as a basic macro,
+% several macros for drawing furostans are defined.
+%
+% \begin{macro}{\steroidfuros}
+% \begin{macrocode}
+% **************************************
+% * Raw skeleton for drawing furostans *
+% **************************************
+\def\steroidfuros{\@ifnextchar[{\@steroidfuros[@}{\@steroidfuros[Z]}}
+\def\@steroidfuros[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1212}\fi%%set 26 position
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1881}\def\@@yli{-909}\fi%%set 27 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidfuros' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \Put@Line(1197,909)(5,3){171}% %bond 22-23
+ \Put@Line(1368,1012)(5,-3){171}% %bond 23-24
+ \Put@Line(1539,909)(5,3){171}% %bond 24-25
+ \Put@Line(1710,1012)(5,-3){171}% %bond 25-27
+ \Put@Line(1710,1012)(0,1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,900)(5,3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1410,1022)(5,-3){126}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1582,900)(5,3){126}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1740,1035)(0,1){150}% %double bond 25-26
+ \else\if\@tmpb i%
+ \Put@Line(1752,1022)(5,-3){126}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1197,503){\setsixringv{#2}{-21}{0}{2}{0}}%for 22
+\Put@Direct(1368,606){\setsixringv{#2}{-22}{0}{2}{0}}%for 23
+\Put@Direct(1539,909){\setsixringv{#2}{-20}{3}{5}{0}}%for 24
+\Put@Direct(1710,1012){\setatombond{#2}{-24}{3}}% % for 25
+\Put@Direct(1539,909){\setsixringv{#2}{-24}{1}{3}{0}}%for 26
+\Put@Direct(1710,606){\setsixringv{#2}{-25}{1}{3}{0}}%for 27
+\end{sfpicture}}% %end of \steroidfuros macro%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\steroidfurostriMe}
+% \begin{macro}{\furostanalpha}
+% \begin{macro}{\furostanbeta}
+% \begin{macro}{\furostan}
+% \begin{macrocode}
+% *************
+% * furostans *
+% *************
+\def\steroidfurostriMe[#1]#2{%
+\steroidfuros[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\furostanalpha{\@ifnextchar[{\@furostanalpha}{\@furostanalpha[]}}
+\def\@furostanalpha[#1]#2{\steroidfurostriMe[#1]{#2;5A==H}}
+\def\furostanbeta{\@ifnextchar[{\@furostanbeta}{\@furostanbeta[]}}
+\def\@furostanbeta[#1]#2{\steroidfurostriMe[#1]{#2;5B==H}}
+\def\furostan{\@ifnextchar[{\@furostan}{\@furostan[]}}
+\def\@furostan[#1]#2{\steroidfurostriMe[#1]{#2}}
+%</steroid>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Macros for Spiro Pyranoses}
+%
+% The macro |\pyranoseChairi| is defined to draw steroid with spiro pyranose rings
+% The switch |\pyranoseChairalphatrue| is declared to draw an alpha bond (a dashed line).
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\ifpyranoseChairalpha}
+% \begin{macro}{\pyranoseChairi}
+% \begin{macrocode}
+\newif\ifpyranoseChairalpha
+\pyranoseChairalphatrue
+\def\pyranoseChairi{\@ifnextchar[{\@pyranoseChairi}{\@pyranoseChairi[r]}}
+\def\@pyranoseChairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){140}/(0,0)(140,187)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){140}% % bond 1 to 6
+\fi
+ \Put@Line(573,91)(-3,1){360}% % 5 to 6
+ \Put@Direct(130,190){O}%
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairi macro
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\pyranoseChairii| is defined to draw steroid with spiro pyranose rings
+%
+% \changes{v5.00}{2010/10/01}{for bond coloring}
+% \begin{macro}{\pyranoseChairii}
+% \begin{macrocode}
+\def\pyranoseChairii{\@ifnextchar[{\@pyranoseChairii}{\@pyranoseChairii[r]}}
+\def\@pyranoseChairii[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+% skeletal bonds
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){170}/(0,0)(170,227)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+\fi
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ \Put@Direct(230,50){O}%
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){360}% % 3 to 2
+ \Put@Line(0,0)(3,1){230}% % 1 to 2
+ }%
+ \thinlines%
+% inner double bonds
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+% %
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairii macro
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.00}{2009/6/15}{Creating \cs{cholestanealfa} etc.}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/steroid.ins b/macros/latex/contrib/xymtex/base/steroid.ins
new file mode 100644
index 0000000000..7d76f014b6
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/steroid.ins
@@ -0,0 +1,47 @@
+\def\batchfile{steroid.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2009, 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Old Versions:
+Version 1.00 for XyMTeX version 4.04 Released on June 15, 2009
+
+The Present Version:
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files steroid.dtx and steroid.ins
+and the derived file steroid.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{steroid.drv}{t}{%
+ \from{steroid.dtx}{driver}}
+
+\generateFile{steroid.sty}{t}{%
+ \from{steroid.dtx}{steroid}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/steroid.sty b/macros/latex/contrib/xymtex/base/steroid.sty
new file mode 100644
index 0000000000..734a339836
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/steroid.sty
@@ -0,0 +1,775 @@
+%%
+%% This is file `steroid.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% steroid.dtx (with options: `steroid')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2009, 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.00 for XyMTeX version 4.04 Released on June 15, 2009
+%%
+%% The Present Version:
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files steroid.dtx and steroid.ins
+%% and the derived file steroid.sty.
+%%
+%% =======================================
+%%
+%% File: steroid.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{steroid}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF}% Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\@ifundefined{steroidchain}{\input carom.sty\relax}{}
+\@ifundefined{ylchairiposition}{\input ccycle.sty\relax}{}
+\unitlength=0.1pt
+\def\gonanealpha{\@ifnextchar[{\@gonanealpha}{\@gonanealpha[]}}
+\def\@gonanealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonanebeta{\@ifnextchar[{\@gonanebeta}{\@gonanebeta[]}}
+\def\@gonanebeta[#1]#2{%
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\gonane{\@ifnextchar[{\@gonane}{\@gonane[]}}
+\def\@gonane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==H;{14}A==H}}
+\def\estranealpha{\@ifnextchar[{\@estranealpha}{\@estranealpha[]}}
+\def\@estranealpha[#1]#2{%
+\steroid[#1]{#2;5A==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estranebeta{\@ifnextchar[{\@estranebeta}{\@estranebeta[]}}
+\def\@estranebeta[#1]#2{
+\steroid[#1]{#2;5B==H;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\estrane{\@ifnextchar[{\@estrane}{\@estrane[]}}
+\def\@estrane[#1]#2{
+\steroid[#1]{#2;8B==H;9A==H;{10}B==H;{13}B==CH$_{3}$;{14}A==H}}
+\def\steroidnochainandrostane[#1]#2{%
+\steroid[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H}}
+\def\androstanealpha{\@ifnextchar[{\@androstanealpha}{\@androstanealpha[]}}
+\def\@androstanealpha[#1]#2{\steroidnochainandrostane[#1]{#2;5A==H}}
+\def\androstanebeta{\@ifnextchar[{\@androstanebeta}{\@androstanebeta[]}}
+\def\@androstanebeta[#1]#2{\steroidnochainandrostane[#1]{#2;5B==H}}
+\def\androstane{\@ifnextchar[{\@androstane}{\@androstane[]}}
+\def\@androstane[#1]#2{\steroidnochainandrostane[#1]{#2}}
+\def\steroidethylchain{\@ifnextchar[{\@steroidethylchain[@}{\@steroidethylchain[Z]}}
+\def\@steroidethylchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidethylchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidethylchain macro%
+\def\steroidethylchainpregnane[#1]#2{%
+\steroidethylchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H}}}
+\def\pregnanealpha{\@ifnextchar[{\@pregnanealpha}{\@pregnanealpha[]}}
+\def\@pregnanealpha[#1]#2{\steroidethylchainpregnane[#1]{#2;5A==H}}
+\def\pregnanebeta{\@ifnextchar[{\@pregnanebeta}{\@pregnanebeta[]}}
+\def\@pregnanebeta[#1]#2{\steroidethylchainpregnane[#1]{#2;5B==H}}
+\def\pregnane{\@ifnextchar[{\@pregnane}{\@pregnane[]}}
+\def\@pregnane[#1]#2{\steroidethylchainpregnane[#1]{#2}}
+\def\steroidChain{\@ifnextchar[{\@steroidChain[@}{\@steroidChain[Z]}}
+\def\@steroidChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 25 positions
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 26 positions
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-709}\fi%%set 27 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+ \Put@Line(1368,1012)(5,-3){171}% %bond 24-25
+ \Put@Line(1539,909)(5,3){171}% %bond 25-26
+ \Put@Line(1539,909)(0,-1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \else\if\@tmpb e%
+ \Put@Line(1372,970)(5,-3){126}% %double bond 24-25
+ \else\if\@tmpb f%
+ \Put@Line(1545,952)(5,3){126}% %double bond 25-26
+ \else\if\@tmpb F%
+ \Put@Line(1580,890)(5,3){126}% %double bond 25-26(alternative)
+ \else\if\@tmpb g%
+ \Put@Line(1580,890)(0,-1){148}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1539,909){\setatombond{#2}{-24}{5}}% % for 25
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidChain macro%
+\def\steroidChaindiMe[#1]#2{%
+\steroidChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestaneAlpha{\@ifnextchar[{\@cholestaneAlpha}{\@cholestaneAlpha[]}}
+\def\@cholestaneAlpha[#1]#2{\steroidChaindiMe[#1]{#2;5A==H}}
+\def\cholestaneBeta{\@ifnextchar[{\@cholestaneBeta}{\@cholestaneBeta[]}}
+\def\@cholestaneBeta[#1]#2{\steroidChaindiMe[#1]{#2;5B==H}}
+\def\cholestane{\@ifnextchar[{\@cholestane}{\@cholestane[]}}
+\def\@cholestane[#1]#2{\steroidChaindiMe[#1]{#2}}
+\def\ergostaneAlpha{\@ifnextchar[{\@ergostaneAlpha}{\@ergostaneAlpha[]}}
+\def\@ergostaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostaneBeta{\@ifnextchar[{\@ergostaneBeta}{\@ergostaneBeta[]}}
+\def\@ergostaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\ergostane{\@ifnextchar[{\@ergostane}{\@ergostane[]}}
+\def\@ergostane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==CH$_{3}$;{24}SB==H}}
+\def\campestaneAlpha{\@ifnextchar[{\@campestaneAlpha}{\@campestaneAlpha[]}}
+\def\@campestaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestaneBeta{\@ifnextchar[{\@campestaneBeta}{\@campestaneBeta[]}}
+\def\@campestaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\campestane{\@ifnextchar[{\@campestane}{\@campestane[]}}
+\def\@campestane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Sd==~H}}
+\def\poriferastaneAlpha{\@ifnextchar[{\@poriferastaneAlpha}{\@poriferastaneAlpha[]}}
+\def\@poriferastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastaneBeta{\@ifnextchar[{\@poriferastaneBeta}{\@poriferastaneBeta[]}}
+\def\@poriferastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\poriferastane{\@ifnextchar[{\@poriferastane}{\@poriferastane[]}}
+\def\@poriferastane[#1]#2{%
+\@cholestane[#1]{#2;{24}SA==\dimethylene{}{1==(yl)};{24}SB==H}}
+\def\stigmastaneAlpha{\@ifnextchar[{\@stigmastaneAlpha}{\@stigmastaneAlpha[]}}
+\def\@stigmastaneAlpha[#1]#2{%
+\@cholestaneAlpha[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastaneBeta{\@ifnextchar[{\@stigmastaneBeta}{\@stigmastaneBeta[]}}
+\def\@stigmastaneBeta[#1]#2{%
+\@cholestaneBeta[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\stigmastane{\@ifnextchar[{\@stigmastane}{\@stigmastane[]}}
+\def\@stigmastane[#1]#2{%
+\@cholestane[#1]{#2;{24}Su==\dimethylene{}{1==(yl)};{24}Sd==H}}
+\def\steroidShortChain{\@ifnextchar[{\@steroidShortChain[@}{\@steroidShortChain[Z]}}
+\def\@steroidShortChain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-23}{0}{2}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 24 positions
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2000,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidChain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,909)(5,3){171}% %bond 23-24
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1203,952)(5,3){126}% %double bond 23-24
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{2}{0}}%for 22 position
+\Put@Direct(1192,909){\setsixringv{#2}{-19}{3}{5}{0}}%for 23 position
+\Put@Direct(1368,606){\setsixringv{#2}{-23}{0}{2}{0}}%for 24 position
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\end{sfpicture}}% %end of \steroidShortChain macro%
+\def\steroidShortChainMe[#1]#2{%
+\steroidShortChain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholaneAlpha{\@ifnextchar[{\@cholaneAlpha}{\@cholaneAlpha[]}}
+\def\@cholaneAlpha[#1]#2{\steroidShortChainMe[#1]{#2;5A==H}}
+\def\cholaneBeta{\@ifnextchar[{\@cholaneBeta}{\@cholaneBeta[]}}
+\def\@cholaneBeta[#1]#2{\steroidShortChainMe[#1]{#2;5B==H}}
+\def\cholane{\@ifnextchar[{\@cholane}{\@cholane[]}}
+\def\@cholane[#1]#2{\steroidShortChainMe[#1]{#2}}
+\def\steroidshortchain{\@ifnextchar[{\@steroidshortchain[@}{\@steroidshortchain[Z]}}
+\def\@steroidshortchain[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-21}{0}{3}{0}%for 22 and 23 positions
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi\else
+\ylposition{#2}{-20}{3}{5}{0}%for 24 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1397}\def\@@yli{-709}\fi\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(1850,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidshortchain' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(1026,1012)(-5,-3){171}% %bond 22-20
+ \Put@Line(1026,1012)(5,-3){171}% %bond 22-23
+ \Put@Line(1197,709)(0,1){200}% %bond 24-23
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(1020,970)(-5,-3){126}% %double bond 22-20
+ \else\if\@tmpb c%
+ \Put@Line(1032,970)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb d%
+ \Put@Line(1164,735)(0,1){148}% %double bond 24-23
+ \fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-21}{0}{3}{0}}%for 22 and 23 positions
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1197,709){\setsixringv{#2}{-20}{3}{5}{0}}%for 24 position
+\end{sfpicture}}% %end of \steroidshortchain macro%
+\def\steroidshortchainMe[#1]#2{%
+\steroidshortchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholanealpha{\@ifnextchar[{\@cholanealpha}{\@cholanealpha[]}}
+\def\@cholanealpha[#1]#2{\steroidshortchainMe[#1]{#2;5A==H}}
+\def\cholanebeta{\@ifnextchar[{\@cholanebeta}{\@cholanebeta[]}}
+\def\@cholanebeta[#1]#2{\steroidshortchainMe[#1]{#2;5B==H}}
+\def\cholanE{\@ifnextchar[{\@cholanE}{\@cholanE[]}}
+\def\@cholanE[#1]#2{\steroidshortchainMe[#1]{#2}}
+\def\steroidchaindiMe[#1]#2{%
+\steroidchain[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{17}SA==\raisebox{-4pt}{~H};{20}SA==H$_{3}$C;{20}SB==H}}
+\def\cholestanealpha{\@ifnextchar[{\@cholestanealpha}{\@cholestanealpha[]}}
+\def\@cholestanealpha[#1]#2{\steroidchaindiMe[#1]{#2;5A==H}}
+\def\cholestanebeta{\@ifnextchar[{\@cholestanebeta}{\@cholestanebeta[]}}
+\def\@cholestanebeta[#1]#2{\steroidchaindiMe[#1]{#2;5B==H}}
+\def\cholestanE{\@ifnextchar[{\@cholestanE}{\@cholestanE[]}}
+\def\@cholestanE[#1]#2{\steroidchaindiMe[#1]{#2}}
+\def\ergostanealpha{\@ifnextchar[{\@ergostanealpha}{\@ergostanealpha[]}}
+\def\@ergostanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanebeta{\@ifnextchar[{\@ergostanebeta}{\@ergostanebeta[]}}
+\def\@ergostanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\ergostanE{\@ifnextchar[{\@ergostanE}{\@ergostanE[]}}
+\def\@ergostanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==CH$_{3}$;{24}Sd==H}}
+\def\campestanealpha{\@ifnextchar[{\@campestanealpha}{\@campestanealpha[]}}
+\def\@campestanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanebeta{\@ifnextchar[{\@campestanebeta}{\@campestanebeta[]}}
+\def\@campestanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\campestanE{\@ifnextchar[{\@campestanE}{\@campestanE[]}}
+\def\@campestanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Sd==\mbox{C\rlap{H$_{3}$}\kern20\unitlength};{24}Su==~H}}
+\def\poriferastanealpha{\@ifnextchar[{\@poriferastanealpha}{\@poriferastanealpha[]}}
+\def\@poriferastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanebeta{\@ifnextchar[{\@poriferastanebeta}{\@poriferastanebeta[]}}
+\def\@poriferastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\poriferastanE{\@ifnextchar[{\@poriferastanE}{\@poriferastanE[]}}
+\def\@poriferastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}Su==\dimethylenei{}{1==(yl)};{24}Sd==H}}
+\def\stigmastanealpha{\@ifnextchar[{\@stigmastanealpha}{\@stigmastanealpha[]}}
+\def\@stigmastanealpha[#1]#2{%
+\@cholestanealpha[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanebeta{\@ifnextchar[{\@stigmastanebeta}{\@stigmastanebeta[]}}
+\def\@stigmastanebeta[#1]#2{%
+\@cholestanebeta[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\stigmastanE{\@ifnextchar[{\@stigmastanE}{\@stigmastanE[]}}
+\def\@stigmastanE[#1]#2{%
+\@cholestanE[#1]{#2;{24}SA==\dimethylenei{}{1==(yl)};{24}SB==H}}
+\def\steroidspiro{\@ifnextchar[{\@steroidspiro[@}{\@steroidspiro[Z]}}
+\def\@steroidspiro[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-400}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-1109}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-1212}\fi%%set 26 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidspiro' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \dotorline(1197,909)(0,1){140}/(1197,909)(1197,1049)% 22-O (up)
+ {\thicklines
+ \Put@Line(1197,909)(5,-3){171}% %bond 22-23
+ }%
+ \Put@Line(1539,909)(-5,-3){171}% %bond 24-23
+ \Put@Line(1539,909)(0,1){200}% %bond 24-25
+ \Put@Line(1539,1109)(-5,3){171}% %bond 25-26
+ \Put@Line(1368,1212)(-5,-3){120}% %bond 26-O (down)
+ \Put@Direct(1197,1109){\makebox(0,0){O}}%
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,930)(5,-3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1366,848)(5,3){140}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1504,930)(0,1){148}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1366,1166)(5,-3){140}% %double bond 26-25
+ \else\if\@tmpb i%
+ \Put@Line(1366,1166)(-5,-3){110}% %double bond 26-O
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1368,806){\setsixringv{#2}{-25}{0}{2}{0}}%for 26
+\Put@Direct(1368,806){\setsixringv{#2}{-23}{1}{3}{0}}%for 25
+\Put@Direct(1368,806){\setsixringv{#2}{-21}{2}{4}{0}}%for 24
+\Put@Direct(1368,806){\setsixringv{#2}{-19}{3}{5}{0}}%for 23
+\end{sfpicture}}% %end of \steroidspiro macro%
+\def\steroidspirotriMe[#1]#2{%
+\steroidspiro[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\spirostanalpha{\@ifnextchar[{\@spirostanalpha}{\@spirostanalpha[]}}
+\def\@spirostanalpha[#1]#2{\steroidspirotriMe[#1]{#2;5A==H;{25}B==CH$_{3}$}}
+\def\spirostanbeta{\@ifnextchar[{\@spirostanbeta}{\@spirostanbeta[]}}
+\def\@spirostanbeta[#1]#2{\steroidspirotriMe[#1]{#2;5B==H;{25}B==CH$_{3}$}}
+\def\spirostan{\@ifnextchar[{\@spirostan}{\@spirostan[]}}
+\def\@spirostan[#1]#2{\steroidspirotriMe[#1]{#2;{{25}}==\null}}
+\def\spirostannor{\@ifnextchar[{\@spirostannor}{\@spirostannor[]}}
+\def\@spirostannor[#1]#2{\steroidspirotriMe[#1]{#2}}
+\def\steroidfuros{\@ifnextchar[{\@steroidfuros[@}{\@steroidfuros[Z]}}
+\def\@steroidfuros[#1]#2{%
+\@reset@ylsw\reset@@yl
+\yl@steroidposition{#2}%
+\ylposition{#2}{-20}{1}{3}{0}%for 22 position
+\if@ylsw \ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi
+\else
+\ylposition{#2}{-14}{5}{7}{0}%for 20 position
+\fi
+\if@ylsw
+\ifx\@@ylii\empty
+\def\@@ylii{-1026}\def\@@yli{-606}\fi%%set 20 position
+\else
+\ylposition{#2}{-22}{0}{2}{0}%for 23 position
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1368}\def\@@yli{-606}\fi%%set 23 position
+\else
+\ylatombondposition{#2}{-23}{4}% % for 24
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1539}\def\@@yli{-909}\fi%%set 24 position
+\else
+\ylatombondposition{#2}{-24}{4}% % for 25
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1012}\fi%%set 25 position
+\else
+\ylatombondposition{#2}{-25}{4}% % for 26
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1710}\def\@@yli{-1212}\fi%%set 26 position
+\else
+\ylatombondposition{#2}{-26}{4}% % for 27
+\fi
+\if@ylsw\ifx\@@ylii\empty
+\def\@@ylii{-1881}\def\@@yli{-909}\fi%%set 27 position
+\fi
+\if@ylsw
+ \yl@shiftii=\@ylii
+ \ifx\@@ylii\empty\else
+ \advance\yl@shiftii\@@ylii\fi
+ \yl@shifti=\@yli
+ \ifx\@@yli\empty\else
+ \advance\yl@shifti\@@yli\fi
+ \advance\yl@shiftii\yl@xdiff
+ \advance\yl@shifti\yl@ydiff
+ \begin{sfpicture}(0,0)(-\yl@shiftii,-\yl@shifti)%
+ \reset@yl@xydiff%1999/1/6 by S. Fujita
+\else
+ \begin{sfpicture}(2300,1500)(-\shiftii,-\shifti)%
+ \iforigpt \typeout{command `steroidfuros' is based on `steroid'.}\fi%
+\fi
+ \Put@Direct(0,0){\@steroidskeleton{#1}{#2}}%
+ \Put@Line(855,709)(0,1){200}% %bond 17-20
+ \Put@Line(855,909)(1,0){342}% %bond 20-22
+ \Put@Line(1197,909)(0,-1){140}% %bond 22-O (down)
+ \Put@Line(1026,606)(5,3){120}% %bond 16-O
+ \Put@Direct(1197,709){\makebox(0,0){O}}%
+ \Put@Line(1197,909)(5,3){171}% %bond 22-23
+ \Put@Line(1368,1012)(5,-3){171}% %bond 23-24
+ \Put@Line(1539,909)(5,3){171}% %bond 24-25
+ \Put@Line(1710,1012)(5,-3){171}% %bond 25-27
+ \Put@Line(1710,1012)(0,1){200}% %bond 25-27
+\@tfor\member:=#1\do{%
+\expandafter\twoCH@R\member//\relax%
+\if\@tmpa Z\relax%
+ \ifx\@tmpb\empty%no action
+ \else\if\@tmpb a%
+ \Put@Line(888,735)(0,1){148}% %double bond 17-20
+ \else\if\@tmpb b%
+ \Put@Line(888,880)(1,0){276}% %double bond 20-22
+ \else\if\@tmpb c%
+ \Put@Line(1164,880)(0,-1){116}% %double bond 22-O
+ \else\if\@tmpb d%
+ \Put@Line(1039,650)(5,3){100}% %double bond 16-O
+ \else\if\@tmpb e%
+ \Put@Line(1240,900)(5,3){126}% %double bond 22-23
+ \else\if\@tmpb f%
+ \Put@Line(1410,1022)(5,-3){126}% %double bond 23-24
+ \else\if\@tmpb g%
+ \Put@Line(1582,900)(5,3){126}% %double bond 24-25
+ \else\if\@tmpb h%
+ \Put@Line(1740,1035)(0,1){150}% %double bond 25-26
+ \else\if\@tmpb i%
+ \Put@Line(1752,1022)(5,-3){126}% %double bond 25-27
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+\Put@Direct(1026,606){\setsixringv{#2}{-14}{5}{7}{0}}%for 20 position
+\Put@Direct(1026,606){\setsixringv{#2}{-112}{4}{6}{0}}%for 17 position (117 as Exception)
+\Put@Direct(1197,503){\setsixringv{#2}{-21}{0}{2}{0}}%for 22
+\Put@Direct(1368,606){\setsixringv{#2}{-22}{0}{2}{0}}%for 23
+\Put@Direct(1539,909){\setsixringv{#2}{-20}{3}{5}{0}}%for 24
+\Put@Direct(1710,1012){\setatombond{#2}{-24}{3}}% % for 25
+\Put@Direct(1539,909){\setsixringv{#2}{-24}{1}{3}{0}}%for 26
+\Put@Direct(1710,606){\setsixringv{#2}{-25}{1}{3}{0}}%for 27
+\end{sfpicture}}% %end of \steroidfuros macro%
+\def\steroidfurostriMe[#1]#2{%
+\steroidfuros[#1]{#2;8B==H;9A==H;{10}B==CH$_{3}$;{13}B==CH$_{3}$;{14}A==H;%
+{117}FA==H;{20}A==H$_{3}$C;{16}FA==H}}
+\def\furostanalpha{\@ifnextchar[{\@furostanalpha}{\@furostanalpha[]}}
+\def\@furostanalpha[#1]#2{\steroidfurostriMe[#1]{#2;5A==H}}
+\def\furostanbeta{\@ifnextchar[{\@furostanbeta}{\@furostanbeta[]}}
+\def\@furostanbeta[#1]#2{\steroidfurostriMe[#1]{#2;5B==H}}
+\def\furostan{\@ifnextchar[{\@furostan}{\@furostan[]}}
+\def\@furostan[#1]#2{\steroidfurostriMe[#1]{#2}}
+\newif\ifpyranoseChairalpha
+\pyranoseChairalphatrue
+\def\pyranoseChairi{\@ifnextchar[{\@pyranoseChairi}{\@pyranoseChairi[r]}}
+\def\@pyranoseChairi[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){140}/(0,0)(140,187)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){140}% % bond 1 to 6
+\fi
+ \Put@Line(573,91)(-3,1){360}% % 5 to 6
+ \Put@Direct(130,190){O}%
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){403}% % 3 to 2
+ \Put@Line(0,0)(3,1){270}% % 1 to 2
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairi macro
+\def\pyranoseChairii{\@ifnextchar[{\@pyranoseChairii}{\@pyranoseChairii[r]}}
+\def\@pyranoseChairii[#1]#2{%
+\@reset@ylsw%
+\ylchairiposition{#2}%
+\def\@@ylii{0}\def\@@yli{0}%
+\begin{ShiftPicEnvB}(0,0)(-\yl@shiftii,-\yl@shifti)/%
+(1600,800)(-400,-319){chairi}%
+(400,319)%2002/4/30 by S. Fujita
+ \thinlines%
+\ifpyranoseChairalpha
+ \dotorline(0,0)(3,4){170}/(0,0)(170,227)% bond 1 to 6
+\else
+ \Put@Line(0,0)(3,4){170}% % bond 1 to 6
+\fi
+ \Put@Line(170,226)(3,-1){403}% % 6 to 5
+ \Put@Line(573,91)(3,1){270}% % 5 to 4
+ \Put@Direct(230,50){O}%
+ {\thicklines%
+ \molfronttrue%
+ \Put@Line(843,181)(-3,-4){170}% % 4 to 3
+ \Put@Line(673,-46)(-3,1){360}% % 3 to 2
+ \Put@Line(0,0)(3,1){230}% % 1 to 2
+ }%
+ \thinlines%
+\@tfor\member:=#1\do{%
+\if\member r%no endcyclic bonds
+\else \if\member c%%%a%
+ \Put@Line(767,139)(-3,-4){110}% % double bond 3 to 4
+\else \if\member b%%%d%%%b%
+ \Put@Line(640,-5)(-3,1){343}% % 4 to 5
+\else \if\member a%%%e%%%%c%
+ \Put@Line(240,111)(-3,-1){190}% % 5 to 6
+\else \if\member f%%%d%
+ \Put@Line(63,40)(3,4){110}% % 6 to 7
+\else \if\member e%%%l%
+ \Put@Line(182,187)(3,-1){343}% % 7 to 10
+\else \if\member d%%%k%%%f%
+ \Put@Line(768,131)(-3,-1){170}% % 10 to 3
+\fi\fi\fi\fi\fi\fi\fi}%
+\@forsemicol\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa%0 omit
+ \or\setBScolor{\@chairia}% subst. on 1
+ \or\setBScolor{\@chairib}% subst. on 2
+ \or\setBScolor{\@chairic}% subst. on 3
+ \or\setBScolor{\@chairid}% subst. on 4
+ \or\setBScolor{\@chairie}% subst. on 5
+ \or\setBScolor{\@chairif}% subst. on 6
+\fi %end of ifcase
+\fi\fi%
+}\end{ShiftPicEnvB}}% %end of \pyranoseChairii macro
+\endinput
+%%
+%% End of file `steroid.sty'.
diff --git a/macros/latex/contrib/xymtex/base/xymtex.dtx b/macros/latex/contrib/xymtex/base/xymtex.dtx
new file mode 100644
index 0000000000..a38ccd0a2a
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/xymtex.dtx
@@ -0,0 +1,308 @@
+% \iffalse
+%
+% xymtex.dtx
+%
+% Copyright (C) 1993-2004,2005,2009,2010,2011,2013 by Shinsaku Fujita All rights reserved.
+%
+% This file is part of the ChemSci system
+% ========================================
+%
+% This style file is created for submitting a manuscript to
+% scientific journals. This style file is to be contained in the
+% ``xymtex'' directory which is an input directory for TeX.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files xymtex.dtx and xymtex.ins
+% and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+%
+%=======================================
+%
+% This file is a successor to:
+%
+% *********************************************************************
+% * Version 1.00 Released December 1, 1993 by Shinsaku Fujita %
+% * Version 1.00a Released May 22, 1996 by Shinsaku Fujita %
+% * Version 1.02 Released October 31, 1998 by Shinsaku Fujita %
+% * Version 2.00 Released December 25, 1998 by Shinsaku Fujita %
+% *********************************************************************
+% xymtex.sty
+%
+% Copyright (C) 1993, 1966, 1998, 2001,2004 by Shinsaku Fujita, all rights reserved.
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00a}
+% \typeout{ -- Released May 22, 1996 by Shinsaku Fujita}
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.02}
+% \typeout{ -- Released October 31, 1998 by Shinsaku Fujita}
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 2.00}
+% \typeout{ -- Released December 25, 1998 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtex.sty}
+% \def\versi@ndate{May 22, 1996}
+% \def\versi@nno{ver1.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtex.sty}
+% \def\versi@ndate{October 31, 1998}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtex.sty}
+% \def\versi@ndate{December 25, 1998}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtex.sty}
+% \def\versi@ndate{November 17, 2004}
+% \def\versi@nno{ver4.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtex.sty}
+% \def\versi@ndate{December 25, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% \def\versi@ndate{July 20, 2005}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver4.04}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% \def\versi@ndate{November 25, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% \def\versi@ndate{December 01, 2009}
+% \def\versi@nno{ver4.06}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% %<xymtexpdf>\def\j@urnalname{xymtexpdf} \def\journalID{xymtexpdf}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+% %<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+% %<xymtexpdf>\def\j@urnalname{xymtexpdf} \def\journalID{xymtexpdf}
+% \def\versi@ndate{February 24, 2011}
+% \def\versi@nno{ver5.01beta}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% \typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+% [\copyrighth@lder]}
+% %<xymtex> \typeout{xymtex.sty ver5.01beta (for LaTeX2e) 2011/02/24[SF]}
+% %<xymtexps> \typeout{xymtexps.sty ver5.01beta (for LaTeX2e) 2011/02/24[SF]}
+% %<xymtexpdf> \typeout{xymtexpdf.sty ver5.01beta (for LaTeX2e) 2011/02/24[SF]}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, 18, 109--116 (1994).
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+% (3) Shinskau Fujita, ``XyMTeX for drwoing chemical structural
+% formulas'', TUGboat, 16(1), 80--88 (1995).
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Old old address:
+% Shinsaku Fujita,
+% Ashigara Research Laboratories, Fuji Photo Film Co., Ltd.,
+% Minami-Ashigara, Kanagawa-ken, 250-01, Japan.
+%
+% Old address:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606 Japan
+%
+% New address:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kanagawa, 258-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fi
+% \CheckSum{70}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%%
+%% `xymtex.dtx' ver5.01 (for LaTeX2e) 2013/03/10
+%% by Shinsaku Fujita
+%%
+%
+% \section{Initial declaration}
+%
+% \changes{v4.01b}{2004/11/17}{Generaging xymtex.sty and xymtexps}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for xymtx-ps.sty}
+% \changes{v4.03}{2005/07/20}{Wave bonds for xymtx-ps.sty}
+% \changes{v4.04}{2009/06/15}{steoroid.sty added for drawing steroids}
+% \changes{v4.05}{2009/11/25}{lewisstruc.sty added for drawing Lewis structures}
+% \changes{v4.06}{2009/12/01}{harpoons added in the chmst-ps package}
+% \changes{v5.00}{2010/10/01}{PDF mode, bond coloring}
+% \changes{v5.01beta}{2011/02/24}{Added the chemist package and the xcolor package}
+% \changes{v5.01}{2013/03/10}{Bug fix}
+%
+% \begin{macrocode}
+% \NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% <xymtex>\ProvidesFile{xymtex.sty}
+% <xymtexps>\ProvidesFile{xymtexps.sty}
+%<driver>\ProvidesFile{xymtex.drv}
+%<driver> [2013/03/10 v5.01
+% <xymtex> ChemSci package ]
+% <xymtexps> ChemSci package ]
+% <xymtexpdf> ChemSci package ]
+%<driver> ChemSci package driver (English)
+% \end{macrocode}
+%
+%\setcounter{StandardModuleDepth}{1}
+%
+% \section{Driver file for this dtx file}
+%
+% \begin{macrocode}
+%<*driver>
+]
+\documentclass{ltxdoc}
+\GetFileInfo{xymtex.drv}
+\title{XyMTeX Packages for Chemists \space\fileversion}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and Mathematical Chemistry \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa,
+258-0019 Japan
+%(old address)
+%Department of Chemistry and Materials Technology \\
+%Kyoto Institute of Technology \\
+%Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+}
+\date{\filedate}
+\begin{document}
+\maketitle
+\tableofcontents
+\DocInput{xymtex.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \StopEventually{}
+%
+% \section{{\sc docstrip} options}
+%
+% This dtx file provides the {\sffamily xymtex} package
+% by docstrip processing.
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% argument & package name \\
+% \hline
+% xymtex & xymtex.sty \\
+% xymtexps & xymtexps.sty \\
+% xymtexpdf & xymtexpdf.sty \\
+% driver & a documentation driver file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \section{Version information}
+%
+% The old process for typing out version information remains active.
+% \begin{macrocode}
+%<xymtex>\def\j@urnalname{xymtex} \def\journalID{xymtex}
+%<xymtexps>\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+%<xymtexpdf>\def\j@urnalname{xymtexpdf} \def\journalID{xymtexpdf}
+\def\versi@ndate{March 10, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+%<xymtex> \typeout{xymtex.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+%<xymtexps> \typeout{xymtexps.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+%<xymtexpdf> \typeout{xymtexpdf.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*xymtexpdf>
+\DeclareOption{pdf}{\def\pgfsysdriver{pgfsys-common-pdf.def}}
+\DeclareOption{dvipdfm}{\def\pgfsysdriver{pgfsys-dvipdfm.def}}
+\DeclareOption{pdftex}{\def\pgfsysdriver{pgfsys-pdftex.def}}
+\DeclareOption{ps}{\def\pgfsysdriver{pgfsys-common-postscript.def}}
+\DeclareOption{dvips}{\def\pgfsysdriver{pgfsys-dvips.def}}
+\ExecuteOptions{dvipdfm}
+\InputIfFileExists{pict2e.cfg}{}{}
+\ProcessOptions\relax
+%</xymtexpdf>
+\usepackage{epic}
+\usepackage{chemstr}
+\usepackage{carom}
+\usepackage{hetarom}
+\usepackage{hetaromh}
+\usepackage{lowcycle}
+\usepackage{ccycle}
+\usepackage{hcycle}
+\usepackage{aliphat}
+\usepackage{locant}
+\usepackage{polymers}
+\usepackage{methylen}
+\usepackage{fusering}
+\usepackage{sizeredc}
+\usepackage{steroid}
+\usepackage{lewisstruc}
+\usepackage{bondcolor}
+\usepackage{assurelatexmode}
+%<xymtexps>\usepackage{xymtx-ps}
+%<xymtexpdf>\usepackage{xymtx-pdf}
+%<xymtex>\usepackage{chemist}
+%<xymtex>\usepackage{xcolor}
+%<xymtexps>\usepackage{chmst-ps}
+%<xymtexpdf>\usepackage{chmst-pdf}
+% \end{macrocode}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/xymtex.ins b/macros/latex/contrib/xymtex/base/xymtex.ins
new file mode 100644
index 0000000000..a679b87467
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/xymtex.ins
@@ -0,0 +1,72 @@
+\def\batchfile{xymtex.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2004, 2005, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+
+This file is part of the ChemSci system.
+=======================================
+
+Old versions (.dtx and .ins files were not used):
+Version 1.00 Released December 1, 1993 by Shinsaku Fujita
+Version 1.00a Released May 22, 1996 by Shinsaku Fujita
+Version 1.02 Released October 31, 1998 by Shinsaku Fujita
+Version 2.00 Released December 25, 1998 by Shinsaku Fujita
+
+Old versions (.dtx and .ins files were used):
+Version 4.01b Released Novermber 17, 2004 by Shinsaku Fujita
+Version 4.02 Released December 20, 2004 by Shinsaku Fujita
+Version 4.03 Released July 20, 2005 by Shinsaku Fujita
+Version 4.04 Released June 15, 2009 by Shinsaku Fujita
+Version 4.05 Released November 25, 2009 by Shinsaku Fujita
+Version 4.06 Released December 01, 2009 by Shinsaku Fujita
+Version 5.00 Released October 01, 2010 by Shinsaku Fujita
+Version 5.01beta Released February 24, 2011 by Shinsaku Fujita
+
+Latest version (with .tex and .ins files)
+Version 5.01 Released March 03, 2013 by Shinsaku Fujita
+
+Copyright (C) 1993--2013 by Shinsaku Fujita, all rights reserved.
+This style file is created for submitting a manuscript to
+scientific journals. This style file is to be contained in the
+``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+
+For using this file, see
+ Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+ Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+
+For PostScript output, use chmst-ps.sty together with chemist.sty.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files xymtex.dtx and xymtex.ins
+and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{xymtex.drv}{t}{%
+ \from{xymtex.dtx}{driver}}
+
+\generateFile{xymtex.sty}{t}{%
+ \from{xymtex.dtx}{xymtex}}
+
+\generateFile{xymtexps.sty}{t}{%
+ \from{xymtex.dtx}{xymtexps}}
+
+\generateFile{xymtexpdf.sty}{t}{%
+ \from{xymtex.dtx}{xymtexpdf}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/base/xymtex.sty b/macros/latex/contrib/xymtex/base/xymtex.sty
new file mode 100644
index 0000000000..e6d1f4770a
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/xymtex.sty
@@ -0,0 +1,108 @@
+%%
+%% This is file `xymtex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtex.dtx (with options: `xymtex')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2004, 2005, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%%
+%% This file is part of the ChemSci system.
+%% =======================================
+%%
+%% Old versions (.dtx and .ins files were not used):
+%% Version 1.00 Released December 1, 1993 by Shinsaku Fujita
+%% Version 1.00a Released May 22, 1996 by Shinsaku Fujita
+%% Version 1.02 Released October 31, 1998 by Shinsaku Fujita
+%% Version 2.00 Released December 25, 1998 by Shinsaku Fujita
+%%
+%% Old versions (.dtx and .ins files were used):
+%% Version 4.01b Released Novermber 17, 2004 by Shinsaku Fujita
+%% Version 4.02 Released December 20, 2004 by Shinsaku Fujita
+%% Version 4.03 Released July 20, 2005 by Shinsaku Fujita
+%% Version 4.04 Released June 15, 2009 by Shinsaku Fujita
+%% Version 4.05 Released November 25, 2009 by Shinsaku Fujita
+%% Version 4.06 Released December 01, 2009 by Shinsaku Fujita
+%% Version 5.00 Released October 01, 2010 by Shinsaku Fujita
+%% Version 5.01beta Released February 24, 2011 by Shinsaku Fujita
+%%
+%% Latest version (with .tex and .ins files)
+%% Version 5.01 Released March 03, 2013 by Shinsaku Fujita
+%%
+%% Copyright (C) 1993--2013 by Shinsaku Fujita, all rights reserved.
+%% This style file is created for submitting a manuscript to
+%% scientific journals. This style file is to be contained in the
+%% ``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+%%
+%% For using this file, see
+%% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+%% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%%
+%% For PostScript output, use chmst-ps.sty together with chemist.sty.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtex.dtx and xymtex.ins
+%% and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `xymtex.dtx' ver5.01 (for LaTeX2e) 2013/03/10
+%% by Shinsaku Fujita
+%%
+\def\j@urnalname{xymtex} \def\journalID{xymtex}
+\def\versi@ndate{March 10, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+ \typeout{xymtex.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+\usepackage{epic}
+\usepackage{chemstr}
+\usepackage{carom}
+\usepackage{hetarom}
+\usepackage{hetaromh}
+\usepackage{lowcycle}
+\usepackage{ccycle}
+\usepackage{hcycle}
+\usepackage{aliphat}
+\usepackage{locant}
+\usepackage{polymers}
+\usepackage{methylen}
+\usepackage{fusering}
+\usepackage{sizeredc}
+\usepackage{steroid}
+\usepackage{lewisstruc}
+\usepackage{bondcolor}
+\usepackage{assurelatexmode}
+\usepackage{chemist}
+\usepackage{xcolor}
+\endinput
+%%
+%% End of file `xymtex.sty'.
diff --git a/macros/latex/contrib/xymtex/base/xymtexpdf.sty b/macros/latex/contrib/xymtex/base/xymtexpdf.sty
new file mode 100644
index 0000000000..b6b1f91ac9
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/xymtexpdf.sty
@@ -0,0 +1,116 @@
+%%
+%% This is file `xymtexpdf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtex.dtx (with options: `xymtexpdf')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2004, 2005, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%%
+%% This file is part of the ChemSci system.
+%% =======================================
+%%
+%% Old versions (.dtx and .ins files were not used):
+%% Version 1.00 Released December 1, 1993 by Shinsaku Fujita
+%% Version 1.00a Released May 22, 1996 by Shinsaku Fujita
+%% Version 1.02 Released October 31, 1998 by Shinsaku Fujita
+%% Version 2.00 Released December 25, 1998 by Shinsaku Fujita
+%%
+%% Old versions (.dtx and .ins files were used):
+%% Version 4.01b Released Novermber 17, 2004 by Shinsaku Fujita
+%% Version 4.02 Released December 20, 2004 by Shinsaku Fujita
+%% Version 4.03 Released July 20, 2005 by Shinsaku Fujita
+%% Version 4.04 Released June 15, 2009 by Shinsaku Fujita
+%% Version 4.05 Released November 25, 2009 by Shinsaku Fujita
+%% Version 4.06 Released December 01, 2009 by Shinsaku Fujita
+%% Version 5.00 Released October 01, 2010 by Shinsaku Fujita
+%% Version 5.01beta Released February 24, 2011 by Shinsaku Fujita
+%%
+%% Latest version (with .tex and .ins files)
+%% Version 5.01 Released March 03, 2013 by Shinsaku Fujita
+%%
+%% Copyright (C) 1993--2013 by Shinsaku Fujita, all rights reserved.
+%% This style file is created for submitting a manuscript to
+%% scientific journals. This style file is to be contained in the
+%% ``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+%%
+%% For using this file, see
+%% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+%% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%%
+%% For PostScript output, use chmst-ps.sty together with chemist.sty.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtex.dtx and xymtex.ins
+%% and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `xymtex.dtx' ver5.01 (for LaTeX2e) 2013/03/10
+%% by Shinsaku Fujita
+%%
+\def\j@urnalname{xymtexpdf} \def\journalID{xymtexpdf}
+\def\versi@ndate{March 10, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+ \typeout{xymtexpdf.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+\DeclareOption{pdf}{\def\pgfsysdriver{pgfsys-common-pdf.def}}
+\DeclareOption{dvipdfm}{\def\pgfsysdriver{pgfsys-dvipdfm.def}}
+\DeclareOption{pdftex}{\def\pgfsysdriver{pgfsys-pdftex.def}}
+\DeclareOption{ps}{\def\pgfsysdriver{pgfsys-common-postscript.def}}
+\DeclareOption{dvips}{\def\pgfsysdriver{pgfsys-dvips.def}}
+\ExecuteOptions{dvipdfm}
+\InputIfFileExists{pict2e.cfg}{}{}
+\ProcessOptions\relax
+\usepackage{epic}
+\usepackage{chemstr}
+\usepackage{carom}
+\usepackage{hetarom}
+\usepackage{hetaromh}
+\usepackage{lowcycle}
+\usepackage{ccycle}
+\usepackage{hcycle}
+\usepackage{aliphat}
+\usepackage{locant}
+\usepackage{polymers}
+\usepackage{methylen}
+\usepackage{fusering}
+\usepackage{sizeredc}
+\usepackage{steroid}
+\usepackage{lewisstruc}
+\usepackage{bondcolor}
+\usepackage{assurelatexmode}
+\usepackage{xymtx-pdf}
+\usepackage{chmst-pdf}
+\endinput
+%%
+%% End of file `xymtexpdf.sty'.
diff --git a/macros/latex/contrib/xymtex/base/xymtexps.sty b/macros/latex/contrib/xymtex/base/xymtexps.sty
new file mode 100644
index 0000000000..8a28eb7221
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/xymtexps.sty
@@ -0,0 +1,108 @@
+%%
+%% This is file `xymtexps.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtex.dtx (with options: `xymtexps')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2004, 2005, 2009, 2010, 2011, 2013 by Shinsaku Fujita
+%%
+%% This file is part of the ChemSci system.
+%% =======================================
+%%
+%% Old versions (.dtx and .ins files were not used):
+%% Version 1.00 Released December 1, 1993 by Shinsaku Fujita
+%% Version 1.00a Released May 22, 1996 by Shinsaku Fujita
+%% Version 1.02 Released October 31, 1998 by Shinsaku Fujita
+%% Version 2.00 Released December 25, 1998 by Shinsaku Fujita
+%%
+%% Old versions (.dtx and .ins files were used):
+%% Version 4.01b Released Novermber 17, 2004 by Shinsaku Fujita
+%% Version 4.02 Released December 20, 2004 by Shinsaku Fujita
+%% Version 4.03 Released July 20, 2005 by Shinsaku Fujita
+%% Version 4.04 Released June 15, 2009 by Shinsaku Fujita
+%% Version 4.05 Released November 25, 2009 by Shinsaku Fujita
+%% Version 4.06 Released December 01, 2009 by Shinsaku Fujita
+%% Version 5.00 Released October 01, 2010 by Shinsaku Fujita
+%% Version 5.01beta Released February 24, 2011 by Shinsaku Fujita
+%%
+%% Latest version (with .tex and .ins files)
+%% Version 5.01 Released March 03, 2013 by Shinsaku Fujita
+%%
+%% Copyright (C) 1993--2013 by Shinsaku Fujita, all rights reserved.
+%% This style file is created for submitting a manuscript to
+%% scientific journals. This style file is to be contained in the
+%% ``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+%%
+%% For using this file, see
+%% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+%% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%%
+%% For PostScript output, use chmst-ps.sty together with chemist.sty.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtex.dtx and xymtex.ins
+%% and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `xymtex.dtx' ver5.01 (for LaTeX2e) 2013/03/10
+%% by Shinsaku Fujita
+%%
+\def\j@urnalname{xymtexps} \def\journalID{xymtexps}
+\def\versi@ndate{March 10, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+ \typeout{xymtexps.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]}
+\usepackage{epic}
+\usepackage{chemstr}
+\usepackage{carom}
+\usepackage{hetarom}
+\usepackage{hetaromh}
+\usepackage{lowcycle}
+\usepackage{ccycle}
+\usepackage{hcycle}
+\usepackage{aliphat}
+\usepackage{locant}
+\usepackage{polymers}
+\usepackage{methylen}
+\usepackage{fusering}
+\usepackage{sizeredc}
+\usepackage{steroid}
+\usepackage{lewisstruc}
+\usepackage{bondcolor}
+\usepackage{assurelatexmode}
+\usepackage{xymtx-ps}
+\usepackage{chmst-ps}
+\endinput
+%%
+%% End of file `xymtexps.sty'.
diff --git a/macros/latex/contrib/xymtex/chemist/assurechemist.dtx b/macros/latex/contrib/xymtex/chemist/assurechemist.dtx
new file mode 100644
index 0000000000..c8d5566525
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/assurechemist.dtx
@@ -0,0 +1,279 @@
+% \iffalse meta-comment
+%% File: assurechemist.dtx
+%
+% Copyright 2010 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file (assurechemist.sty) is a successor to:
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
+% \typeout{ -- Released December 1, 1993 by Shinsaku Fujita}
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% For the review of XyMTeX, see
+% (1) Shinsaku Fujita, ``Typesetting structural formulas with the text
+% formatter TeX/LaTeX'', Computers and Chemistry, in press.
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (2) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files assurechemist.dtx and assurechemist.ins
+% and the derived file lewisstruc.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and Mathematical Chemistry
+% Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{assurechemist}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF}% Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{101}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v5.00}{2010/10/01}{First release for XyMTeX5.00}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{assurechemist.dtx}[2010/10/01 v5.00 assurechemist package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{lewisstruc.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Dummy Declarations for Assuring the \protect\TeX/\protect\LaTeX{} Mode
+by {\sffamily assurechemist.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Kanagawa, 258-0019 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{assurechemist.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{assurechemist:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% assurechemist & assurechemist.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*assurechemist>
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{assurechemist}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\RequirePackage{chemist}
+% \end{macrocode}
+%
+% \section{Dummy Declarations}
+% If a document written by using the \textsf{chemist} package in the PostScript or PDF mode
+% is processed by the TeX/LaTeX mode, some commands for the PS or PDF mode
+% (defined in the \textsf{chmst-ps} or \textsf{chmst-pdf} package) cause errors of non-existence.
+% To avoid these errors, dummy commands are defined as follows.
+% These dummy commands are overwritten or replaced by equivalent commands
+% when processed by the PS or PDF mode.
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macrocode}
+\def\notdefinedarrows#1{%
+ \XyMTeXWarning{The command
+ \expandafter\string\csname #1\endcsname\space is unavailable in TeX/LaTeX mode. ^^J
+ Please try the PostScript or PDF mode}}
+% \end{macrocode}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newllongrightarrow}
+% \begin{macro}{\newllongleftarrow}
+% \begin{macro}{\newllongleftrightarrow}
+% \begin{macro}{\newEquilibarrow}
+% \begin{macrocode}
+\def\newllongrightarrow{\notdefinedarrows{newllongrightarrow}}
+\def\newllongleftarrow{\notdefinedarrows{newllongleftarrow}}
+\def\newllongleftrightarrow{\notdefinedarrows{newllongleftrightarrow}}
+\def\newEquilibarrow{\notdefinedarrows{newEquilibarrow}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newLlongrightarrow}
+% \begin{macro}{\newLlongleftarrow}
+% \begin{macro}{\newLlongleftrightarrow}
+% \begin{macrocode}
+\def\newLlongrightarrow{\notdefinedarrows{newLlongrightarrow}}
+\def\newLlongleftarrow{\notdefinedarrows{newLlongleftarrow}}
+\def\newLlongleftrightarrow{\notdefinedarrows{newLlongleftrightarrow}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newlllongrightarrow}
+% \begin{macro}{\newlllongleftarrow}
+% \begin{macro}{\newlllongleftrightarrow}
+% \begin{macro}{\newEquiliblongarrow}
+% \begin{macrocode}
+\def\newlllongrightarrow{\notdefinedarrows{newlllongrightarrow}}
+\def\newlllongleftarrow{\notdefinedarrows{newlllongleftarrow}}
+\def\newlllongleftrightarrow{\notdefinedarrows{newlllongleftrightarrow}}
+\def\newEquiliblongarrow{\notdefinedarrows{newEquiliblongarrow}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newLllongrightarrow}
+% \begin{macro}{\newLllongleftarrow}
+% \begin{macro}{\newLllongleftrightarrow}
+% \begin{macrocode}
+\def\newLllongrightarrow{\notdefinedarrows{newLllongrightarrow}}
+\def\newLllongleftarrow{\notdefinedarrows{newLllongleftarrow}}
+\def\newLllongleftrightarrow{\notdefinedarrows{newLllongleftrightarrow}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newllongrightharpoonup}
+% \begin{macro}{\newllongrightharpoondown}
+% \begin{macro}{\newllongleftharpoonup}
+% \begin{macro}{\newllongleftharpoondown}
+% \begin{macrocode}
+\def\newllongrightharpoonup{\notdefinedarrows{newllongrightharpoonup}}
+\def\newllongrightharpoondown{\notdefinedarrows{newllongrightharpoondown}}
+\def\newllongleftharpoonup{\notdefinedarrows{newllongleftharpoonup}}
+\def\newllongleftharpoondown{\notdefinedarrows{newllongleftharpoondown}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newlllongrightharpoonup}
+% \begin{macro}{\newlllongrightharpoondown}
+% \begin{macro}{\newlllongleftharpoonup}
+% \begin{macro}{\newlllongleftharpoondown}
+% \begin{macrocode}
+\def\newlllongrightharpoonup{\notdefinedarrows{newlllongrightharpoonup}}
+\def\newlllongrightharpoondown{\notdefinedarrows{newlllongrightharpoondown}}
+\def\newlllongleftharpoonup{\notdefinedarrows{newlllongleftharpoonup}}
+\def\newlllongleftharpoondown{\notdefinedarrows{newlllongleftharpoondown}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v5.00}{2010/10/01}{Warning of non-existence}
+% \begin{macro}{\newequilibarrow}
+% \begin{macro}{\newequiliblongarrow}
+% \begin{macrocode}
+\def\newequilibarrow{\notdefinedarrows{newequilibarrow}}
+\def\newequiliblongarrow{\notdefinedarrows{newequiliblongarrow}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\chmstpspdfsw}
+% \begin{macrocode}
+\let\chmstpspdfsw=\relax
+\endinput
+%</assurechemist>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/assurechemist.ins b/macros/latex/contrib/xymtex/chemist/assurechemist.ins
new file mode 100644
index 0000000000..728c62feb4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/assurechemist.ins
@@ -0,0 +1,43 @@
+\def\batchfile{assurechemist.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files assurechemist.dtx and assurechemist.ins
+and the derived file assurechemist.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{assurechemist.drv}{t}{%
+ \from{assurechemist.dtx}{driver}}
+
+\generateFile{assurechemist.sty}{t}{%
+ \from{assurechemist.dtx}{assurechemist}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/assurechemist.sty b/macros/latex/contrib/xymtex/chemist/assurechemist.sty
new file mode 100644
index 0000000000..f01e1e8c61
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/assurechemist.sty
@@ -0,0 +1,92 @@
+%%
+%% This is file `assurechemist.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% assurechemist.dtx (with options: `assurechemist')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files assurechemist.dtx and assurechemist.ins
+%% and the derived file assurechemist.sty.
+%%
+%% =======================================
+%%
+%% File: assurechemist.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.00}
+\typeout{ -- Released October 01, 2010 by Shinsaku Fujita}
+\def\j@urnalname{assurechemist}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\def\notdefinedarrows#1{%
+ \XyMTeXWarning{The command
+ \expandafter\string\csname #1\endcsname\space is unavailable in TeX/LaTeX mode. ^^J
+ Please try the PostScript or PDF mode}}
+\def\newllongrightarrow{\notdefinedarrows{newllongrightarrow}}
+\def\newllongleftarrow{\notdefinedarrows{newllongleftarrow}}
+\def\newllongleftrightarrow{\notdefinedarrows{newllongleftrightarrow}}
+\def\newEquilibarrow{\notdefinedarrows{newEquilibarrow}}
+\def\newLlongrightarrow{\notdefinedarrows{newLlongrightarrow}}
+\def\newLlongleftarrow{\notdefinedarrows{newLlongleftarrow}}
+\def\newLlongleftrightarrow{\notdefinedarrows{newLlongleftrightarrow}}
+\def\newlllongrightarrow{\notdefinedarrows{newlllongrightarrow}}
+\def\newlllongleftarrow{\notdefinedarrows{newlllongleftarrow}}
+\def\newlllongleftrightarrow{\notdefinedarrows{newlllongleftrightarrow}}
+\def\newEquiliblongarrow{\notdefinedarrows{newEquiliblongarrow}}
+\def\newLllongrightarrow{\notdefinedarrows{newLllongrightarrow}}
+\def\newLllongleftarrow{\notdefinedarrows{newLllongleftarrow}}
+\def\newLllongleftrightarrow{\notdefinedarrows{newLllongleftrightarrow}}
+\def\newllongrightharpoonup{\notdefinedarrows{newllongrightharpoonup}}
+\def\newllongrightharpoondown{\notdefinedarrows{newllongrightharpoondown}}
+\def\newllongleftharpoonup{\notdefinedarrows{newllongleftharpoonup}}
+\def\newllongleftharpoondown{\notdefinedarrows{newllongleftharpoondown}}
+\def\newlllongrightharpoonup{\notdefinedarrows{newlllongrightharpoonup}}
+\def\newlllongrightharpoondown{\notdefinedarrows{newlllongrightharpoondown}}
+\def\newlllongleftharpoonup{\notdefinedarrows{newlllongleftharpoonup}}
+\def\newlllongleftharpoondown{\notdefinedarrows{newlllongleftharpoondown}}
+\def\newequilibarrow{\notdefinedarrows{newequilibarrow}}
+\def\newequiliblongarrow{\notdefinedarrows{newequiliblongarrow}}
+\let\chmstpspdfsw=\relax
+\endinput
+%%
+%% End of file `assurechemist.sty'.
diff --git a/macros/latex/contrib/xymtex/chemist/chemist.dtx b/macros/latex/contrib/xymtex/chemist/chemist.dtx
new file mode 100644
index 0000000000..3b07bc2e48
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemist.dtx
@@ -0,0 +1,3349 @@
+% \iffalse
+%
+% chemist.dtx
+%
+% Copyright (C) 1996, 1999, 2000, 2004, 2009, 2010, 2013 by Shinsaku Fujita All rights reserved.
+%
+% This file is part of the ChemSci system
+% ========================================
+%
+% This style file is created for submitting a manuscript to
+% scientific journals. This style file is to be contained in the
+% ``chemist'' directory which is an input directory for TeX.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files xymtex.dtx and xymtex.ins
+% and the derived files: xymtex.sty, xymtexps.sty and xymtexpdf.sty.
+%
+%=======================================
+%
+% For using this file, see
+% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%
+% This file is a successor to:
+%
+% *********************************************************************
+% * chemist.sty <Sept 29 1991> by Shinsaku Fujita *
+% * counters and related matters for compounds. *
+% * ffboxit: November 2 1991 by S. Fujita *
+% * bslskipchange: November 6 1991 by S. Fujita (deleted) *
+% * chapinitial: 1991 November 7 by S. Fujita *
+% * variable arrows: 1992 May 24 by S. Fujita *
+% * reaction and scheme arrows (revised): 1992 May 24 by S. Fujita *
+% * changespace <=== bslskipchange: Dec 31 1992 by S. Fujita *
+% * (g)rshfboxit and (g)lshfboxit: January 3, 1993 by S. Fujita *
+% *********************************************************************
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Released on January 3, 1993
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+% This style file is created for making manuscripts of chemical fields.
+% This option style file is to be contained in the ``chemist'' directory
+% which is an input directory for TeX.
+%
+% For using this file, see
+% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dojin, Tokyo (1993), Chapters 7, 9, 12 and 18.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{January 03, 1993}
+% \def\versi@nno{ver1.00}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Version 1.01
+% --- added the end commands of the \verbatim environment and the
+% \verb command contained in LaTeX 2.09
+% --- \LaTeX, \BibTeX logos etc improved
+% \typeout{verbatim for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \typeout{logos for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \def\versi@ndate{April 20, 1996}
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{April 20, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{June 15, 1996}
+% \def\versi@nno{ver1.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% \typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+% [\copyrighth@lder]}
+% \typeout{chemist.sty ver1.01a (for LaTeX2e) 1996/06/15[SF]}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{March 16, 1999}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 3, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{June 20, 2001}
+% \def\versi@nno{ver2.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver3.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 17, 2004}
+% \def\versi@nno{ver4.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{December 02, 2004}
+% \def\versi@nno{ver4.01c}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{September 02, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 08, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 21, 2010}
+% \def\versi@nno{ver5.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+%
+% \fi
+% \CheckSum{5053}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%%
+%% `chemist.dtx' ver1.01a (for LaTeX2e) 1996/06/15
+%% `chemist.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chemist.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% `chemist.dtx' ver5.00a (for LaTeX2e) 2010/11/21
+%% by Shinsaku Fujita
+%%
+%
+% \section{Initial declaration}
+%
+% \changes{v1.01a}{1996/06/15}{For LaTeX2e: dtx file}
+% \changes{v1.01a}{1996/07/16}{Comment out for use LaTeX2.09}
+% \changes{v2.00}{1999/03/16}{For XyMTeX 2.00 Enhanced Version}
+% \changes{v2.00a}{2000/11/03}{Bug fix}
+% \changes{v2.01}{2001/06/20}{Size reduction and Clip information}
+% \changes{v3.00}{2002/05/30}{PStricks & mathversion{boldchem}}
+% \changes{v4.03}{2005/9/2}{Bug fix for mathchem}
+% \changes{v4.05}{2009/11/08}{extension of mathversions chem and boldchem}
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \changes{v5.00a}{2010/11/21}{bug fix}
+% \changes{v5.01}{2013/06/06}{bug fix}
+%
+% \begin{macrocode}
+% \NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% <chemist>\ProvidesFile{chemist.sty}
+%<driver>\ProvidesFile{chemist.drv}
+%<driver> [2013/06/06 v5.01
+% <chemist> ChemSci package ]
+%<driver> ChemSci package driver (English)
+% \end{macrocode}
+%
+%\setcounter{StandardModuleDepth}{1}
+%
+% \section{Driver file for this dtx file}
+%
+% \changes{v1.0a}{1996/06/15}{first draft}
+% \changes{v2.00a}{2000/11/05}{bug fix}
+% \changes{v4.01}{2004/08/30}{variable arrows}
+% \changes{v4.01c}{2004/12/02}{To be compatible with multicol.sty: dimen2 into dimen6}
+% \changes{v4.05}{2009/11/08}{extension of mathversions chem and boldchem;
+% modification of reaction arrows}
+% \changes{v5.00a}{2010/11/21}{bug fix}
+% \changes{v5.01}{2013/06/06}{bug fix}
+%
+% \begin{macrocode}
+%<*driver>
+ ]
+\documentclass{ltxdoc}
+\GetFileInfo{chemist.drv}
+\title{Chemist Package \space\fileversion}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Ashigara-Kami-Gun, Kanagawa, Japan
+%% (old address)
+%% Department of Chemistry and Materials Technology \\
+%% Kyoto Institute of Technology \\
+%Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+%% (old address)
+%% Ashigara Research Laboratories \\
+%% Fuji Photo Film Co. Ltd.
+}
+\date{\filedate}
+\begin{document}
+\maketitle
+\tableofcontents
+\DocInput{chemist.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \StopEventually{}
+%
+% \section{{\sc docstrip} options}
+%
+% This dtx file provides the {\sffamily chemist} package
+% by docstrip processing.
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% argument & package name \\
+% \hline
+% chemist & chemist.sty \\
+% driver & a documentation driver file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \section{Version information}
+%
+% The old process for typing out version information remains active.
+% \begin{macrocode}
+%<chemist>
+%%%%%%%%
+\def\j@urnalname{chemist} \def\journalID{chemist}
+\def\versi@ndate{June 6, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+%<*chemist>
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chemist.sty ver5.01 (for LaTeX2e) 2013/06/06[SF]}
+%</chemist>
+% \end{macrocode}
+%
+% \section{Times Fonts}
+%
+% If the \textsf{chemtimes} package is loaded, the switch \verb/\@chemtimestrue/
+% becomes effective. Thereby, the mathversions ``chem'' and ``boldchem''
+% defined in the present \textsf{chemist} package are entirely replaced by those defined
+% in the \textsf{chemtimes} package.
+% \changes{v4.05}{2009/11/20}{the unskip command was deleted.}
+%
+% \begin{macro}{\if@chemtimes}
+% \begin{macrocode}
+%<*chemist>
+\@ifundefined{ifchemtimes}{\newif\ifchemtimes}{}%from chemtimes
+\@ifundefined{if@chemtimes}{\newif\if@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@chemtimestrue}
+\@chemtimesfalse
+\ProcessOptions
+\if@chemtimes
+\if@@chemtimes\else
+\ifchemtimes\else
+ \PackageError{chemist}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded}
+\fi\fi\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Cross-references of compounds}
+%
+% The \textsf{compd} counter is introduced for numbering
+% chemical compounds.
+%
+% \begin{macro}{\thecompd}
+% \begin{macro}{\compd}
+% \begin{macro}{\nocompd}
+%
+% The |\thecompd| command prints compound numbering without
+% advancing the the \textsf{compd} counter.
+% The |\compd| command prints compound numbering and advances
+% the \textsf{compd} counter by one, while
+% the |\nocompd| advances the \textsf{compd} counter by one
+% without printing.
+% \changes{v1.01a}{1996/06/22}{the unskip command was deleted.}
+%
+% \begin{macrocode}
+% *******************
+% * compound label *
+% * 1991 sept 29 *
+% *******************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\@ifundefined{chapter}{\newcounter{compd}}{\newcounter{compd}[chapter]}
+\def\thecompd{\arabic{compd}}
+%\def\compd{\refstepcounter{compd}\unskip{\large\bf \thecompd}}
+\def\compd{\leavevmode\refstepcounter{compd}{\large\bf \thecompd}}
+\def\nocompd{\refstepcounter{compd}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdlabel}
+% \begin{macro}{\nocompdlabel}
+% \begin{macro}{\cref}
+%
+% The cross-reference of compound numbers are conducted by using
+% |\label| and |\ref| commands. Alternative commands are also available
+% as follows.
+% \begin{macrocode}
+\def\compdlabel#1{\compd \label{#1}}
+\def\nocompdlabel#1{\nocompd \label{#1}}
+\@ifundefined{bf}{\def\bf{\normalfont\bfseries}}{}
+\def\cref#1{{\bf \ref{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdfbox}
+% \begin{macro}{\compdmbox}
+% \begin{macro}{\lbcompdpbox}
+%
+% For takeing a space for compound output, we can use |\compdfbox|
+% and like.
+%
+% \begin{macrocode}
+\def\compdfbox#1#2#3{\framebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\compdmbox#1#2#3{\makebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\lbcompdpbox#1#2#3{\parbox{#2}{\vskip 2em
+ \parbox{#2}{#3 \par \centering{\compdlabel{#1}}\vskip 2em }}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The \textsf{deriv} counter is introduced for numbering
+% derivatives of a compound.
+% \changes{v1.01a}{1996/06/22}{the unskip command was deleted.}
+% \changes{v2.00}{1999/03/17}{derivnum added}
+%
+% \begin{macro}{\thederiv}
+% \begin{macro}{\deriv}
+% \begin{macro}{\noderiv}
+% \begin{macro}{\derivnum}
+%
+% \begin{macrocode}
+% ********************
+% * deriv label *
+% * 1991 oct 01 *
+% ********************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\newcounter{deriv}[compd]
+\def\thederiv {\thecompd\alph{deriv}}
+%\def\deriv{\refstepcounter{deriv}\unskip{\large\bf \thederiv}}
+\def\deriv{\leavevmode\refstepcounter{deriv}{\large\bf \thederiv}}
+\def\noderiv{\refstepcounter{deriv}}
+\def\derivnum{%
+\leavevmode\refstepcounter{deriv}{\large\bf \alph{deriv}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\derivlabel}
+% \begin{macro}{\noderivlabel}
+%
+% The cross-reference of derivative numbers are conducted by using
+% |\label| and |\ref| commands.
+% Alternative commands are also available as follows.
+% \begin{macrocode}
+\def\derivlabel#1{\deriv \label{#1}}
+\def\noderivlabel#1{\noderiv \label{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\derivfbox}
+% \begin{macro}{\derivmbox}
+% \begin{macro}{\lbderivpbox}
+%
+% For takeing a space for placing a derivative, we can use |\compdfbox|
+% and like.
+%
+% \begin{macrocode}
+\def\derivfbox#1#2#3{\framebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\derivmbox#1#2#3{\makebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\lbderivpbox#1#2#3{\parbox{#2}{\vskip 2em
+ \parbox{#2}{#3 \par \centering{\derivlabel{#1}}\vskip 2em }}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\deriva}
+% \begin{macro}{\noderiva}
+% \begin{macro}{\derivalabel}
+% \begin{macro}{\noderivalabel}
+%
+% The \textsf{deriv} counter is also advanced by |\deriva| command and like.
+% This command produced the net output of the \textsf{deriv} counter.
+% \changes{v1.01a}{1996/06/22}{the unskip command was deleted.}
+% \begin{macrocode}
+% ********************
+% * deriva label *
+% * 1991 oct 05 *
+% ********************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%\def\deriva{\refstepcounter{deriv}\unskip{\large\bf \alph{deriv}}}
+\def\deriva{\leavevmode\refstepcounter{deriv}{\large\bf \alph{deriv}}}
+\def\noderiva{\refstepcounter{deriv}}
+\def\derivalabel#1{\deriva \label{#1}}
+\def\noderivalabel#1{\noderiva \label{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Boxes for placing compounds}
+%
+% \begin{macro}{\cdonecell}
+% \begin{macro}{\cdtwocell}
+%
+% These boxes with a given width are used for printing chemical compounds.
+% A box provided by |\cdonecell| is used for accomodating a compound.
+% A box provided by |\cdtwocell| is devied into two vertical cells
+% where the one is to place a compound and the other to place
+% the compound number.
+% \begin{macrocode}
+% ********************
+% * cdonecell label *
+% * 1991 oct 04 *
+% ********************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\cdonecell#1#2#3{\raisebox{#1}{\parbox{#2}{\centering{#3}}}}
+% #1 ue, #2 haba, #3 honbun
+\def\cdtwocell#1#2#3#4{\raisebox{#1}{
+ \parbox{#2}{\centering{#3} \par \vskip 3pt \centering{#4} }}}
+% #1 ue, #2 haba, #3 ue honbun, #4 shita label
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \section{Arrows}
+%
+% \subsection{Arrows with variable length}
+%
+% \begin{macro}{\leftrightarrowfill}
+% \begin{macro}{\Leftarrowfill}
+% \begin{macro}{\Rightarrowfill}
+% \begin{macro}{\Leftrightarrowfill}
+%
+% LaTeX{} are possessed of |\leftarrowfill| and |\rightarrowfill| for
+% drawing arrows with variable length. The {\sffamily chemist}
+% package defines other arrows with variable length for drawing
+% chemical equations or schemes.
+%
+% \begin{macrocode}
+% *******************
+% * variable arrows * 1992 May 24 S. Fujita
+% *******************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\leftrightarrowfill{$\m@th \mathord\leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\rightarrow$}
+\def\Leftarrowfill{$\m@th \mathord\Leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord=$}
+\def\Rightarrowfill{$\m@th \mathord= \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\Rightarrow$}
+\def\Leftrightarrowfill{$\m@th \mathord\Leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\Rightarrow$}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Reaction arrows with variable length}
+%
+% \begin{macro}{\reactrarrow}
+% \begin{macro}{\reactlarrow}
+% \begin{macro}{\reactlrarrow}
+% \begin{macro}{\reacteqarrow}
+%
+% The {\sffamily chemist} package defines arrows with variable length
+% for drawing chemical equations, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v2.00}{1999/02/02}{Vertical spacing changed}
+% \changes{v2.00}{1999/03/16}{Horizontal shift}
+%
+% The vertical space between the upper text and the arrow as well as
+% the vertical spece between the the arrow and the below text can be
+% changed by the dimension register \verb/\reactarrowsep/.
+%
+% \changes{v4.05}{2009/11/8}{added \cs{reactarrowsep} and \cs{reactarrowseprate}}
+% \changes{v4.05}{2009/11/15}{added \cs{ChemStrut}}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+%
+% \begin{verbatim}
+% \reactarrowsep (dimension) for adjusting the two vertical spaces
+% (default value 0pt)
+% \reactarrowseprate (string) for adjusting the lower vertical space
+% (default 1.0)
+% \end{verbatim}
+%
+% \begin{macrocode}
+% ******************* 1991 Oct 4 S. Fujita
+% * reaction arrows * Revised 1992 May 24 S.Fujita%1999/02/02 SF
+% *******************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% #1 yoko #2 ue, #3 haba, #4 ya no ue, #5 ya no shita
+%
+\newdimen\reactarrowsep
+\def\reactarrowseprate{1.0}
+\reactarrowsep=0pt
+\def\oldreactrarrow{\@ifnextchar[{\oldreact@rarrow}{\oldreact@rarrow[0pt]}}
+\def\oldreact@rarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactlarrow{\@ifnextchar[{\oldreact@larrow}{\oldreact@larrow[0pt]}}
+\def\oldreact@larrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactlrarrow{\@ifnextchar[{\oldreact@lrarrow}{\oldreact@lrarrow[0pt]}}
+\def\oldreact@lrarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\centering{\leftrightarrowfill} \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreacteqarrow{\@ifnextchar[{\oldreact@eqarrow}{\oldreact@eqarrow[0pt]}}
+\def\oldreact@eqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par \vskip-0.55\normalbaselineskip%
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+%%%%%%2009/11/19
+%\let\reactrarrow=\oldreactrarrow
+%\let\reactlarrow=\oldreactlarrow
+%\let\reactlrarrow=\oldreactlrarrow
+%\let\reacteqarrow=\oldreacteqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactreqarrow}
+% \begin{macro}{\reactleqarrow}
+%
+% These commands have been added for the XyMTeX version 4.05.
+% The {\sffamily chemist} package additionally defines arrows with variable length
+% for drawing chemical equilibrium, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% The length of either one of arrows can be reduced by \verb/\eqlbarrowstretch/.
+%
+% \changes{v4.05}{2009/11/08}{added \cs{reactreqarrow} and \cs{reactleqarrow}}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+%
+% \begin{macrocode}
+% **************************************** 2009/11/08 S. Fujita
+% * equilibrium arrows of uneven lengths *
+% ****************************************
+%
+% #1 yoko #2 ue, #3 haba, #4 ya no ue, #5 ya no shita
+%
+\def\eqlbarrowstretch{0.6}%reduction rate of arrow length
+\def\oldreactreqarrow{\@ifnextchar[{\oldreact@reqarrow}{\oldreact@reqarrow[0pt]}}
+\def\oldreact@reqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering\dimen0=#3
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par \vskip-0.55\normalbaselineskip%
+ \leavevmode\hbox to\eqlbarrowstretch\dimen0{\leftarrowfill} \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactleqarrow{\@ifnextchar[{\oldreact@leqarrow}{\oldreact@leqarrow[0pt]}}
+\def\oldreact@leqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering\dimen0=#3
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\hbox to\eqlbarrowstretch\dimen0{\rightarrowfill} \par
+ \vskip-0.55\normalbaselineskip%
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+%%%%%2009/11/19
+%\let\reactreqarrow=\oldreactreqarrow
+%\let\reactleqarrow=\oldreactleqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\k@nz@n}
+% The |\k@nz@n| command is used for changing a dimension to a
+% parameter for the \LaTeX{} picture environment.
+% \begin{macrocode}
+\def\k@nz@n#1{\@tempdima=#1\relax
+\@tempcnta=\@tempdima \@tempcntb=\unitlength
+\divide\@tempcnta by \@tempcntb
+\edef\kanzanchi{\the\@tempcnta}%
+\divide\@tempcnta by2\relax
+\edef\kanzanhalf{\the\@tempcnta}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactdarrow}
+% \begin{macro}{\reactuarrow}
+% \begin{macro}{\reactveqarrow}
+% \begin{macro}{\reactduarrow}
+% Vertical reaction arrows has been added.
+% \changes{v2.00}{1999/02/02}{New commands}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+% \begin{macrocode}
+\def\oldreactdarrow{\@ifnextchar[{\oldreact@darrow}{\oldreact@darrow[0pt]}}
+\def\oldreact@darrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanchi){\vector(0,-1){\kanzanchi}}
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+%
+\def\oldreactuarrow{\@ifnextchar[{\oldreact@uarrow}{\oldreact@uarrow[0pt]}}
+\def\oldreact@uarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,0){\vector(0,1){\kanzanchi}}
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+%
+\def\oldreactveqarrow{\@ifnextchar[%]
+{\oldreact@veqarrow}{\oldreact@veqarrow[0pt]}}
+\def\oldreact@veqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(40,\kanzanchi)(0,0)
+\Put@Direct(40,0){\vector(0,1){\kanzanchi}}%
+\Put@Direct(0,\kanzanchi){\vector(0,-1){\kanzanchi}}%
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+%
+\def\oldreactduarrow{\@ifnextchar[{\oldreact@duarrow}{\oldreact@duarrow[0pt]}}
+\def\oldreact@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanhalf){\vector(0,1){\kanzanhalf}}%
+\Put@Direct(0,\kanzanhalf){\vector(0,-1){\kanzanhalf}}%
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+%%%%2009/11/19
+%\let\reactdarrow=\oldreactdarrow
+%\let\reactuarrow=\oldreactuarrow
+%\let\reactveqarrow=\oldreactveqarrow
+%\let\reactduarrow=\oldreactduarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactswarrow}
+% \begin{macro}{\reactsearrow}
+% \begin{macro}{\reactnwrarrow}
+% \begin{macro}{\reactnearrow}
+% Further reaction arrows have been added.
+% \changes{v2.00}{1999/02/02}{New commands}
+% \changes{v2.00}{2000/06/14}{Bug Fix: exchanged sw -- se and nw --ne}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+% \begin{macrocode}
+\def\oldreactsearrow{\@ifnextchar[{\oldreact@searrow}{\oldreact@searrow[0pt]}}
+\def\oldreact@searrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanchi){\vector(1,-1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+%
+\def\oldreactnwarrow{\@ifnextchar[{\oldreact@nwarrow}{\oldreact@nwarrow[0pt]}}
+\def\oldreact@nwarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanchi,0){\vector(-1,1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+%
+\def\oldreactnearrow{\@ifnextchar[{\oldreact@nearrow}{\oldreact@nearrow[0pt]}}
+\def\oldreact@nearrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,0){\vector(1,1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+%
+\def\oldreactswarrow{\@ifnextchar[{\oldreact@swarrow}{\oldreact@swarrow[0pt]}}
+\def\oldreact@swarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanchi,\kanzanchi){\vector(-1,-1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+%%%%%2009/11/19
+%\let\reactsearrow=\oldreactsearrow
+%\let\reactnwarrow=\oldreactnwarrow
+%\let\reactnearrow=\oldreactnearrow
+%\let\reactswarrow=\oldreactswarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactdeqarrow}
+% \begin{macro}{\reactueqarrow}
+% \begin{macro}{\reactdlrarrow}
+% \begin{macro}{\reactulrarrow}
+% Further reaction arrows have been added.
+% \changes{v2.00}{1999/02/02}{New commands}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+% \begin{macrocode}
+\def\oldreactdeqarrow{\@ifnextchar[%]
+{\oldreact@deqarrow}{\oldreact@deqarrow[0pt]}}
+\def\oldreact@deqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(0,\kanzanchi){\Put@Direct(15,15){\vector(1,-1){\kanzanchi}}}%
+\Put@Direct(\kanzanchi,0){\Put@Direct(-15,-15){\vector(-1,1){\kanzanchi}}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactueqarrow{\@ifnextchar[%]
+{\oldreact@ueqarrow}{\oldreact@ueqarrow[0pt]}}
+\def\oldreact@ueqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,0){\Put@Direct(-15,15){\vector(1,1){\kanzanchi}}}
+\Put@Direct(\kanzanchi,\kanzanchi){\Put@Direct(15,-15){\vector(-1,-1){\kanzanchi}}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactulrarrow{\@ifnextchar[%]
+{\oldreact@ulrarrow}{\oldreact@ulrarrow[0pt]}}
+\def\oldreact@ulrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(1,1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(-1,-1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactdlrarrow{\@ifnextchar[%]
+{\oldreact@dlrarrow}{\oldreact@dlrarrow[0pt]}}
+\def\oldreact@dlrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(-1,1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(1,-1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+%%%%%2009/11/19
+%\let\reactdeqarrow=\oldreactdeqarrow
+%\let\reactueqarrow=\oldreactueqarrow
+%\let\reactulrarrow=\oldreactulrarrow
+%\let\reactdlrarrow=\oldreactdlrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\schemelarrow}
+% \begin{macro}{\schemerarrow}
+% \begin{macro}{\schemelrarrow}
+%
+% The {\sffamily chemist} package defines double-line arrows with variable
+% length for drawing reaction schemes, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v2.00}{1999/02/02}{Vertical spacing changed}
+% \changes{v4.05}{2009/11/19}{\cs{react...} to \cs{oldreact...}}
+% \begin{macrocode}
+% ********************************
+% * scheme arrows *
+% * 1991 OCT 4 S. Fujita *
+% * Revised 1992 May 24 S.Fujita * 1999/02/02 by S. Fujita
+% ********************************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\oldschemelarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Leftarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+\def\oldschemerarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Rightarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+\def\oldschemelrarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Leftrightarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+%%%%2009/11/19
+%\let\schemelarrow=\oldschemelarrow
+%\let\schemerarrow=\oldschemerarrow
+%\let\schemelrarrow=\oldschemelrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\ChemStrut}
+%
+% The commond \verb/\ChemStrut/ is defined to output a strut for chemical arrows.
+% For example, \verb/\reactrarrow{0pt}{1cm}{AAAA}{\ChemStrut}/ can adjust the horizontal
+% position of an arrow.
+%
+% \changes{v4.05}{2009/11/08}{added \cs{ChemStrut}}
+%
+% \begin{macrocode}
+\def\ChemStrut{\mbox{\vphantom{A}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\changespace}
+%
+% The |\changespace| command is used to change a vertical space
+% between lines.
+% \begin{macrocode}
+% *************************
+% * Changing line spacing *
+% *************************
+% After Chapter 3 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\changespace#1{\def\baselinestretch{#1} \@normalsize}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+% %%%%%%%%%%1991 November 6%%%\bslskipchange%%%%%%%%%%
+% \newenvironment{bslskipchange}[1]%
+% {\par\begingroup\global\baselineskip= #1\normalbaselineskip}%
+% {\endgroup\par\global\baselineskip=\normalbaselineskip%
+% \global\@ignoretrue}
+% \end{macrocode}
+%
+% \section{Captions}
+% \subsection{Changing caption types within a float}
+% \changes{v1.00}{1993/06/17}{by S. Fujita}
+%
+% \begin{macro}{\tbcaption}
+% \begin{macro}{\fgcaption}
+% \begin{macro}{\smcaption}
+%
+% These commands enable us to place two or more floats of
+% different kinds in a single floating body.
+%
+% \begin{center}
+% \begin{tabular}{lp{5cm}}
+% \verb/\tbcaption[TCAP]{CAP}/ &
+% makes a table caption in a float other than ``table'' or
+% after using \verb/\fgcaption/ or \verb/\smcaption/ command. \\
+% \verb/\fgcaption[TCAP]{CAP}/ &
+% makes a figure caption in a float other than ``figure'' or
+% after using \verb/\tbcaption/ or \verb/\smcaption/ command. \\
+% \verb/\smcaption[TCAP]{CAP}/ &
+% makes a scheme caption in a float other than ``scheme'' or
+% after using \verb/\tbcaption/ or \verb/\fgcaption/ command. \\
+% \end{tabular}
+% \end{center}
+%
+% For exmaple, we have
+%
+% \begin{verbatim}
+% \begin{figure}
+% \caption{aaa} % ’Êí‚̃LƒƒƒvƒVƒ‡ƒ“B
+% \tbcaption{bbb} % •\‚̃LƒƒƒvƒVƒ‡ƒ“‚Ì‹­§“I‚É•ÏXB
+% \fgcaption[ccc]{ddd} %}‚̃LƒƒƒvƒVƒ‡ƒ“‚É–ß‚·B
+% \end{figure}
+% \end{verbatim}
+%
+% \begin{macrocode}
+\def\tbcaption{\def\@captype{table}\caption}
+\def\fgcaption{\def\@captype{figure}\caption}
+\def\smcaption{\def\@captype{scheme}\caption}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\chapinitial}
+%
+% \begin{macrocode}
+% *****************
+% * miscellaneous *
+% *****************
+%%%%%%%%%%%1991 November 7%%%chapinitial%%%%%%%%%%%%%
+\def\chap@initial#1%
+{\medbreak\begingroup\clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak}
+ \noindent\hangindent28pt\hangafter=-2
+\hbox to0pt{\hskip-\hangindent
+\hbox to28pt{\hss\raise-4pt\hbox{\lower3pt\hbox{\Huge\bf #1}} }
+} \hskip-5pt plus2pt minus2pt}
+\outer\def\chapinitial{\chap@initial}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Redefinition of verbatim}
+%
+% \begin{macro}{\yen}
+%
+% The {\sffamily chemist} package uses a customaized defintion of |\yen| for
+% printing the top symbol of each command sequence.
+% \begin{macrocode}
+% ************
+% * ‚Ì’è‹` *
+% ************
+% % %%%%%from ascmac.sty%%%%added \leavevmode%%%%%%%%%%%%%%%%
+%\def\yen{\leavevmode{\setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{%
+% \hrule\@height.1ex\@width.98\wd0%
+% \kern.33ex\hrule\@height.1ex\@width.98\wd0\kern.45ex}}}
+%
+\def\yen{\leavevmode\hbox{\setbox0=\hbox{Y}%
+\setbox1=\vbox{\hrule height.05\ht0 width.96\wd0%
+\kern.18\ht0\hrule height.05\ht0 width.96\wd0}%
+\setbox1=\hbox to\wd0{\raise.3\ht0\box1\hss}%
+{\ooalign{\hfil\box1\hfil\crcr\box0}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifverbswitch}
+% \begin{macro}{\verb}
+%
+% The switch |\ifverbswitch| is used for changing |\yen| or
+% |\backslash| for the top symbol of each control sequence
+% printed by the |\verb| command.
+%
+% \begin{macrocode}
+% **************************
+% * ‚ðŠÜ‚ñ‚¾verbatimŠÂ‹« *
+% **************************
+% %%%%%%1992 April 30 %%%verbatim%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % from ‰œ‘º°•F@LaTeX”ü•¶‘쬓ü–å@1991 ‹Zp•]˜_ŽÐ %
+% % omitted: =, by, etc. %
+% % added: verbswitch %
+% % \verbswitchtrue===> yen mark %
+% % \verbswitchfalse===> backslash mark %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifverbswitch \verbswitchtrue
+\let\old@verbatim\@verbatim
+\let\old@xverbatim\@xverbatim
+\let\old@sxverbatim\@sxverbatim
+\begingroup
+ \catcode`\|=0 \catcode`\\=13
+ |gdef|verbh@@k{|catcode`|\=13 |let\=|yen}
+|endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\verb{\begingroup \catcode``=13 \@noligs
+ \tt \let\do\@makeother \dospecials
+ \ifverbswitch \verbh@@k \fi \@ifstar{\@sverb}{\@verb}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{@verbatim}
+% \begin{environment}{verbatim}
+%
+% The switch |\ifverbswitch| is also effective
+% for in a verbtim environment.
+%
+% \begin{macrocode}
+\begingroup
+\catcode`|=0 \catcode`[=1 \catcode`]=2
+\catcode`\{=12 \catcode`\}=12 \catcode`\\=13
+|gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
+|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
+|endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newdimen\verbatimleftmargin \verbatimleftmargin\leftmargini
+\newdimen\verbatimbaselineskip \verbatimbaselineskip11pt
+\def\verbatimsize{\small}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@verbatim{\trivlist \item[]%
+ \if@minipage \else \vskip\baselineskip%
+ \vskip-\verbatimbaselineskip \vskip\parskip\fi
+ \leftskip\@totalleftmargin
+ \if@minipage \else \advance\leftskip\verbatimleftmargin \fi
+ \rightskip\z@ \parindent\z@ \parfillskip\@flushglue \parskip\z@
+ \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par}
+ \obeylines \verbatimsize \baselineskip\verbatimbaselineskip \tt
+ \catcode``=13 \@noligs \let\do\@makeother \dospecials}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\verbatim{\ifverbswitch \@verbatim \else \old@verbatim \fi
+\frenchspacing \@vobeyspaces
+\ifverbswitch \verbh@@k \@xverbatim \else \old@xverbatim \fi}
+\@namedef{verbatim*}{%
+ \ifverbswitch \@verbatim \verbh@@k \@sxverbatim
+ \else \old@verbatim \old@sxverbatim \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%%%%%%%pLaTeX2e%%%%%%%%%%%%%1996/04/20 by S. Fujita%%%%%%
+% pLaTeX2e‚Å‚ÍÄ’è‹`‚³‚ê‚Ä‚¢‚é‚Ì‚ÅCã‚Ì‚Ü‚Ü‚¾‚ƃGƒ‰[‚É‚È‚é
+% LaTeX2.09‚Ì’è‹`‚ð•â‚Á‚Ä‚¨‚­
+\def\@sverb#1{\def\@tempa ##1#1{##1\endgroup}\@tempa}
+\def\@verb{\obeyspaces \frenchspacing \@sverb}
+\def\@sverbtim{\obeyspaces\@verbatim}
+\let\endverbatim=\endtrivlist
+\@namedef{varbatim*}{\@verbatim\@sxverbatim}
+\expandafter\let\csname endverbatim*\endcsname =\endtrivlist
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+%
+% \section{Shadowed Boxes}
+%
+% \begin{macro}{\fb@xit}
+% \begin{macro}{\fboxit}
+%
+% \begin{macrocode}
+%
+% <<Base box for boxes>>
+% \fb@xit{LWIDTH}{SPACE}{BWIDTH}{TEXT}
+% #1 LWIDTH: line thickness
+% #2 SPACE: spacing around the text
+% #3 BWIDTH: box width
+% #4 TEXT: text
+%
+\long\def\fb@xit#1#2#3#4{%
+\setbox4=\vbox{\hsize#3\noindent#4}%
+%\setbox4=\vbox{\hsize#3\noindent\strut#4\strut}%
+\vbox{\hrule\@height#1\hbox{\vrule\@width#1\kern#2\vbox{%
+\kern#2\box4\kern#2}\kern#1\vrule\@width#1}\hrule\@height#1}}
+%\kern#2\box4\kern#2}\vrule\@width#1}\hrule\@height#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%
+% \fboxit{BWIDTH}{TEXT}
+% #1 BWIDTH: box width
+% #2 TEXT: text
+%
+\long\def\fboxit#1#2{\fb@xit{\fboxrule}{\fboxsep}{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\leftshfr@me}
+% \begin{macro}{\leftshframe}
+% \begin{macro}{\leftshfbox}
+%
+% \begin{macrocode}
+% % ************************************************************
+% % * ‰e‚̂‚¢‚½”  *
+% % * January 3, 1993 by Shinsaku Fujita *
+% % * Borde ({\em \TeX{} by Example})‚Ì‹LÚ‚ðŽQl‚É‚µ‚Äì‚Á‚½*
+% % ************************************************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% left shadow box
+%
+% \leftshfr@me{SWIDTH}{SPACE}{BOXWIDTH}{TEXT}
+%
+% #1 SWIDTH: shadow width
+% #2 SPACE: spacing around the text
+% #3 BOXWIDTH: box width
+% #4 TEXT: text
+%
+% \leftshframe{BOXWIDTH}{TEXT}
+%
+% #1 BOXWIDTH: box width
+% #2 TEXT: text
+%
+% \leftshfbox{TEXT}
+%
+% #1 TEXT: text
+%
+% %%leftshfr@me#1 shadow width, #2 space, #3 boxwidth, #4 text%
+\long\def\leftshfr@me#1#2#3#4{\leavevmode%
+ \vbox{\hbox{\hsize #3\vbox{%
+ \hbox{\vrule\@width #1%
+ \vbox{\kern-#1\fb@xit{%
+ \fboxrule}{#2}{#3}{#4}\kern-\fboxrule}\kern-#1}%
+ \hrule\@height#1}}}\strut\hskip #1\relax}
+% %leftshframe%%%%%%%%%%%%%%%%%%%%%%%%% #1 width, #2 text%%%%%
+\long\def\leftshframe#1#2{%
+ \leftshfr@me{\fboxsep}{\fboxsep}{#1}{#2}}
+% %leftshfbox%%%%%%%%%%%%%%%%%%%%%%%%% #1 text%%%%%%%%%%%%%%%%
+\long\def\leftshfbox#1{\leavevmode\setbox0=\hbox{\fbox{#1}}%
+ \vbox{\hbox{\vbox{\hbox{\vrule\@width\fboxsep\vbox{%
+ \kern-\fboxsep\box0\kern-\fboxrule}\kern-\fboxsep}%
+ \hrule\@height\fboxsep}}}\hskip\fboxsep\relax} %%%%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rightshfr@me}
+% \begin{macro}{\rightshframe}
+% \begin{macro}{\rightshfbox}
+%
+% \begin{macrocode}
+%
+% right shadow box
+%
+% \rightshfr@me{SWIDTH}{SPACE}{BOXWIDTH}{TEXT}
+%
+% #1 SWIDTH: shadow width
+% #2 SPACE: spacing around the text
+% #3 BOXWIDTH: box width
+% #4 TEXT: text
+%
+% \rightshframe{BOXWIDTH}{TEXT}
+%
+% #1 BOXWIDTH: box width
+% #2 TEXT: text
+%
+% \rightshfbox{TEXT}
+%
+% #1 TEXT: text
+%
+% %rightshfr@me#1 shadow width, #2 space, #3 boxwidth, #4 text%
+\long\def\rightshfr@me#1#2#3#4{\leavevmode%
+ \vbox{\hbox{\kern#1\vbox{\hsize#3\vbox{\kern-#1\hbox{%
+ \kern-#1\fb@xit{\fboxrule}{#2}{#3}{#4}}\hrule\@height#1}}%
+ \vrule\@width#1}}\strut}
+% %rightshframe%%%%%%%%%%%%%%%%%%%%%%%%% #1 width, #2 text%%%%%
+\long\def\rightshframe#1#2{%
+ \rightshfr@me{\fboxsep}{\fboxsep}{#1}{#2}}
+% %rightshfbox%%%%%%%%%%%%%%%%%%%%%%%%% #1 text%%%%%%%%%%%%%%%%
+\long\def\rightshfbox#1{\leavevmode%
+ \vbox{\hbox{\kern\fboxsep\vbox{\vbox{\kern-\fboxsep\hbox{%
+ \kern-\fboxsep\fbox{#1}}\hrule\@height\fboxsep}}%
+ \vrule\@width\fboxsep}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{ffboxit}
+% \begin{macro}{\ffparbox}
+%
+% \begin{macrocode}
+% *****************************************
+% * ”  (ŠÂ‹«”Å) *
+% * November 2, 1991 by Shinsaku Fujita *
+% *****************************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+% %%%%%%1991 November 2 %%%ffboxit%%%%%%%%%%%%%%%%%%%%%%
+\def\ffboxit{\par\vskip1pc\hfil\vbox\bgroup
+ \hrule\hbox\bgroup\vrule\kern3pt\vbox\bgroup\kern3pt}
+\def\endffboxit{\kern3pt\egroup\kern3pt\vrule\egroup\hrule\egroup
+ \hfil\\}
+\def\ffparbox#1#2{\vbox{\hsize=#1 \noindent\strut #2\strut}}
+% \end{macrocode}
+% \end{macro}
+% \end{environment}
+%
+% \section{Framed box environment with and without shadows}
+%
+% \subsection{Framed box environment without shadows}
+%
+% \begin{macrocode}
+% %%%%%%1991 November 2 %%%frameboxit%%%old definition%%%%%%%%%%
+% with centering function
+%\def\frameboxit#1{\par\vskip1pc\hfil\vbox\bgroup
+% \hrule\hbox\bgroup\vrule\kern3pt\vbox\bgroup\kern3pt
+% \vbox\bgroup\hsize=#1 \noindent\strut
+% \@minipagetrue%
+% \everypar{\global\@minipagefalse\everypar{}}}
+%\def\endframeboxit{\strut\egroup\kern3pt\egroup%
+%\kern3pt\vrule\egroup
+% \hrule\egroup\hfil\\}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% <<Base box for box environments>>
+% \begin{fr@meboxit}{LWIDTH}{SPACE}{BWIDTH}
+% LWIDTH: line thickness
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{fr@meboxit}
+%
+% %%fr@meboxit%%%%%#1 line width, #2 space, #3 width%%%%%%%%%%%%%
+%\def\fr@meboxit#1#2#3{\gdef\fr@meline{#1}\gdef\fr@mesp{#2}%
+% \hbox\bgroup\vbox\bgroup%
+% \hrule\@height#1\hbox\bgroup%
+% \vrule\@width#1\kern#2\vbox\bgroup%
+% \kern#2\vbox\bgroup\hsize=#3\strut%
+% \@minipagetrue%
+% \everypar{\global\@minipagefalse\everypar{}}}
+%\def\endfr@meboxit{\strut\egroup%
+%\kern\fr@mesp\egroup\kern\fr@mesp\egroup\hrule\@height\fr@meline%
+%\egroup\vrule\@width\fr@meline\egroup}
+% \end{macrocode}
+%
+% \begin{environment}{fr@meboxit}
+% \begin{environment}{frameboxit}
+%
+% \begin{macrocode}
+% %%%%%%%revised by S. Fujita, January 16, 1993%%%%%%%%%%%%%%%%%%%%%
+\long\def\fr@meboxit#1#2#3{\gdef\fr@meline{#1}\gdef\fr@mesp{#2}%
+% % \setbox4=\vbox\bgroup\hsize=#3\@parboxrestore\ignorespaces}
+ \global\setbox4=\hbox\bgroup\minipage{#3}}
+% %\def\endfr@meboxit{\egroup%
+\def\endfr@meboxit{\endminipage\egroup%
+ \hbox{\vbox{\hrule\@height\fr@meline%
+ \hbox{\vrule\@width\fr@meline\kern\fr@mesp%
+ \vbox{\kern\fr@meline\kern\fr@mesp\box4\kern\fr@mesp}%
+% % \vbox{\kern\fr@mesp\box4\kern\fr@mesp}%
+ \kern\fr@mesp}\hrule\@height\fr@meline}%
+ \vrule\@width\fr@meline}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%revised by S. Fujita, January 16, 1993%%%%%%%%%%%%%%%%%%%%
+\def\frameboxit#1{\leavevmode\fr@meboxit{\fboxrule}{\fboxsep}{#1}}
+\let\endframeboxit=\endfr@meboxit
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsection{Framed box environment with shadows}
+%
+% \begin{environment}{lshfr@meboxit}
+% \begin{environment}{lshfboxit}
+%
+% \begin{macrocode}
+% *****************************************
+% * ‰e‚̂‚¢‚½”  (ŠÂ‹«”Å) *
+% * January 16, 1993 by Shinsaku Fujita *
+% * \sh@hwidth: …•½‚̉e‚Ì‘¾‚³ *
+% * \sh@vwidth: ‚’¼‚̉e‚Ì‘¾‚³ *
+% *****************************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% <<Base box for box environments>> See above
+% \begin{fr@meboxit}{LWIDTH}{SPACE}{BWIDTH}
+% LWIDTH: line thickness
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{fr@meboxit}
+%
+% <<Base box environment with left shadow>>
+% \begin{lshfr@meboxit}{HSWIDTH}{VSWIDTH}{SPACE}{BWIDTH}
+% HSWIDTH: the thickness of the horizontal shadow
+% VSWIDTH: the thickness of the vertical shadow
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{lshfr@meboxit}
+%
+% <<Box environment with left shadow>>
+% \begin{lshfboxit}{BWIDTH}
+% BWIDTH: box width
+% \end{lshfboxit}
+%
+% %%%lshfr@meboxit#1 #2 shadow width, #3 space, #4 boxwidth%%%%
+\def\lshfr@meboxit#1#2#3#4{\gdef\sh@hwidth{#1}\gdef\sh@vwidth{#2}%
+\leavevmode%
+ \vbox\bgroup\hbox\bgroup\hsize #4\vbox\bgroup%
+ \hbox\bgroup\vrule\@width\sh@vwidth%
+ \vbox\bgroup\kern-\sh@hwidth\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\endlshfr@meboxit{\endfr@meboxit%%%%\kern-\fboxrule
+ \egroup\kern-\sh@vwidth\egroup%
+ \hrule\@height\sh@hwidth\egroup\egroup\egroup%
+ \strut\kern\sh@hwidth\relax}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%lshfboxit%%%%%%%%%%%%%%%%%%%%%%%%% #1 width %%%%%%%%
+\def\lshfboxit#1{\leavevmode%
+ \lshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endlshfboxit=\endlshfr@meboxit
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \begin{environment}{rshfr@meboxit}
+% \begin{environment}{rshfboxit}
+%
+% \begin{macrocode}
+% <<Base box environment with right shadow>>
+% \begin{rshfr@meboxit}{HSWIDTH}{VSWIDTH}{SPACE}{BWIDTH}
+% HSWIDTH: the thickness of the horizontal shadow
+% VSWIDTH: the thickness of the vertical shadow
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{rshfr@meboxit}
+%
+% <<Box environment with right shadow>>
+% \begin{rshfboxit}{BWIDTH}
+% BWIDTH: box width
+% \end{rshfboxit}
+%
+% %%rshfr@meboxit#1 #2 shadow width, #3 space, #4 boxwidth%%%
+\def\rshfr@meboxit#1#2#3#4{%
+ \gdef\sh@hwidth{#1}\gdef\sh@vwidth{#2}%
+ \leavevmode%
+ \vbox\bgroup\hbox\bgroup\kern\sh@vwidth%
+ \vbox\bgroup\hsize#4\vbox\bgroup%
+ \kern-\sh@hwidth\hbox\bgroup\kern-\sh@vwidth%
+ \fr@meboxit{\fboxrule}{#3}{#4}}
+\def\endrshfr@meboxit{\endfr@meboxit\egroup%
+ \hrule\@height\sh@hwidth%
+ \egroup\egroup\vrule\@width\sh@vwidth\egroup\egroup\strut}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%rshfboxit%%%%%%%%%%%%%%%%%%%%%%%%% #1 width%%%%%%%%
+\def\rshfboxit#1{\leavevmode%
+ \rshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endrshfboxit=\endrshfr@meboxit
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsection{Framed box environment with gradient shadows}
+%
+% \begin{macro}{\hsgr@d}
+% \begin{macro}{\vsgr@d}
+% \begin{macro}{\vwgr@d}
+% \begin{macro}{\hwgr@d}
+% \begin{macro}{\vsepgr@d}
+% \begin{macro}{\hsepgr@d}
+% \begin{macro}{\nrep}
+% \begin{macro}{\nrepmax}
+%
+% \begin{macrocode}
+% %%parameters%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newdimen\hsgr@d \newdimen\vsgr@d
+\newdimen\vwgr@d \newdimen\hwgr@d
+\newdimen\vsepgr@d \newdimen\hsepgr@d
+\newcount\nrep \newcount\nrepmax
+%\nrepmax=20
+\nrepmax=25
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{grshfr@meboxit}
+% \begin{environment}{grshfboxit}
+%
+% \begin{macrocode}
+% *****************************************
+% * ŽÎ‚̉e‚̂‚¢‚½”  (ŠÂ‹«”Å) *
+% * Box environments with gradient shadow *
+% * January 16, 1993 by Shinsaku Fujita *
+% *****************************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% <<Base box environment with gradient right shadow>>
+% \begin{grshfr@meboxit}{HSWIDTH}{VSWIDTH}{SPACE}{BWIDTH}
+% HSWIDTH: the thickness of the horizontal shadow
+% VSWIDTH: the thickness of the vertical shadow
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{grshfr@meboxit}
+%
+% <<Box environment with gradient right shadow>>
+% \begin{grshfboxit}{BWIDTH}
+% BWIDTH: box width
+% \end{grshfboxit}
+% %%%%%%%%grshfr@meboxit#1 #2 shadow width, #3 space, #4 boxwidth%%%
+\def\grshfr@meboxit#1#2#3#4{%
+ \hsgr@d=0pt \advance\hsgr@d by#1 \divide\hsgr@d by\nrepmax%
+ \vsgr@d=0pt \advance\vsgr@d by#2 \divide\vsgr@d by\nrepmax%
+ \leavevmode%
+ \setbox0=\vbox\bgroup\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\brb@xit#1{\vbox{\setbox1=\hbox{#1}%
+ \offinterlineskip%
+ \hbox{\copy1\vsepgr@d=\nrep\vsgr@d%
+ \vwgr@d=\ht1\advance\vwgr@d by-\vsepgr@d%
+ \vrule\@height\vwgr@d\@width\vsgr@d}%
+ \hbox{\hsepgr@d=\nrep\hsgr@d\kern\hsepgr@d%
+ \vbox{\hwgr@d=\wd1\advance\hwgr@d by-\hsepgr@d%
+ \hrule\@height\hsgr@d\@width\hwgr@d}}}}
+\def\lprb@xit{\expandafter\setbox0=\expandafter\brb@xit{\box0}}
+\def\endgrshfr@meboxit{\endfr@meboxit\egroup%
+ \nrep=\@ne\@whilenum\nrep<\nrepmax\do%
+ {\lprb@xit\advance\nrep\@ne}\box0\relax}
+% %%%%% in TeX grammer
+%\def\endgrshfr@meboxit{\endfr@meboxit\egroup%
+% \nrep=\@ne \loop \lprb@xit \advance\nrep\@ne%
+% \ifnum \nrep<\nrepmax \repeat \box0\relax}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%grshfboxit%%%%%%%%%%%%%%%%%%%%%%%%% #1 width, #2 text%%%%%%%%
+\def\grshfboxit#1{\leavevmode%
+ \grshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endgrshfboxit=\endgrshfr@meboxit
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \begin{environment}{glshfr@meboxit}
+% \begin{environment}{glshfboxit}
+%
+% \begin{macrocode}
+% <<Base box environment with gradient left shadow>>
+% \begin{glshfr@meboxit}{HSWIDTH}{VSWIDTH}{SPACE}{BWIDTH}
+% HSWIDTH: the thickness of the horizontal shadow
+% VSWIDTH: the thickness of the vertical shadow
+% SPACE: spacing around the text
+% BWIDTH: box width
+% \end{glshfr@meboxit}
+%
+% <<Box environment with gradient left shadow>>
+% \begin{glshfboxit}{BWIDTH}
+% BWIDTH: box width
+% \end{glshfboxit}
+% %%%%%%%%glshfr@meboxit#1 #2 shadow width, #3 space, #4 boxwidth%%
+\def\glshfr@meboxit#1#2#3#4{%
+ \hsgr@d=0pt \advance\hsgr@d by#1 \divide\hsgr@d by\nrepmax%
+ \vsgr@d=0pt \advance\vsgr@d by#2 \divide\vsgr@d by\nrepmax%
+ \leavevmode%
+ \setbox0=\vbox\bgroup\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\blb@xit#1{%
+ \vbox{\setbox1=\hbox{#1}%
+ \offinterlineskip%
+ \vsepgr@d=\nrep\vsgr@d%
+ \vwgr@d=\ht1\advance\vwgr@d by-\vsepgr@d%
+ \hsepgr@d=\nrep\hsgr@d%
+ \hwgr@d=\wd1\advance\hwgr@d by-\hsepgr@d%
+ \hbox{\vrule\@height\vwgr@d\@width\vsgr@d\copy1}%
+ \hbox{\kern-\vsgr@d%
+ \vrule\@height\hsgr@d\@width\hwgr@d}}}
+% %% \hbox{\vbox{\hrule\@height\hsgr@d\@width\hwgr@d}}}}
+\def\lplb@xit{\expandafter\setbox0=\expandafter\blb@xit{\box0}}
+\def\endglshfr@meboxit{\endfr@meboxit\egroup%
+ \nrep=\@ne\@whilenum\nrep<\nrepmax\do%
+ {\lplb@xit\advance\nrep\@ne}\box0\relax}
+% %%%%% in TeX grammer
+%\def\endglshfr@meboxit{\endfr@meboxit\egroup%
+% \nrep=\@ne \loop \lplb@xit \advance\nrep\@ne%
+% \ifnum\nrep<\nrepmax\repeat\box0\relax}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%%%%glshfboxit%%%%%%%%%%%%%%%%%%%%%%%%% #1 width, #2 text%%%
+\def\glshfboxit#1{\leavevmode%
+ \glshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endglshfboxit=\endglshfr@meboxit
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \section{(Mini)screen environment}
+% \subsection{(Mini)screen environment without a title}
+%
+% \begin{macro}{\@oval}
+% \begin{macro}{\h@b@x}
+% \begin{macro}{\@vrf@}
+% \changes{v2.00}{2000/06/15}{ybaselineshift etc.}
+%
+% \begin{macrocode}
+\@ifundefined{ybaselineshift}{%
+\newdimen\ybaselineshift \ybaselineshift=\z@}{}
+\@ifundefined{tbaselineshift}{%
+\newdimen\tbaselineshift \tbaselineshift=\z@}{}
+\newdimen\@savetbaselineshift \@savetbaselineshift=\z@
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \advance\@tempdimb -2pt\relax
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\def\h@b@x#1#2#3{\hbox to\dimen1%
+ {\@oval(#3,#3)[#1]\hfil\@oval(#3,#3)[#2]}}
+\def\@vrf@#1#2{\vskip#1\leaders\vrule\@width#2\vfil\vskip#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{miniscreen}
+% \begin{environment}{screen}
+% \changes{v2.00}{2000/06/15}{ybaselineshift etc.}
+% \changes{v4.01c}{2004/12/03}{To be compatible with multicol.sty: dimen2 into dimen6}
+%
+%
+% \begin{macrocode}
+% ******************
+% * miniscreenŠÂ‹« *
+% ******************
+%
+% ASCII”ÅMicro\TeX‚ÌscreenŠÂ‹«‚ð˜g‚Ì•‚ðŽw’è‚Å‚«‚é‚悤‚ɉü•Ï
+%
+% ifcase•¶ ==> ’¼ÚŒvŽZ
+% dimen—Þ ==> dimen0 to dimen5
+% box—Þ ==> box0 and box1
+%
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+% miniscreen environment
+%
+\let\miniscreentoprule=\hrule
+\def\miniscreen{\@ifnextchar[{\@miniscreen}{\@miniscreen[0]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\miniscreen{\@ifnextchar[{\@miniscreen}{\@miniscreen[0]}}
+\def\@miniscreen[#1]#2{\dimen1=#2\relax%
+\@savetbaselineshift\tbaselineshift \tbaselineshift\z@
+\@tempcnta=-2 \multiply\@tempcnta by#1\relax%
+\advance\@tempcnta by 20\relax \dimen5=1pt
+\multiply\dimen5\@tempcnta
+\dimen4=-1pt \multiply\dimen4 by#1\relax
+\advance\dimen4 by 10pt
+\dimen3=\dimen4 \advance\dimen3 by -.2pt
+\par\vspace{.3\baselineskip}%
+\dimen6=\dimen1 \advance\dimen6 by .1pt
+\advance\dimen1 -\dimen5\relax%
+\setbox0=\hbox\bgroup\minipage{\dimen1
+\tbaselineshift\@savetbaselineshift}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\endminiscreen{\endminipage\egroup%
+\setbox1=\hbox to\dimen6{\hfil\vbox{\offinterlineskip%
+\thinlines\unitlength=1pt
+\miniscreentoprule%\hrule
+\kern\dimen3%
+\h@b@x{tl}{tr}{\@tempcnta}%
+\kern-\dimen4\box0\h@b@x{bl}{br}{\@tempcnta}%
+\kern-.4pt\hrule}\hfil}\dimen0=\ht1\noindent%
+\hbox to\dimen6{\hbox to.4pt{%
+\vbox to\dimen0{\@vrf@{\dimen4}{.4pt}}\hss}%
+\box1\hbox to.2pt{%
+ \hss\vbox to\dimen0{\@vrf@{\dimen4}{.4pt}}}\hss}}%
+% %%%%%%alternative
+%\def\miniscreen{\@ifnextchar[{\@miniscreen}{\@miniscreen[0]}}
+%\def\@miniscreen[#1]#2{\noindent\minipage{#2}\@screen[#1]}
+%\def\endminiscreen{\endscreen\endminipage}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\screen{\@ifnextchar[{\@screen}{\@miniscreen[0]{\linewidth}}}
+\def\@screen[#1]{\miniscreen[#1]{\linewidth}}
+\let\endscreen=\endminiscreen
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsection{(Mini)screen environment with a title}
+%
+% \begin{macro}{\tboxscreentoprule}
+% \begin{macro}{\tboxtitle}
+%
+% \begin{macrocode}
+\def\tboxscreentoprule{%
+\hbox to\wd0{\smash{\lower.4ex\hbox{%
+\fboxsep=2pt \fbox{\small \tboxtitle}}}\hrulefill}}
+\def\tboxtitle{\bf Memorandum}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{\tboxminiscreen}
+% \begin{environment}{\tboxscreen}
+%
+% \begin{macrocode}
+% ******************
+% * tboxscreenŠÂ‹« *
+% ******************
+% 1996/06/04 by Shinsaku Fujita
+%
+\def\tboxminiscreen{\@ifnextchar[{\vskip8pt
+ \let\miniscreentoprule=\tboxscreentoprule%
+ \@miniscreen}{\vskip8pt
+ \let\miniscreentoprule=\tboxscreentoprule%
+ \@miniscreen[0]}}
+\let\endtboxminiscreen=\endminiscreen
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\tboxscreen{\@ifnextchar[{\@tboxscreen}%
+{\@tboxscreen[0]}}
+\def\@tboxscreen[#1]{\tboxminiscreen[#1]{\linewidth}}
+\let\endtboxscreen=\endtboxminiscreen
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \section{Further boxes}
+%
+% \begin{macro}{\sboxit}
+%
+% \begin{macrocode}
+% ******************************
+% * \sboxit ¶‰E‚Ì—]—T‚Ì‚È‚¢”  *
+% ******************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\sboxit#1#2{\vbox{\hrule\hbox%
+{\vrule\vbox{\kern3pt\vbox{\hsize #1 \noindent #2}%
+\kern3pt}\vrule}\hrule}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Boxes with no height or no width}
+%
+% \begin{macro}{\bury}
+% \begin{macro}{\pushtowall}
+%
+% \begin{macrocode}
+% ***********************
+% * bury and pushtowall *
+% ***********************
+% After Chapter 7 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% \bury[‰º‚°•]{“à—e}
+% ‰º‚°•‚̃fƒtƒHƒ‹ƒg’l‚ÍC\normalbaselineksip‚Ì”¼•ª
+%
+% (‹Œ) \def\bury#1{\smash{\lower.5\normalbaselineskip\hbox{#1}}}
+% ‚±‚ê‚ÍCu‰»Šw‚ƶ‰»Šw‚Ì‚½‚ß‚ÌLaTeXv‚ÉÚ‚¹‚½’è‹`‚Å‚·D
+% ˆÈ‰º‚Ì’è‹`‚ÍC‰º‚°•‚ðƒIƒvƒVƒ‡ƒ“ˆø”‚Æ‚µ‚ÄŽæ‚é‚悤‚É
+% Šg’£‚µ‚½‚à‚Ì‚Å‚·D
+%
+\def\bury{\@ifnextchar [{\@bury}{\@bury[.5\normalbaselineskip]}}
+\def\@bury[#1]#2{\smash{\lower#1\hbox{#2}}}
+%
+% \pushtowall{“à—e}
+% …•½•ûŒü‚̉Ÿ‚µ•t‚¯‚é–½—ß (\smash‚Ì…•½•ûŒü”Å)
+%
+\def\finpushw@ll{\wd0=0pt \box0}
+\def\makepushw@ll#1{\setbox0=\hbox{#1}\finpushw@ll}
+\def\mathpushw@ll#1#2{\setbox0=\hbox{$\m@th#1{#2}$}\finpushw@ll}
+\def\pushtowall{\relax \leavevmode
+ \ifmmode\def\next{\mathpalette\mathpushw@ll}
+ \else\let\next\makepushw@ll \fi \next}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\penetrate}
+%
+% \begin{macrocode}
+% \penetrate{DIM}{OBJ}
+% •–³‚µ<OBJ>‚ðAˆóŽšˆÊ’u‚Í‚»‚Ì‚Ü‚Ü‚É‚µ‚ÄA<DIM>‚¾‚¯ˆÚ“®‚³‚¹‚éB‚±‚ÌŽž
+% ˆø‚«‘±‚­•¶Žš‚̈󎚈ʒu‚Í<OBJ>‚ª‚È‚©‚Á‚½‚Æ‚µ‚½Žž‚̈ʒu‚É‚È‚éB
+% (\bury–½—ß‚Ì…•½•ûŒü”Å)
+%
+% (”äŠr)
+% aaa bbb \penetrate{-50pt}{ccc} ddd eee fff \\
+% aaa bbb \hspace{-50pt} ccc ddd eee fff \\
+%
+\def\penetrate#1#2{\pushtowall{\hbox{\hskip#1\hbox{#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Symbols for instant photography}
+%
+% \begin{macro}{\cyandye}%%orig. |\cyan| 2010/10/01
+% \begin{macro}{\magentadye}%%orig. |\magenta| 2010/10/01
+% \begin{macro}{\yellowdye}%%orig. |\yellow| 2010/10/01
+% \begin{macro}{\cyandv}
+% \begin{macro}{\magentadv}
+% \begin{macro}{\yellowdv}
+% \begin{macro}{\agxlatent}
+% \begin{macro}{\agxdv}
+% \begin{macro}{\agx}
+%
+% \begin{macrocode}
+% ***********************
+% * instant photography *
+% ***********************
+% After Chapter 7 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\cyandye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize C}\hfil\cr\cr$\bigcirc$}\,}}
+\def\magentadye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize M}\hfil\cr\cr$\bigcirc$}\,}}
+\def\yellowdye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize Y}\hfil\cr\cr$\bigcirc$}\,}}
+\def\cyandv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize C}\hfil\cr\cr$\bigcirc$}\,}}
+\def\magentadv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize M}\hfil\cr\cr$\bigcirc$}\,}}
+\def\yellowdv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize Y}\hfil\cr\cr$\bigcirc$}\,}}
+\def\agxlatent{%
+ \mbox{\ooalign{%
+ \hfil\raise.07ex\hbox{\footnotesize $\bullet$}\hfil\cr\cr
+ $\triangle$}\,}}
+\def\agxdv{%
+ \mbox{\ooalign{\hfil\raise.07ex\hbox{%
+ \small $\spadesuit$}\hfil\cr\cr
+ $\triangle$}\,}}
+\def\agx{\mbox{$\triangle$}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Various arrows with fixed length}
+%
+% \begin{macro}{\llongrightarrow}
+% \begin{macro}{\llongleftarrow}
+% \begin{macro}{\llongleftrightarrow}
+% \begin{macro}{\Equilibarrow}
+% \begin{macro}{\Llongrightarrow}
+% \begin{macro}{\Llongleftarrow}
+% \begin{macro}{\Llongleftrightarrow}
+%
+% \begin{macrocode}
+% ***********************
+% * various long arrows *
+% ***********************
+% After Chapter 18 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\oldllongrightarrow{%%%--->
+\relbar\joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+\def\oldllongleftarrow{%%%<---
+ \leftarrow\joinrel\relbar\joinrel\relbar\joinrel\relbar}
+\def\oldllongleftrightarrow{%%%<--->
+ \leftarrow\joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+%\def\oldEquilibarrow{%%%<--- and --->
+% \mathrel{\ooalign{\raise.35ex\hbox{$\llongrightarrow$}\crcr
+% \lower.35ex\hbox{$\llongleftarrow$}}}}
+\def\oldEquilibarrow{%%%<--- and --->
+ \mathrel{\ooalign{\raise.35ex\hbox{$\oldllongrightarrow$}\crcr
+ \lower.35ex\hbox{$\oldllongleftarrow$}}}}
+\def\oldLlongrightarrow{%%%===>
+ \Relbar\joinrel\Relbar\joinrel\Relbar\joinrel\Rightarrow}
+\def\oldLlongleftarrow{%%%<===
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel\Relbar}
+\def\oldLlongleftrightarrow{%%<===>
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel\Rightarrow}
+%%%%%2009/11/19 old...
+%\let\llongrightarrow=\oldllongrightarrow%%%--->
+%\let\llongleftarrow=\oldllongleftarrow%%%<---
+%\let\llongleftrightarrow=\oldllongleftrightarrow%%%<--->
+%\let\Equilibarrow=\oldEquilibarrow%%%<--- and --->
+%\let\Llongrightarrow=\oldLlongrightarrow%%%===>
+%\let\Llongleftarrow=\oldLlongleftarrow%%%<===
+%\let\Llongleftrightarrow=\oldLlongleftrightarrow%%<===>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\llongleftharpoondown}
+% \begin{macro}{\llongrightharpoonup}
+% \begin{macro}{\equilibarrow}
+% \changes{v5.01}{2013/06/06}{bug fix. \cs{mathrel} added}
+%
+% \begin{macrocode}
+\def\oldllongleftharpoondown{%%% /---
+ \mathrel{\leftharpoondown}\joinrel\relbar\joinrel\relbar\joinrel\relbar}
+\def\oldllongrightharpoonup{%%%---/
+ \relbar\joinrel\relbar\joinrel\relbar\joinrel\mathrel{\rightharpoonup}}
+\def\oldequilibarrow{%%% /--- and ---/
+ \mathrel{\ooalign{%
+ \raise.3ex\hbox{$\oldllongrightharpoonup$}\crcr
+ \lower.3ex\hbox{$\oldllongleftharpoondown$}}}}
+%%%%%2009/11/19
+%\let\llongleftharpoondown=\oldllongleftharpoondown%%% /---
+%\let\llongrightharpoonup=\oldllongrightharpoonup%%%---/
+%\let\equilibarrow=\oldequilibarrow%%% /--- and ---/
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\eqproton}
+%
+% \begin{macrocode}
+% *******************************
+% * •½t‚Ì—¼‘¤–îˆó‚Ìã‚ÉH+‚ð‘‚­*
+% *******************************
+\def\eqproton{\stackrel{{\rm \displaystyle H}^{+}}{\Equilibarrow}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lllongrightarrow}
+% \begin{macro}{\lllongleftarrow}
+% \begin{macro}{\lllongleftrightarrow}
+% \begin{macro}{\Equiliblongarrow}
+% \begin{macro}{\Lllongrightarrow}
+% \begin{macro}{\Lllongleftarrow}
+% \begin{macro}{\Lllongleftrightarrow}
+%
+% \begin{macrocode}
+% ****************
+% * ’·‚¢’·‚¢–îˆó *
+% ****************
+\def\oldlllongrightarrow{\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+\def\oldlllongleftarrow{%%%<-------
+ \leftarrow\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar}
+\def\oldlllongleftrightarrow{%%%<------->
+ \leftarrow\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\rightarrow}
+\def\oldEquiliblongarrow{%%%<------- and ------->
+ \mathrel{\ooalign{\raise.35ex\hbox{$\oldlllongrightarrow$}\crcr
+ \lower.35ex\hbox{$\oldlllongleftarrow$}}}}
+\def\oldLllongrightarrow{%%%=======>
+ \Relbar\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Rightarrow}
+\def\oldLllongleftarrow{%%%<=======
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Relbar}
+\def\oldLllongleftrightarrow{%%<=======>
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Rightarrow}
+%%%%2009/11/19
+%\let\lllongrightarrow=\oldlllongrightarrow%%%%------>
+%\let\lllongleftarrow=\oldlllongleftarrow%%%<-------
+%\let\lllongleftrightarrow=\oldlllongleftrightarrow%%%<------->
+%\let\Equiliblongarrow=\oldEquiliblongarrow%%%<------- and ------->
+%\let\Lllongrightarrow=\oldLllongrightarrow%%%=======>
+%\let\Lllongleftarrow=\oldLllongleftarrow%%%<=======
+%\let\Lllongleftrightarrow=\oldLllongleftrightarrow%%<=======>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lllongleftharpoondown}
+% \begin{macro}{\lllongrightharpoonup}
+% \begin{macro}{\equiliblongarrow}
+% \begin{macro}{\deHBr}
+% \changes{v5.01}{2013/06/06}{bug fix. \cs{mathrel} added}
+%
+% \begin{macrocode}
+\def\oldlllongleftharpoondown{%%% /-------
+ \mathrel{\leftharpoondown}\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar}
+\def\oldlllongrightharpoonup{%%%-------/
+ \relbar\joinrel\relbar\joinrel\relbar\joinrel%
+ \relbar\joinrel\mathrel{\rightharpoonup}}
+\def\oldequiliblongarrow{%%% /------ and ------/
+ \mathrel{\ooalign{%
+ \raise.3ex\hbox{$\oldlllongrightharpoonup$}\crcr
+ \lower.3ex\hbox{$\oldlllongleftharpoondown$}}}}
+%%%%%%%%2009/11/19
+%\let\lllongleftharpoondown=\oldlllongleftharpoondown%%% /-------
+%\let\lllongrightharpoonup=\oldlllongrightharpoonup%%%-------/
+%\let\equiliblongarrow=\oldequiliblongarrow%%% /------ and ------/
+% %%%%%
+\def\deHBr{\stackrel{\displaystyle \rm -HBr}%
+{\stackrel{\displaystyle \lllongrightarrow}{\rm E2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Chemical Corrections}
+%
+% \subsection{Correction commands}
+%
+% \begin{macro}{\chemcorr}
+% \begin{macro}{\leavechemcorr}
+%
+% \changes{v2.00a}{2000/11/03}{chemcorr 3.0pt into 3.5pt}
+% \changes{v4.055}{2009/11/19}{chemcorr 3.5pt into 3.05pt}
+% \begin{macrocode}
+% ********************
+% * chemform command *
+% ********************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\chemcorr{%
+ \fontdimen16\textfont2=3.05pt
+ \fontdimen17\textfont2=3.05pt
+ %\fontdimen14\textfont2=3.8pt
+}
+\def\leavechemcorr{%
+ \fontdimen16\textfont2=1.49998pt
+ \fontdimen17\textfont2=2.47217pt
+ %\fontdimen14\textfont2=3.62892pt
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Chem Version}
+%
+% The `chem' for mathversion is introduced to describe chemical equations.
+% The `boldchem' for mathversion is introduced to describe
+% boldfaced chemical equations.
+%
+% \changes{v3.00}{2002/05/30}{Added the correction for commas and periods.}
+% \changes{v3.00}{2002/05/30}{Added the correction for Greek letters.}
+% \changes{v3.00}{2002/05/30}{Redefinition of \cs{mathversion}.}
+% \changes{v3.00}{2002/05/30}{New mathversion: boldchem}
+% \changes{v4.05}{2009/10/25}{Bugfix for chem and boldchem}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macro}{\ifnewl@tex}
+%
+% \begin{macrocode}
+\newif\ifnewl@tex \newl@textrue
+\@ifundefined{DeclareMathVersion}%
+ {\global\newl@texfalse}{\global\newl@textrue}%
+% \end{macrocode}
+% \end{macro}
+%
+% Old commands are stored temporarily.
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\def\math@chem{chem}
+\def\math@boldchem{boldchem}
+\def\math@bold{bold}
+\def\math@normal{normal}
+%%added 2005/09/02
+\let\oldalpha=\alpha
+\let\oldbeta=\beta
+\let\oldgamma=\gamma
+\let\olddelta=\delta
+\let\oldepsilon=\epsilon
+\let\oldzeta=\zeta
+\let\oldeta=\eta
+\let\oldtheta=\theta
+\let\oldiota=\iota
+\let\oldkappa=\kappa
+\let\oldlambda=\lambda
+\let\oldmu=\mu
+\let\oldnu=\nu
+\let\oldxi=\xi
+\let\oldpi=\pi
+\let\oldrho=\rho
+\let\oldsigma=\sigma
+\let\oldtau=\tau
+\let\oldupsilon=\upsilon
+\let\oldphi=\phi
+\let\oldchi=\chi
+\let\oldpsi=\psi
+\let\oldomega=\omega
+\let\oldvarepsilon=\varepsilon
+\let\oldvartheta=\vartheta
+\let\oldvarpi=\varpi
+\let\oldvarrho=\varrho
+\let\oldvarsigma=\varsigma
+\let\oldvarphi=\varphi
+\let\oldGamma=\Gamma
+\let\oldDelta=\Delta
+\let\oldTheta=\Theta
+\let\oldLamda=\Lambda
+\let\oldXi=\Xi
+\let\oldPi=\Pi
+\let\oldSigma=\Sigma
+\let\oldUpsilon=\Upsilon
+\let\oldPhi=\Phi
+\let\oldPsi=\Psi
+\let\oldOmega=\Omega
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\chemGreekletter}
+%
+% \changes{v3.01}{2004/11/17}{Redefined: \cs{chemGreekletter}}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup} and \cs{egroup} added}
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\def\chemGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21
+\ifx\math@version\math@chem
+\mathord{\hbox{\mathversion{normal}$\mathchar"#2$}}\else
+\ifx\math@version\math@boldchem
+\mathord{\hbox{\mathversion{bold}$\mathchar"#2$}}\else
+\ifx\math@version\math@bold
+\csname old#1\endcsname
+%\mathord{\hbox{\mathversion{bold}$\mathchar"#2$}}%changed 2005/09/02
+\else
+\csname old#1\endcsname
+%\mathord{\hbox{\mathversion{normal}$\mathchar"#2$}}%changed 2005/09/02
+\fi\fi\fi\egroup}}%added 2010/11/21
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chemUpGreekletter}
+%
+% \changes{v4.05}{2009/10/25}{Defined: \cs{chemUpGreekletter}}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup} and \cs{egroup} added}
+% \begin{macrocode}
+%%%\if@chemtimes\else%for chemtimes package
+\newif\ifupgreekrm \upgreekrmfalse
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\upgreekrmtrue\mathrm}
+%%%\fi
+\if@chemtimes\else\relax%for chemtimes package
+\def\chemUpGreekletter#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by SF
+\ensuremath{%
+\ifx\math@version\math@chem
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}\egroup}}%added 2010/11/21 by SF
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ChemAccent}
+%
+% \changes{v4.05}{2009/10/25}{Defined: \cs{ChemAccent}}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\def\ChemAccent#1#2#3{%
+\expandafter\def\csname #1\endcsname{%
+\ifx\math@version\math@chem
+#2{\hbox{\kern-0.15em\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\kern-0.2em\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\SetChemSymbol}
+%
+% \changes{v3.01}{2004/11/17}{New command: \cs{SetChemSymbol}}
+% \changes{v4.05}{2009/10/25}{Added due to \cs{chemUpGreekletter}}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\def\SetChemSymbol{%
+\chemGreekletter{alpha}{010B}%
+\chemGreekletter{beta}{010C}%
+\chemGreekletter{gamma}{010D}%
+\chemGreekletter{delta}{010E}%
+\chemGreekletter{epsilon}{010F}%
+\chemGreekletter{zeta}{0110}%
+\chemGreekletter{eta}{0111}%
+\chemGreekletter{theta}{0112}%
+\chemGreekletter{iota}{0113}%
+\chemGreekletter{kappa}{0114}%
+\chemGreekletter{lambda}{0115}%
+\chemGreekletter{mu}{0116}%
+\chemGreekletter{nu}{0117}%
+\chemGreekletter{xi}{0118}%
+\chemGreekletter{pi}{0119}%
+\chemGreekletter{rho}{011A}%
+\chemGreekletter{sigma}{011B}%
+\chemGreekletter{tau}{011C}%
+\chemGreekletter{upsilon}{011D}%
+\chemGreekletter{phi}{011E}%
+\chemGreekletter{chi}{011F}%
+\chemGreekletter{psi}{0120}%
+\chemGreekletter{omega}{0121}%
+\chemGreekletter{varepsilon}{0122}%
+\chemGreekletter{vartheta}{0123}%
+\chemGreekletter{varpi}{0124}%
+\chemGreekletter{varrho}{0125}%
+\chemGreekletter{varsigma}{0126}%
+\chemGreekletter{varphi}{0127}%
+%
+%\chemGreekletter{Gamma}{7000}%
+%\chemGreekletter{Delta}{7001}%
+%\chemGreekletter{Theta}{7002}%
+%\chemGreekletter{Lambda}{7003}%
+%\chemGreekletter{Xi}{7004}%
+%\chemGreekletter{Pi}{7005}%
+%\chemGreekletter{Sigma}{7006}%
+%\chemGreekletter{Upsilon}{7007}%
+%\chemGreekletter{Phi}{7008}%
+%\chemGreekletter{Psi}{7009}%
+%\chemGreekletter{Omega}{700A}%
+%
+% for uppercase Greek letters and some fonts
+% (cmmi medium or bold) 2009/10/25
+\chemUpGreekletter{Gamma}{\mathord}{00}%
+\chemUpGreekletter{Delta}{\mathord}{01}%
+\chemUpGreekletter{Theta}{\mathord}{02}%
+\chemUpGreekletter{Lambda}{\mathord}{03}%
+\chemUpGreekletter{Xi}{\mathord}{04}%
+\chemUpGreekletter{Pi}{\mathord}{05}%
+\chemUpGreekletter{Sigma}{\mathord}{06}%
+\chemUpGreekletter{Upsilon}{\mathord}{07}%
+\chemUpGreekletter{Phi}{\mathord}{08}%
+\chemUpGreekletter{Psi}{\mathord}{09}%
+\chemUpGreekletter{Omega}{\mathord}{0A}%
+\chemUpGreekletter{imath}{\mathord}{7B}%
+\chemUpGreekletter{jmath}{\mathord}{7C}%
+\chemUpGreekletter{mathless}{\mathrel}{3C}%in place of <
+\chemUpGreekletter{mathgreater}{\mathrel}{3E}% in place of >
+\chemUpGreekletter{leftharpoonup}{\mathrel}{28}%
+\chemUpGreekletter{leftharpoondown}{\mathrel}{29}%
+\chemUpGreekletter{rightharpoonup}{\mathrel}{2A}%
+\chemUpGreekletter{rightharpoondown}{\mathrel}{2B}%
+\chemUpGreekletter{ell}{\mathord}{60}%
+\chemUpGreekletter{wp}{\mathord}{7D}%
+\chemUpGreekletter{partial}{\mathord}{40}%
+\chemUpGreekletter{flat}{\mathord}{5B}%
+\chemUpGreekletter{natural}{\mathord}{5C}%
+\chemUpGreekletter{sharp}{\mathord}{5D}%
+\chemUpGreekletter{triangleleft}{\mathbin}{2F}%
+\chemUpGreekletter{triangleright}{\mathbin}{2E}%
+\chemUpGreekletter{smile}{\mathrel}{5E}%
+\chemUpGreekletter{frown}{\mathrel}{5F}%
+\chemUpGreekletter{star}{\mathbin}{3F}%
+\ChemAccent{vec}{\rlap}{7E}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathversion}
+%
+% \changes{v3.00}{2002/5/30}{Redefined: \cs{mathversion}}
+% \changes{v3.01}{2004/11/17}{Redefined: \cs{mathversion}}
+% \changes{v4.05}{2009/10/25}{Setting added for bugfix}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\DeclareRobustCommand\mathversion[1]
+ {\@nomath\mathversion
+ \expandafter\ifx\csname mv@#1\endcsname\relax
+ \@latex@error{Math version `#1' is not defined}\@eha\else
+ \edef\math@version{#1}%
+ \gdef\glb@currsize{}%
+%%%%%%2002/5/30, 2004/11/17, and 2009/10/25
+\ifx\math@version\math@chem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \mathcode`\=="313D
+ \mathcode`\?="513F
+ \mathcode`\[="415B
+ \mathcode`\]="515D
+ \mathcode`\(="4128
+ \mathcode`\)="5129
+% \mathcode`\+="212B
+ \SetChemSymbol
+\else\ifx\math@version\math@boldchem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \mathcode`\=="313D
+ \mathcode`\?="513F
+ \mathcode`\[="415B
+ \mathcode`\]="515D
+ \mathcode`\(="4128
+ \mathcode`\)="5129
+% \mathcode`\+="212B
+ \def\check{\mathaccent"7114 }
+ \def\dot{\mathaccent"715F }
+ \def\acute{\mathaccent"7113 }
+ \def\grave{\mathaccent"7112 }
+ \def\ddot{\mathaccent"717F }
+ \def\bar{\mathaccent"7116 }
+ \def\breve{\mathaccent"7115 }
+ \SetChemSymbol
+\else\ifx\math@version\math@bold
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \mathcode`\=="303D
+ \mathcode`\?="503F
+ \mathcode`\[="405B
+ \mathcode`\]="505D
+ \mathcode`\(="4028
+ \mathcode`\)="5029
+% \mathcode`\+="202B
+ \SetChemSymbol%
+\else
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \mathcode`\=="303D
+ \mathcode`\?="503F
+ \mathcode`\[="405B
+ \mathcode`\]="505D
+ \mathcode`\(="4028
+ \mathcode`\)="5029
+% \mathcode`\+="202B
+ \SetChemSymbol%
+\fi\fi\fi
+%%%%%%
+ \aftergroup\glb@settings
+ \fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SetSymbolFont}
+%
+% \changes{v3.01}{2004/11/17}{Fonts for mathverion{chem}.}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\ifnewl@tex
+\@ifundefined{mv@chem}{\DeclareMathVersion{chem}%
+\SetSymbolFont{letters}{chem}{OT1}{cmr}{m}{n}%OT1-->T1-->OT1
+\SetSymbolFont{operators}{chem}{OT1}{cmr} {m}{n}%
+\SetSymbolFont{symbols} {chem}{OMS}{cmsy}{m}{n}%
+\DeclareMathVersion{boldchem}%2002/5/30
+\SetSymbolFont{operators}{boldchem}{OT1}{cmr} {bx}{n}%
+\SetSymbolFont{letters} {boldchem}{OT1}{cmr} {b}{n}%
+\SetSymbolFont{symbols} {boldchem}{OMS}{cmsy}{b}{n}%
+}{}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathnormal}
+%
+% The macro \verb/\mathnormal/ for outputting numbers of old style
+% has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for oldsytle fonts}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\let\oldmathnormal=\mathnormal
+\def\mathnormal#1{%
+\ifx\math@version\math@chem
+%\mathgroup\@ne
+\mathord{\hbox{\usefont{OML}{cmm}{m}{it}#1}}%
+\else\ifx\math@version\math@boldchem
+%\mathgroup\@ne
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}#1}}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal{#1}%
+\upgreekrmfalse
+\else
+\oldmathnormal{#1}%
+\fi
+\else
+\oldmathnormal{#1}%
+%\mathgroup\@ne\usefont{OML}{cmm}{m}{it}%
+\fi\fi\fi}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oldstyle}
+%
+% The command \verb/\oldstyle/ should be used in the form of \verb/{\oldstyle ...}/
+% in a math mode.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for oldsytle fonts}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\def\oldstyle{\egroup%
+\ifx\math@version\math@chem
+\hbox\bgroup\usefont{OML}{cmm}{m}{it}%
+\else\ifx\math@version\math@boldchem
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal\bgroup%
+\upgreekrmfalse
+\else
+\oldmathnormal\bgroup%
+\fi
+\else
+\oldmathnormal\bgroup%
+\fi\fi\fi}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathcal}
+%
+% The macro \verb/\mathcal/ for outputting calligraphic letters
+% has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for calligraphic letters}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\let\oldmathcal=\mathcal
+\def\mathcal#1{%
+\ifx\math@version\math@chem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{m}{n}#1}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{b}{n}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldmathcal{#1}\upgreekrmfalse
+\else \oldmathcal{#1}\fi
+\else
+\oldmathcal{#1}%
+\fi\fi\fi}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cal}
+%
+% The macro \verb/\cal/ for outputting calligraphic letters
+% (a macro of declaration type) has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for calligraphic letters}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\if@chemtimes\else%for chemtimes package
+\let\oldcal=\cal
+\def\cal{%
+\ifx\math@version\math@chem
+\mathgroup\tw@\usefont{OMS}{cmsy}{m}{n}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@\usefont{OMS}{cmsy}{b}{n}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldcal\upgreekrmfalse
+\else\oldcal\fi
+\else
+\oldcal%
+\fi\fi\fi}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chemform}
+%
+% \changes{v2.00a}{2000/11/03}{change the position of chemcorr
+% in chemform command}
+%
+% \begin{macrocode}
+\ifnewl@tex
+\def\chemform#1{{\mathversion{chem}%
+$\chemcorr #1$\leavechemcorr}}
+\else
+\def\chemform#1{\chemcorr
+$\rm #1$\leavechemcorr}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{chemmath}
+%
+% \changes{v2.00a}{2000/11/03}{change the position of chemcorr
+% in chemmath command}
+% \begin{macrocode}
+% ************************
+% * chemmath environment *
+% ************************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\ifnewl@tex
+\def\chemmath{\begingroup\mathversion{chem}\[\chemcorr}
+\def\endchemmath{\]\endgroup\leavechemcorr}
+\else
+\def\chemmath{\chemcorr\[\rm}
+\def\endchemmath{\] \leavechemcorr}
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{chemeqn}
+%
+% \changes{v2.00a}{2000/11/03}{change the position of chemcorr
+% in chemeqn command}
+% \begin{macrocode}
+% ***********************
+% * chemeqn environment *
+% ***********************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\ifnewl@tex
+\def\chemeqn{\begingroup\mathversion{chem}\equation\chemcorr}
+%\def\endchemeqn{\endequation\endgroup\leavechemcorr}
+\def\endchemeqn{\endequation\leavechemcorr\endgroup}%bug fix 2013/6/15
+\else
+\def\chemeqn{\chemcorr\equation\rm}
+\def\endchemeqn{\endequation\leavechemcorr}
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{chemeqnarray}
+%
+% \changes{v2.00a}{2000/11/03}{change the position of chemcorr
+% in chemeqnarray command}
+% \begin{macrocode}
+% ****************************
+% * chemeqnarray environment *
+% ****************************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\ifnewl@tex
+\def\chemeqnarray{\stepcounter{equation}
+ \let\@currentlabel=\theequation
+ \global\@eqnswtrue
+ \global\@eqcnt\z@\tabskip\@centering
+ \let\\=\@eqncr
+ \begingroup\mathversion{chem}
+$$\chemcorr\halign to \displaywidth\bgroup
+ \@eqnsel\hskip\@centering
+ $\rm \displaystyle\tabskip\z@{##}$ &
+ \global\@eqcnt\@ne
+ \hskip \arraycolsep \hfil$\rm{##}$\hfil &
+ \global\@eqcnt\tw@ \hskip \arraycolsep
+ $\rm \displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering &
+ \llap{##}\tabskip\z@\cr}
+\def\endchemeqnarray{\endeqnarray\endgroup
+\leavechemcorr}
+\else
+\def\chemeqnarray{\stepcounter{equation}
+ \let\@currentlabel=\theequation
+ \global\@eqnswtrue
+ \global\@eqcnt\z@\tabskip\@centering
+ \let\\=\@eqncr \chemcorr
+$$\halign to \displaywidth\bgroup
+ \@eqnsel\hskip\@centering
+ $\rm \displaystyle\tabskip\z@{##}$ &
+ \global\@eqcnt\@ne
+ \hskip \arraycolsep \hfil$\rm{##}$\hfil &
+ \global\@eqcnt\tw@ \hskip \arraycolsep
+ $\rm \displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering &
+ \llap{##}\tabskip\z@\cr}
+\def\endchemeqnarray{\endeqnarray
+\leavechemcorr}
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{chemeqnarray*}
+%
+% \begin{macrocode}
+% *****************************
+% * chemeqnarray* environment *
+% *****************************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+% bug fix (1996/06/15) the end command is replaced.
+\let\@seqncr=\@eqncr
+\ifnewl@tex
+\@namedef{chemeqnarray*}{%
+\def\@eqncr{\nonumber\@seqncr}\chemeqnarray}
+\@namedef{endchemeqnarray*}{\nonumber\endchemeqnarray}
+\else
+\@namedef{chemeqnarray*}{%
+\def\@eqncr{\nonumber\@seqncr\rm}\chemeqnarray}
+\@namedef{endchemeqnarray*}{\nonumber\endchemeqnarray}
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{chemeqnarraya}
+%
+% \begin{macrocode}
+% *****************
+% * chemeqnarraya *
+% *****************
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by S. Fujita
+% revised may 21 1992 by S. Fujita
+\def\chemeqnarraya{\chemeqn@rraya \chemeqnarray}
+\def\chemeqn@rraya{%
+ \c@enumi=\c@equation
+ \advance\c@enumi\@ne
+ \c@equation=\z@
+ \@ifundefined{chapter}%
+{\def\theequation{\theenumi\alph{equation}}}%
+{\def\theequation{%
+\thechapter.\theenumi\alph{equation}}}}
+\def\endchemeqnarraya{\endchemeqnarray
+\global\c@equation=\c@enumi}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\if@display}
+% This switch is to meat the \textsf{amsmath} package.
+% \changes{v4.05}{2009/10/25}{A new command}
+% \begin{macrocode}
+\@ifundefined{if@display}{\newif\if@display}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{environment}{ChemEquation}
+% \changes{v4.05}{2009/10/25}{A new environment}
+% \begin{macrocode}
+\newif\ifupgreekrm \upgreekrmfalse
+\let\ChemEqFont=\rm
+\def\ChemEquation{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+\everydisplay{\ChemEqFont\chemcorr\@displaytrue\upgreekrmtrue}\equation}
+\def\endChemEquation{\endequation\everymath{}\everydisplay{}%
+\@displayfalse\leavechemcorr\upgreekrmfalse}
+% \end{macrocode}
+% \end{environment}
+
+% \begin{environment}{ChemEqnarray}
+% \changes{v4.05}{2009/10/25}{A new environment}
+% \begin{macrocode}
+\def\ChemEqnarray{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+%\everydisplay{\ChemEqFont\chemcorr\@displaytrue}
+\eqnarray}
+\def\endChemEqnarray{\endeqnarray\everymath{}%
+%\everydisplay{}\@displayfalse
+\leavechemcorr\upgreekrmfalse}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\ChemForm}
+%
+% \changes{v4.05}{2009/10/25}{A new command}
+% \begin{macrocode}
+\def\ChemForm#1{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}$#1$\everymath{}%
+\leavechemcorr\upgreekrmfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{ChemEqnarray*}
+% \changes{v4.05}{2009/10/25}{A new environment}
+% \begin{macrocode}
+\@namedef{ChemEqnarray*}{\def\@eqncr{\nonumber\@seqncr}\ChemEqnarray}
+\@namedef{endChemEqnarray*}{\nonumber\endChemEqnarray}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\newchemenvironment}
+% This command is used to creat a new environment for chemistry based on an appropriate
+% environment for mathematics.
+%
+% \begin{verbatim}
+% \newchemenviroment{New Name}{Old Environment}
+% \end{verbatim}
+%
+% \changes{v4.05}{2009/11/19}{A new command}
+% \begin{macrocode}
+\def\newchemenvironment#1#2{%
+\expandafter\def\csname #1\endcsname{%
+\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+%\everydisplay{\ChemEqFont\chemcorr\@displaytrue}%
+\csname #2\endcsname}%
+\expandafter\def\csname end#1\endcsname{%
+\csname end#2\endcsname\everymath{}%
+%\everydisplay{}\@displayfalse%
+\leavechemcorr\upgreekrmfalse}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{XyMcompd and XyMtab Environments}
+%
+% These environments are designed for XyM Markup Language
+% to treat a XyM tag and a XyMtab tag.
+%
+% \begin{environment}{XyMcompd}
+% \changes{v2.00}{1999/03/16}{New Environment}
+%
+% \begin{macrocode}
+\def\XyMcompd(#1,#2)(#3,#4)#5#6{%
+\begingroup
+\edef\xymrefa{#5}\edef\xymrefb{#6}%
+\edef\kkk{#1}%
+\begin{tabular}{c}
+\ifx\kkk\empty\else
+\begin{sfpicture}(#1,#2)(#3,#4)\fi\ignorespaces}
+\def\endXyMcompd{%
+\ifx\kkk\empty\else\end{sfpicture}\fi
+\\[-\baselineskip]
+\ifx\xymrefa\empty\else{\bf \compd\xymrefb
+\expandafter\label{\xymrefa}}\fi
+\end{tabular}\endgroup}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{XyMtab}
+% \changes{v2.00}{1999/03/16}{New Environment}
+%
+% \begin{macrocode}
+\def\XyMtab#1{\center\tabular{#1c}}
+\def\endXyMtab{\endtabular\endcenter}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\derivlist}
+% \changes{v2.00}{1999/03/17}{New command}
+%
+% For example, derivatives are specified as follows:
+% \begin{verbatim}
+% \derivlist{X = Cl;X = F;X = Me}
+% \end{verbatim}
+%
+% \begin{macrocode}
+\def\derivlist#1{%
+\mbox{}\\
+\begingroup\def\arraystretch{0.7}%
+\begin{tabular}{l}
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\hbox to2em{\hss\derivnum}:\space\member \\
+\fi}\end{tabular}\endgroup}
+% \end{macrocode}
+% \end{macro}
+% This command is used in the XyMderiv environment.
+%
+% \begin{environment}{XyMderiv}
+% \changes{v2.00}{1999/03/17}{New Environment}
+%
+% \begin{macrocode}
+\def\XyMderiv{\tabular{c}}
+\def\endXyMderiv{\endtabular}
+% \end{macrocode}
+% \end{environment}
+%
+% \section{Useful commands}
+%
+% \begin{macro}{\endash}
+% \begin{macro}{\Cent}
+% \begin{macro}{\degC}
+% \begin{macro}{\degF}
+%
+% \begin{macrocode}
+% ***************
+% * temperature *
+% ***************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\endash{\mbox{--{}}}
+\def\Cent{\mbox{\raise.9ex\hbox{%
+ \scriptsize$\circ$}\kern-.12em\hbox{C}}}
+\def\degC{\mbox{\kern-.2em\char'27\kern-.3em C}}
+\def\degF{\mbox{\kern-.2em\char'27\kern-.3em F}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\yubin}
+% \begin{macro}{\Yubin}
+%
+% \begin{macrocode}
+% *******************
+% * yubin and Yubin *
+% *******************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\yubin{$\overline{\top}$}
+\def\Yubin#1{\leavevmode\hbox{\vbox{\hrule\@height.12ex\@width.7em
+\kern.28ex\hrule\@height.12ex\@width.7em
+\hbox{\kern.35em\kern-.06ex
+\vbox{\hrule\@height1ex\@width.12ex}}}\kern.1em{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\xlethead}
+%
+% \begin{macrocode}
+% ***********
+% * lethead *
+% ***********
+% After Chapter 18 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\xlethead#1{%
+ \kern-.6667\baselineskip \line{\hrulefill\phantom{ #1 }\hrulefill}
+ \kern-.6667\baselineskip \line{\hrulefill\phantom{ #1 }\hrulefill}
+ \kern-.6667\baselineskip \line{\hrulefill\hbox{ #1 }\hrulefill}}
+\def\lethead#1#2#3{\def\line{\hbox to\textwidth}
+ \vbox{\line{\hrulefill}
+ \xlethead{#1} \xlethead{#2} \xlethead{#3}
+ \kern-.6667\baselineskip \line{\hrulefill}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\horizon}
+%
+% \begin{macrocode}
+% ************
+% * baseline *
+% ************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\horizon{\rule{12pt}{0.1pt}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Logos}
+%
+% \begin{macro}{\resetfontsize}
+% \begin{macro}{\Bib}
+% \begin{macro}{\BibTeX}
+% \begin{macro}{\jBibTeX}
+%
+% \begin{macrocode}
+% ********************************
+% * Redefinition of Logos *
+% * January 3, 1993 by S. Fujita *
+% ********************************
+% After Chapter 12 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\newcount\TestCount \def\tmpkern{\kern0pt}
+\ifnewl@tex \else
+\def\resetfontsize{%
+ \ifx\@currsize\normalsize%
+ \def\tmpf@ntsize{%
+ \load{\footnotesize}{\sf}%
+ \load{\footnotesize}{\sl}%
+ \load{\footnotesize}{\bf}%
+ \def\tmpkern{\kern0.05em}%
+ \footnotesize}\fi
+ \ifx\@currsize\scriptsize \let\tmpf@ntsize=\tiny\fi
+ \ifx\@currsize\footnotesize \let\tmpf@ntsize=\tiny\fi
+ \ifx\@currsize\small \let\tmpf@ntsize=\scriptsize\fi
+ \ifx\@currsize\large \let\tmpf@ntsize=\small\fi
+ \ifx\@currsize\Large \let\tmpf@ntsize=\@normalsize\fi
+ \ifx\@currsize\LARGE \let\tmpf@ntsize=\large\fi
+ \ifx\@currsize\huge \let\tmpf@ntsize=\Large\fi
+ \ifx\@currsize\Huge \let\tmpf@ntsize=\LARGE\fi}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifnewl@tex \else
+\def\Bib{\ifnum \fam=\m@ne \fam=\z@ \fi\TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle B$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf
+ $\fam=\TestCount\kern-.025em I\kern-.045em B$}%
+ \else%
+ \hbox{$\fam\TestCount\scriptstyle\kern-.025em I\kern-.045em B$}%
+ \fi
+}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\def\BibTeX{\Bib\kern-.08em\TeX}
+%\def\jBibTeX{\leavevmode\lower.46ex\hbox{J}
+%\kern-.08em\Bib\kern-.08em\TeX}
+% %%\def\BibTeX{%
+% {\rm B\kern-.05em{\sc i\kern-.025emb}\kern-.08em\TeX}}
+% %%%%%1996/04/20 by Shinsaku Fujita%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnewl@tex
+\DeclareRobustCommand{\BibTeX}{%
+ B\hbox{$\m@th$\csname S@\f@size\endcsname
+ \fontsize\sf@size\z@ \math@fontsfalse\selectfont
+ \kern-.025em I\kern-.045em B}\kern-.08em\TeX}
+\else \def\BibTeX{\Bib\kern-.08em\TeX} \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifnewl@tex
+\DeclareRobustCommand{\jBibTeX}{\mbox{%
+ \if b\expandafter\@car\f@series\@nil\boldmath\fi
+ \leavevmode\lower.46ex\hbox{J}\kern-.08em\BibTeX}}
+\else
+\def\jBibTeX{\leavevmode\lower.46ex\hbox{J}%
+ \kern-.08em\Bib\kern-.08em\TeX}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\jTeX}
+% \begin{macro}{\pTeX}
+%
+% \begin{macrocode}
+\def\jTeX{\leavevmode\lower.46ex\hbox{J}\kern-.15em\TeX}
+\def\pTeX{p\kern-.15em\TeX}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Sub}
+% \begin{macro}{\Subbib}
+%
+% \begin{macrocode}
+\ifnewl@tex \else
+\def\Sub{\leavevmode\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam{S}%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \ifx\aaa\bbb\resetfontsize%
+ \hbox{\tmpf@ntsize\bf%
+ $\fam=\TestCount\kern-.045em{U}\kern-.12em{B}$}%
+ \else%
+ \hbox{$\fam\TestCount%
+ \scriptstyle\kern-.045em{U}\kern-.12em{B}$}%
+ \fi}
+\fi
+%\def\SubBib{\Sub\kern-.08em\Bib}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%1996/04/20 by Shinsaku Fujita%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnewl@tex
+\DeclareRobustCommand{\SubBib}{S\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont%
+ \kern-.045em{U}\kern-.12em{B}}B\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont \kern-.025em I\kern-.045em B}}
+\else \def\SubBib{\Sub\kern-.08em\Bib} \fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\La}
+% \begin{macro}{\LaTeX}
+%
+% \begin{macrocode}
+%\def\La{\TestCount=\fam \leavevmode L\raise.42ex
+% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}}
+\ifnewl@tex \else
+\def\La{\ifnum \fam=\m@ne \fam=\z@ \fi\TestCount=\fam%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}\leavevmode{L}%
+ \ifx\aaa\bbb \resetfontsize%
+ \raise.46ex\hbox{{\tmpf@ntsize\bf%
+ $\fam\TestCount\kern-.4em\tmpkern{A}$}}%
+ \else%
+ \raise.42ex\hbox{$\fam\TestCount\scriptstyle\kern-.3em{A}$}%
+ \fi}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+% %%%%%1996/04/20 by Shinsaku Fujita%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\def\LaTeX{\La\kern-.15em\TeX}
+\ifnewl@tex \else \def\LaTeX{\La\kern-.15em\TeX}\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\def\jLaTeX{\leavevmode\lower.46ex\hbox{J}\kern-.08em\LaTeX}
+\ifnewl@tex
+ \DeclareRobustCommand{\jLaTeX}%
+ {\leavevmode\lower.46ex\hbox{J}\kern-.08em\LaTeX}
+\else
+ \def\jLaTeX{\leavevmode\lower.46ex\hbox{J}\kern-.08em\LaTeX}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\PiC}
+% \begin{macro}{\PiCTeX}
+%
+% \begin{macrocode}
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\def\PiCTeX{\PiC\kern-.11em\TeX}
+\ifnewl@tex
+\DeclareRobustCommand{\PiCTeX}{\PiC\kern-.11em\TeX}
+\else
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tpic}
+% \begin{macro}{\PiCTeX}
+%
+% \begin{macrocode}
+%\def\tpic{\TestCount=\fam \leavevmode T%
+% \hbox{$\fam\TestCount\scriptstyle
+%\kern-.025em P\kern-.025em I\kern-.025emC$}}
+\ifnewl@tex
+\DeclareRobustCommand{\tpic}{T\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.025em P\kern-.025em I\kern-.025emC}}
+\else
+\def\tpic{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam \leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize\hbox{$\fam=\TestCount\textstyle T$}%
+ \ifx\aaa\bbb\hbox{\tmpf@ntsize\bf$\fam=\TestCount%
+ \kern-.025em P\kern-.025em I\kern-.025emC$}\else%
+ \hbox{$\fam\TestCount\scriptstyle%
+ \kern-.025em P\kern-.025em I\kern-.025emC$}\fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Post}
+% \begin{macro}{\Script}
+% \begin{macro}{\PostScript}
+%
+% \begin{macrocode}
+\ifnewl@tex \else
+\def\Post{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle P$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf%
+ $\fam=\TestCount\kern-.045em O\kern-.015em ST$}%
+ \else%
+ \hbox{$\fam\TestCount%
+ \scriptstyle\kern-.045em O\kern-.015em ST$}%
+ \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\Script{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle S$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf$\fam=\TestCount\kern-.035em %
+ C\kern-.015em R\kern-.015em IP\kern-.035em T$}%
+ \else%
+ \hbox{$\fam\TestCount\scriptstyle\kern-.035em %
+ C\kern-.015em R\kern-.015em IP\kern-.035em T$}%
+ \fi}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\def\PostScript{\Post\Script}
+% %%%%%1996/04/20 by Shinsaku Fujita%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifnewl@tex
+\DeclareRobustCommand{\PostScript}{P\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.045em O\kern-.015em ST}S\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.035em C\kern-.015em R\kern-.015em IP\kern-.035em T}}
+\else
+\def\PostScript{\Post\Script}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Double and triple bonds}
+%
+% \begin{macro}{\triplebond}
+% \begin{macro}{\doublebond}
+% \begin{macro}{\tbond}
+% \begin{macro}{\dbond}
+%
+% \begin{macrocode}
+% *****************
+% * “ñd ŽOdŒ‹‡ *
+% *****************
+\def\triplebond{\leavevmode\kern.2pt\raisebox{.2ex}{%
+\hbox{\vbox{\hrule height.03ex width1em\kern.4ex
+\hrule height.03ex width1em\kern.4ex
+\hrule height.03ex width1em}}}\hskip.4pt}
+\def\doublebond{\leavevmode\kern.2pt\raisebox{.3ex}{%
+\hbox{\vbox{\hrule height.03ex width1em\kern.6ex
+\hrule height.03ex width1em}}}\hskip.4pt}
+\let\tbond=\triplebond
+\let\dbond=\doublebond
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Round Arrows}
+%
+% The macro |\calcontrolpoints| is comman to define round arrows in the \textsf{chmst-ps}
+% pacakage and in the \textsf{chmst-pdf} pacakage. Two control points for Bezier curves
+% are automatically calculated to draw round arrows.
+%
+% \begin{macro}{\upwardarrowcalcA}
+% \changes{v5.00}{2010/10/01}{Control points for round arrows}
+% This macro gives a midpoint between two control points for
+% drawing an upward-curved arrow.
+% This is used in the definition of the |\calcontrolpoints| command.
+%
+% \begin{macrocode}
+\def\upwardarrowcalcA{%
+\@tempcntXc=\@tempcntXa
+\advance\@tempcntXc by\@tempcntXb
+\advance\@tempcntXc by-\@tempcntYb
+\advance\@tempcntXc by\@tempcntYa
+\divide\@tempcntXc by2\relax
+%%
+\@tempcntYc=\@tempcntYa
+\advance\@tempcntYc by\@tempcntYb
+\advance\@tempcntYc by-\@tempcntXa
+\advance\@tempcntYc by\@tempcntXb
+\divide\@tempcntYc by2\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\upwardarrowcalcB}
+% \changes{v5.00}{2010/10/01}{Control points for round arrows}
+% This macro gives two control points for drawing an upward-curved arrow.
+% This is used in the definition of the |\calcontrolpoints| command.
+%
+% \begin{macrocode}
+\def\upwardarrowcalcB{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% control point: (\@tempcntXc, \@tempcntYc)%
+% control point: (\@cnttempa, \@cnttempb) %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\@tempcntXc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntYd
+\advance\@cnttempa by-\@tempcntXd
+\advance\@cnttempb by-\@tempcntYd}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\downwardarrowcalcA}
+% \changes{v5.00}{2010/10/01}{Control points for round arrows}
+% This macro gives a midpoint between two control points for
+% drawing a down ward-curved arrow.
+% This is used in the definition of the |\calcontrolpoints| command.
+%
+% \begin{macrocode}
+\def\downwardarrowcalcA{%
+\@tempcntXc=\@tempcntXa
+\advance\@tempcntXc by\@tempcntXb
+\advance\@tempcntXc by\@tempcntYb
+\advance\@tempcntXc by-\@tempcntYa
+\divide\@tempcntXc by2\relax
+%
+\@tempcntYc=\@tempcntYa
+\advance\@tempcntYc by\@tempcntYb
+\advance\@tempcntYc by\@tempcntXa
+\advance\@tempcntYc by-\@tempcntXb
+\divide\@tempcntYc by2\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\downwardarrowcalcA}
+% \changes{v5.00}{2010/10/01}{Control points for round arrows}
+% This macro gives two control points for drawing a down ward-curved arrow.
+% This is used in the definition of the |\calcontrolpoints| command.
+%
+% \begin{macrocode}
+\def\downwardarrowcalcB{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% control point: (\@tempcntXc, \@tempcntYc)%
+% control point: (\@cnttempa, \@cnttempb) %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\@tempcntXc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntYd
+\advance\@cnttempa by-\@tempcntXd
+\advance\@cnttempb by-\@tempcntYd}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\calcontrolpoints}
+% \changes{v5.00}{2010/10/01}{Control points for round arrows}
+%
+% \begin{macrocode}
+\def\calcontrolpoints#1{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arrow (\@tempcntXa,\@tempcntYa) <---> (\@tempcntXb, \@tempcntYb) %
+% #1=0, 2, 4: upward round arrow %
+% #1=1, 3, 5: downward round arrow %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@tempcntXd=\@tempcntXb
+\advance\@tempcntXd by-\@tempcntXa
+\divide\@tempcntXd by4\relax
+\@tempcntYd=\@tempcntYb
+\advance\@tempcntYd by-\@tempcntYa
+\divide\@tempcntYd by4\relax
+%
+\ifcase#1\relax%upward round: 0
+\upwardarrowcalcA%
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 1
+\downwardarrowcalcA%
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\or%upward round: 2
+\upwardarrowcalcA%
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntYc by\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 3
+\downwardarrowcalcA%
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntYc by-\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\or%upward round: 4
+\upwardarrowcalcA%
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntYc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 5
+\downwardarrowcalcA%
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntYc by-\@tempcntXd
+\advance\@tempcntYc by-\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The following macros are supported only by the \textsf{chmst-ps} pacakage.
+%
+% \begin{macrocode}
+%\let\reactDEqarrow=\reactdeqarrow
+%\let\reactUEqarrow=\reactueqarrow
+%\let\reactVEqarrow=\reactveqarrow
+%\let\reactREqarrow=\reactreqarrow
+%\let\reactLEqarrow=\reactleqarrow
+%\let\reactEqarrow=\reacteqarrow
+%\let\lllongleftharpoonup=\lllongleftarrow
+%\let\lllongrightharpoondown=\lllongrightarrow
+%\let\llongleftharpoonup=\llongleftarrow
+%\let\llongrightharpoondown=\llongrightarrow
+% \end{macrocode}
+%
+% \section{Initial Setting and Switch to Arrows of Original Styles}
+%
+% \begin{macro}{\chemistsw}
+% \begin{macrocode}
+\def\chemistsw{%setting of the chemist package
+\let\reactrarrow=\oldreactrarrow%
+\let\reactlarrow=\oldreactlarrow
+\let\reactlrarrow=\oldreactlrarrow
+\let\reacteqarrow=\oldreacteqarrow
+%%%%
+\let\reactreqarrow=\oldreactreqarrow%
+\let\reactleqarrow=\oldreactleqarrow
+%%%%
+\let\reactdarrow=\oldreactdarrow%
+\let\reactuarrow=\oldreactuarrow
+\let\reactveqarrow=\oldreactveqarrow
+\let\reactduarrow=\oldreactduarrow
+%%%%
+\let\reactsearrow=\oldreactsearrow%
+\let\reactnwarrow=\oldreactnwarrow
+\let\reactnearrow=\oldreactnearrow
+\let\reactswarrow=\oldreactswarrow
+%%%%
+\let\reactdeqarrow=\oldreactdeqarrow%
+\let\reactueqarrow=\oldreactueqarrow
+\let\reactulrarrow=\oldreactulrarrow
+\let\reactdlrarrow=\oldreactdlrarrow
+%%%%
+\let\schemelarrow=\oldschemelarrow%
+\let\schemerarrow=\oldschemerarrow
+\let\schemelrarrow=\oldschemelrarrow
+%%%%
+\let\llongrightarrow=\oldllongrightarrow%%%--->%
+\let\llongleftarrow=\oldllongleftarrow%%%<---
+\let\llongleftrightarrow=\oldllongleftrightarrow%%%<--->
+\let\Equilibarrow=\oldEquilibarrow%%%<--- and --->
+\let\Llongrightarrow=\oldLlongrightarrow%%%===>
+\let\Llongleftarrow=\oldLlongleftarrow%%%<===
+\let\Llongleftrightarrow=\oldLlongleftrightarrow%%<===>
+%%%%%
+\let\llongleftharpoondown=\oldllongleftharpoondown%%% /---%
+\let\llongrightharpoonup=\oldllongrightharpoonup%%%---/
+\let\equilibarrow=\oldequilibarrow%%% /--- and ---/
+%%%%%
+\let\lllongrightarrow=\oldlllongrightarrow%%%%------>%
+\let\lllongleftarrow=\oldlllongleftarrow%%%<-------
+\let\lllongleftrightarrow=\oldlllongleftrightarrow%%%<------->
+\let\Equiliblongarrow=\oldEquiliblongarrow%%%<------- and ------->
+\let\Lllongrightarrow=\oldLllongrightarrow%%%=======>
+\let\Lllongleftarrow=\oldLllongleftarrow%%%<=======
+\let\Lllongleftrightarrow=\oldLllongleftrightarrow%%<=======>
+%%%%%
+\let\lllongleftharpoondown=\oldlllongleftharpoondown%%% /-------%
+\let\lllongrightharpoonup=\oldlllongrightharpoonup%%%-------/
+\let\equiliblongarrow=\oldequiliblongarrow%%% /------ and ------/
+%%%%tentative setting
+\let\reactDEqarrow=\oldreactdeqarrow
+\let\reactUEqarrow=\oldreactueqarrow
+\let\reactVEqarrow=\oldreactveqarrow
+\let\reactREqarrow=\oldreactreqarrow
+\let\reactLEqarrow=\oldreactleqarrow
+\let\reactEqarrow=\oldreacteqarrow
+\let\lllongleftharpoonup=\oldlllongleftarrow
+\let\lllongrightharpoondown=\oldlllongrightarrow
+\let\llongleftharpoonup=\oldllongleftarrow
+\let\llongrightharpoondown=\oldllongrightarrow
+%%%%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Dummy commands are declared for compatibility to PS and PDF mode.
+% In paticular, arrows defined in the \textsf{chmst-ps} and \textsf{chmst-pdf} packages
+% are defined as futile commands.
+% \changes{v5.00}{2010/10/01}{for bond coloring and the LaTeX Project Public License}
+% \begin{macrocode}
+\RequirePackage{assurechemist}
+% \end{macrocode}
+%
+% Initial setting:
+% \begin{macrocode}
+\chemistsw%setting of the chemist package
+\mathversion{normal}
+%</chemist>
+% \end{macrocode}
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/chemist.ins b/macros/latex/contrib/xymtex/chemist/chemist.ins
new file mode 100644
index 0000000000..0fdfaa6469
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemist.ins
@@ -0,0 +1,63 @@
+\def\batchfile{chemist.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 1996, 2000, 2001, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita6
+
+This file is part of the ChemSci system.
+=======================================
+
+Released on June 1, 1996
+Released on November 3, 2000 (v2.00a)
+Released on June 20, 2001 (v2.01)
+Released on August 30, 2004 (v4.01)
+Released on November 17, 2004 (v4.01b)
+Released on December 02, 2004 (v4.01c)
+Released on September 02, 2005 (v4.03)
+Released on October 25, 2009 (v4.04)
+Released on November 08, 2009 (v4.05)
+Released on November 21, 2010 (v5.00a) bug fix
+Released on June 06, 2013 (v5.01) bug fix
+
+Copyright (C) 1996, 2000, 2001, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita, all rights reserved.
+This style file is created for submitting a manuscript to
+scientific journals. This style file is to be contained in the
+``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+
+For using this file, see
+ Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+ Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+
+For PostScript output, use chmst-ps.sty together with chemist.sty.
+
+Copying of this file is authorized only if either
+
+ (1) you make absolutely no changes to your copy, including name and
+ directory name
+ (2) if you do make changes,
+ (a) you name it something other than the names included in the
+ ``chemist'' directory and
+ (b) you acknowledge the original name.
+ This restriction ensures that all standard styles are identical.
+
+=======================================
+
+This file is a modification of latex.tex (LaTeX2.09) and of latex.ltx
+(a LaTeX2e), the reused parts of which is subject to
+Copyright 1994 the LaTeX3 project and the individual authors (For further
+copyright information see the file legal.txt of the LaTeX2e standard
+distribution, and any other copyright indicated in this file.)
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{chemist.drv}{t}{%
+ \from{chemist.dtx}{driver}}
+
+\generateFile{chemist.sty}{t}{%
+ \from{chemist.dtx}{chemist}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/chemist.sty b/macros/latex/contrib/xymtex/chemist/chemist.sty
new file mode 100644
index 0000000000..a633df70a0
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemist.sty
@@ -0,0 +1,1492 @@
+%%
+%% This is file `chemist.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chemist.dtx (with options: `chemist')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1996, 2000, 2001, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita6
+%%
+%% This file is part of the ChemSci system.
+%% =======================================
+%%
+%% Released on June 1, 1996
+%% Released on November 3, 2000 (v2.00a)
+%% Released on June 20, 2001 (v2.01)
+%% Released on August 30, 2004 (v4.01)
+%% Released on November 17, 2004 (v4.01b)
+%% Released on December 02, 2004 (v4.01c)
+%% Released on September 02, 2005 (v4.03)
+%% Released on October 25, 2009 (v4.04)
+%% Released on November 08, 2009 (v4.05)
+%% Released on November 21, 2010 (v5.00a) bug fix
+%% Released on June 06, 2013 (v5.01) bug fix
+%%
+%% Copyright (C) 1996, 2000, 2001, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita, all rights reserved.
+%% This style file is created for submitting a manuscript to
+%% scientific journals. This style file is to be contained in the
+%% ``chemist'' or ``xymtex'' directory which is an input directory for TeX.
+%%
+%% For using this file, see
+%% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+%% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%%
+%% For PostScript output, use chmst-ps.sty together with chemist.sty.
+%%
+%% Copying of this file is authorized only if either
+%%
+%% (1) you make absolutely no changes to your copy, including name and
+%% directory name
+%% (2) if you do make changes,
+%% (a) you name it something other than the names included in the
+%% ``chemist'' directory and
+%% (b) you acknowledge the original name.
+%% This restriction ensures that all standard styles are identical.
+%%
+%% =======================================
+%%
+%% This file is a modification of latex.tex (LaTeX2.09) and of latex.ltx
+%% (a LaTeX2e), the reused parts of which is subject to
+%% Copyright 1994 the LaTeX3 project and the individual authors (For further
+%% copyright information see the file legal.txt of the LaTeX2e standard
+%% distribution, and any other copyright indicated in this file.)
+%%
+%%%%%%%%%%
+%%%%%%%%%%
+%%%%%%%%%%
+%%%%%%%%%%
+%%%%%%%%%%
+%%%%%%%%%%
+%%%%%%%%%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `chemist.dtx' ver1.01a (for LaTeX2e) 1996/06/15
+%% `chemist.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chemist.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% `chemist.dtx' ver5.00a (for LaTeX2e) 2010/11/21
+%% by Shinsaku Fujita
+%%
+
+%%%%%%%%
+\def\j@urnalname{chemist} \def\journalID{chemist}
+\def\versi@ndate{June 6, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+%%%%%%%%%%
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chemist.sty ver5.01 (for LaTeX2e) 2013/06/06[SF]}
+\@ifundefined{ifchemtimes}{\newif\ifchemtimes}{}%from chemtimes
+\@ifundefined{if@chemtimes}{\newif\if@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@chemtimestrue}
+\@chemtimesfalse
+\ProcessOptions
+\if@chemtimes
+\if@@chemtimes\else
+\ifchemtimes\else
+ \PackageError{chemist}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded}
+\fi\fi\fi
+\@ifundefined{chapter}{\newcounter{compd}}{\newcounter{compd}[chapter]}
+\def\thecompd{\arabic{compd}}
+\def\compd{\leavevmode\refstepcounter{compd}{\large\bf \thecompd}}
+\def\nocompd{\refstepcounter{compd}}
+\def\compdlabel#1{\compd \label{#1}}
+\def\nocompdlabel#1{\nocompd \label{#1}}
+\@ifundefined{bf}{\def\bf{\normalfont\bfseries}}{}
+\def\cref#1{{\bf \ref{#1}}}
+\def\compdfbox#1#2#3{\framebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\compdmbox#1#2#3{\makebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\lbcompdpbox#1#2#3{\parbox{#2}{\vskip 2em
+ \parbox{#2}{#3 \par \centering{\compdlabel{#1}}\vskip 2em }}}
+\newcounter{deriv}[compd]
+\def\thederiv {\thecompd\alph{deriv}}
+\def\deriv{\leavevmode\refstepcounter{deriv}{\large\bf \thederiv}}
+\def\noderiv{\refstepcounter{deriv}}
+\def\derivnum{%
+\leavevmode\refstepcounter{deriv}{\large\bf \alph{deriv}}}
+\def\derivlabel#1{\deriv \label{#1}}
+\def\noderivlabel#1{\noderiv \label{#1}}
+\def\derivfbox#1#2#3{\framebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\derivmbox#1#2#3{\makebox[#1]{\rule[-0.3mm]{0pt}{#2} #3 }}
+\def\lbderivpbox#1#2#3{\parbox{#2}{\vskip 2em
+ \parbox{#2}{#3 \par \centering{\derivlabel{#1}}\vskip 2em }}}
+\def\deriva{\leavevmode\refstepcounter{deriv}{\large\bf \alph{deriv}}}
+\def\noderiva{\refstepcounter{deriv}}
+\def\derivalabel#1{\deriva \label{#1}}
+\def\noderivalabel#1{\noderiva \label{#1}}
+\def\cdonecell#1#2#3{\raisebox{#1}{\parbox{#2}{\centering{#3}}}}
+\def\cdtwocell#1#2#3#4{\raisebox{#1}{
+ \parbox{#2}{\centering{#3} \par \vskip 3pt \centering{#4} }}}
+\def\leftrightarrowfill{$\m@th \mathord\leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord- \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\rightarrow$}
+\def\Leftarrowfill{$\m@th \mathord\Leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord=$}
+\def\Rightarrowfill{$\m@th \mathord= \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\Rightarrow$}
+\def\Leftrightarrowfill{$\m@th \mathord\Leftarrow \mkern-6mu
+ \cleaders\hbox{$\mkern-2mu \mathord= \mkern-2mu$}\hfill
+ \mkern-6mu \mathord\Rightarrow$}
+\newdimen\reactarrowsep
+\def\reactarrowseprate{1.0}
+\reactarrowsep=0pt
+\def\oldreactrarrow{\@ifnextchar[{\oldreact@rarrow}{\oldreact@rarrow[0pt]}}
+\def\oldreact@rarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactlarrow{\@ifnextchar[{\oldreact@larrow}{\oldreact@larrow[0pt]}}
+\def\oldreact@larrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactlrarrow{\@ifnextchar[{\oldreact@lrarrow}{\oldreact@lrarrow[0pt]}}
+\def\oldreact@lrarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\centering{\leftrightarrowfill} \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreacteqarrow{\@ifnextchar[{\oldreact@eqarrow}{\oldreact@eqarrow[0pt]}}
+\def\oldreact@eqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par \vskip-0.55\normalbaselineskip%
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+%%%%%%2009/11/19
+\def\eqlbarrowstretch{0.6}%reduction rate of arrow length
+\def\oldreactreqarrow{\@ifnextchar[{\oldreact@reqarrow}{\oldreact@reqarrow[0pt]}}
+\def\oldreact@reqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering\dimen0=#3
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\rightarrowfill \par \vskip-0.55\normalbaselineskip%
+ \leavevmode\hbox to\eqlbarrowstretch\dimen0{\leftarrowfill} \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+\def\oldreactleqarrow{\@ifnextchar[{\oldreact@leqarrow}{\oldreact@leqarrow[0pt]}}
+\def\oldreact@leqarrow[#1]#2#3#4#5{\ensuremath{\mathbin{\hskip#1\raisebox{#2}{%
+ \parbox{#3}{\centering\dimen0=#3
+ \baselineskip=.8\normalbaselineskip
+ \ChemStrut{#4}\par
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep
+ \leavevmode\hbox to\eqlbarrowstretch\dimen0{\rightarrowfill} \par
+ \vskip-0.55\normalbaselineskip%
+ \leavevmode\leftarrowfill \par
+ \vskip\reactarrowseprate\reactarrowsep
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}}}}}
+%%%%%2009/11/19
+\def\k@nz@n#1{\@tempdima=#1\relax
+\@tempcnta=\@tempdima \@tempcntb=\unitlength
+\divide\@tempcnta by \@tempcntb
+\edef\kanzanchi{\the\@tempcnta}%
+\divide\@tempcnta by2\relax
+\edef\kanzanhalf{\the\@tempcnta}}
+\def\oldreactdarrow{\@ifnextchar[{\oldreact@darrow}{\oldreact@darrow[0pt]}}
+\def\oldreact@darrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanchi){\vector(0,-1){\kanzanchi}}
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\oldreactuarrow{\@ifnextchar[{\oldreact@uarrow}{\oldreact@uarrow[0pt]}}
+\def\oldreact@uarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,0){\vector(0,1){\kanzanchi}}
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\oldreactveqarrow{\@ifnextchar[%]
+{\oldreact@veqarrow}{\oldreact@veqarrow[0pt]}}
+\def\oldreact@veqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(40,\kanzanchi)(0,0)
+\Put@Direct(40,0){\vector(0,1){\kanzanchi}}%
+\Put@Direct(0,\kanzanchi){\vector(0,-1){\kanzanchi}}%
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\oldreactduarrow{\@ifnextchar[{\oldreact@duarrow}{\oldreact@duarrow[0pt]}}
+\def\oldreact@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt
+\begin{tabular}{c}\begin{sfpicture}(0,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanhalf){\vector(0,1){\kanzanhalf}}%
+\Put@Direct(0,\kanzanhalf){\vector(0,-1){\kanzanhalf}}%
+\end{sfpicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+%%%%2009/11/19
+\def\oldreactsearrow{\@ifnextchar[{\oldreact@searrow}{\oldreact@searrow[0pt]}}
+\def\oldreact@searrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,\kanzanchi){\vector(1,-1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactnwarrow{\@ifnextchar[{\oldreact@nwarrow}{\oldreact@nwarrow[0pt]}}
+\def\oldreact@nwarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanchi,0){\vector(-1,1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactnearrow{\@ifnextchar[{\oldreact@nearrow}{\oldreact@nearrow[0pt]}}
+\def\oldreact@nearrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,0){\vector(1,1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactswarrow{\@ifnextchar[{\oldreact@swarrow}{\oldreact@swarrow[0pt]}}
+\def\oldreact@swarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanchi,\kanzanchi){\vector(-1,-1){\kanzanchi}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+%%%%%2009/11/19
+\def\oldreactdeqarrow{\@ifnextchar[%]
+{\oldreact@deqarrow}{\oldreact@deqarrow[0pt]}}
+\def\oldreact@deqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(0,\kanzanchi){\Put@Direct(15,15){\vector(1,-1){\kanzanchi}}}%
+\Put@Direct(\kanzanchi,0){\Put@Direct(-15,-15){\vector(-1,1){\kanzanchi}}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactueqarrow{\@ifnextchar[%]
+{\oldreact@ueqarrow}{\oldreact@ueqarrow[0pt]}}
+\def\oldreact@ueqarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)
+\Put@Direct(0,0){\Put@Direct(-15,15){\vector(1,1){\kanzanchi}}}
+\Put@Direct(\kanzanchi,\kanzanchi){\Put@Direct(15,-15){\vector(-1,-1){\kanzanchi}}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactulrarrow{\@ifnextchar[%]
+{\oldreact@ulrarrow}{\oldreact@ulrarrow[0pt]}}
+\def\oldreact@ulrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(1,1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(-1,-1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{%
+\begin{tabular}[t]{l}#5\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\raise1ex\hbox to0pt{\hss
+\begin{tabular}[b]{r}#4\end{tabular}}}%
+\end{sfpicture}}}
+\def\oldreactdlrarrow{\@ifnextchar[%]
+{\oldreact@dlrarrow}{\oldreact@dlrarrow[0pt]}}
+\def\oldreact@dlrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{\k@nz@n{#3}%
+\def\arraystretch{0.8}%
+\begin{sfpicture}(\kanzanchi,\kanzanchi)(0,0)%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(-1,1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\vector(1,-1){\kanzanhalf}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\hbox to0pt{%
+\begin{tabular}[b]{l}#4\end{tabular}\hss}}%
+\Put@Direct(\kanzanhalf,\kanzanhalf){\lower2ex\hbox to0pt{\hss
+\begin{tabular}[t]{r}#5\end{tabular}}}%
+\end{sfpicture}}}
+%%%%%2009/11/19
+\def\oldschemelarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Leftarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+\def\oldschemerarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Rightarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+\def\oldschemelrarrow#1#2#3#4{\raisebox{#1}{%
+ \parbox{#2}{\centering
+ \baselineskip=.8\normalbaselineskip #3 \par
+ \vskip-0.2\normalbaselineskip
+ \centering{\Leftrightarrowfill} \par
+ \vskip-0.1\normalbaselineskip #4}}}
+%%%%2009/11/19
+\def\ChemStrut{\mbox{\vphantom{A}}}
+\def\changespace#1{\def\baselinestretch{#1} \@normalsize}
+\def\tbcaption{\def\@captype{table}\caption}
+\def\fgcaption{\def\@captype{figure}\caption}
+\def\smcaption{\def\@captype{scheme}\caption}
+%%%%%%%%%%%1991 November 7%%%chapinitial%%%%%%%%%%%%%
+\def\chap@initial#1%
+{\medbreak\begingroup\clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak}
+ \noindent\hangindent28pt\hangafter=-2
+\hbox to0pt{\hskip-\hangindent
+\hbox to28pt{\hss\raise-4pt\hbox{\lower3pt\hbox{\Huge\bf #1}} }
+} \hskip-5pt plus2pt minus2pt}
+\outer\def\chapinitial{\chap@initial}
+\def\yen{\leavevmode\hbox{\setbox0=\hbox{Y}%
+\setbox1=\vbox{\hrule height.05\ht0 width.96\wd0%
+\kern.18\ht0\hrule height.05\ht0 width.96\wd0}%
+\setbox1=\hbox to\wd0{\raise.3\ht0\box1\hss}%
+{\ooalign{\hfil\box1\hfil\crcr\box0}}}}
+\newif\ifverbswitch \verbswitchtrue
+\let\old@verbatim\@verbatim
+\let\old@xverbatim\@xverbatim
+\let\old@sxverbatim\@sxverbatim
+\begingroup
+ \catcode`\|=0 \catcode`\\=13
+ |gdef|verbh@@k{|catcode`|\=13 |let\=|yen}
+|endgroup
+\def\verb{\begingroup \catcode``=13 \@noligs
+ \tt \let\do\@makeother \dospecials
+ \ifverbswitch \verbh@@k \fi \@ifstar{\@sverb}{\@verb}}
+\begingroup
+\catcode`|=0 \catcode`[=1 \catcode`]=2
+\catcode`\{=12 \catcode`\}=12 \catcode`\\=13
+|gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
+|gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
+|endgroup
+\newdimen\verbatimleftmargin \verbatimleftmargin\leftmargini
+\newdimen\verbatimbaselineskip \verbatimbaselineskip11pt
+\def\verbatimsize{\small}
+\def\@verbatim{\trivlist \item[]%
+ \if@minipage \else \vskip\baselineskip%
+ \vskip-\verbatimbaselineskip \vskip\parskip\fi
+ \leftskip\@totalleftmargin
+ \if@minipage \else \advance\leftskip\verbatimleftmargin \fi
+ \rightskip\z@ \parindent\z@ \parfillskip\@flushglue \parskip\z@
+ \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par}
+ \obeylines \verbatimsize \baselineskip\verbatimbaselineskip \tt
+ \catcode``=13 \@noligs \let\do\@makeother \dospecials}
+\def\verbatim{\ifverbswitch \@verbatim \else \old@verbatim \fi
+\frenchspacing \@vobeyspaces
+\ifverbswitch \verbh@@k \@xverbatim \else \old@xverbatim \fi}
+\@namedef{verbatim*}{%
+ \ifverbswitch \@verbatim \verbh@@k \@sxverbatim
+ \else \old@verbatim \old@sxverbatim \fi}
+\def\@sverb#1{\def\@tempa ##1#1{##1\endgroup}\@tempa}
+\def\@verb{\obeyspaces \frenchspacing \@sverb}
+\def\@sverbtim{\obeyspaces\@verbatim}
+\let\endverbatim=\endtrivlist
+\@namedef{varbatim*}{\@verbatim\@sxverbatim}
+\expandafter\let\csname endverbatim*\endcsname =\endtrivlist
+\long\def\fb@xit#1#2#3#4{%
+\setbox4=\vbox{\hsize#3\noindent#4}%
+\vbox{\hrule\@height#1\hbox{\vrule\@width#1\kern#2\vbox{%
+\kern#2\box4\kern#2}\kern#1\vrule\@width#1}\hrule\@height#1}}
+\long\def\fboxit#1#2{\fb@xit{\fboxrule}{\fboxsep}{#1}{#2}}
+\long\def\leftshfr@me#1#2#3#4{\leavevmode%
+ \vbox{\hbox{\hsize #3\vbox{%
+ \hbox{\vrule\@width #1%
+ \vbox{\kern-#1\fb@xit{%
+ \fboxrule}{#2}{#3}{#4}\kern-\fboxrule}\kern-#1}%
+ \hrule\@height#1}}}\strut\hskip #1\relax}
+\long\def\leftshframe#1#2{%
+ \leftshfr@me{\fboxsep}{\fboxsep}{#1}{#2}}
+\long\def\leftshfbox#1{\leavevmode\setbox0=\hbox{\fbox{#1}}%
+ \vbox{\hbox{\vbox{\hbox{\vrule\@width\fboxsep\vbox{%
+ \kern-\fboxsep\box0\kern-\fboxrule}\kern-\fboxsep}%
+ \hrule\@height\fboxsep}}}\hskip\fboxsep\relax} %%%%
+\long\def\rightshfr@me#1#2#3#4{\leavevmode%
+ \vbox{\hbox{\kern#1\vbox{\hsize#3\vbox{\kern-#1\hbox{%
+ \kern-#1\fb@xit{\fboxrule}{#2}{#3}{#4}}\hrule\@height#1}}%
+ \vrule\@width#1}}\strut}
+\long\def\rightshframe#1#2{%
+ \rightshfr@me{\fboxsep}{\fboxsep}{#1}{#2}}
+\long\def\rightshfbox#1{\leavevmode%
+ \vbox{\hbox{\kern\fboxsep\vbox{\vbox{\kern-\fboxsep\hbox{%
+ \kern-\fboxsep\fbox{#1}}\hrule\@height\fboxsep}}%
+ \vrule\@width\fboxsep}}}
+\def\ffboxit{\par\vskip1pc\hfil\vbox\bgroup
+ \hrule\hbox\bgroup\vrule\kern3pt\vbox\bgroup\kern3pt}
+\def\endffboxit{\kern3pt\egroup\kern3pt\vrule\egroup\hrule\egroup
+ \hfil\\}
+\def\ffparbox#1#2{\vbox{\hsize=#1 \noindent\strut #2\strut}}
+\long\def\fr@meboxit#1#2#3{\gdef\fr@meline{#1}\gdef\fr@mesp{#2}%
+ \global\setbox4=\hbox\bgroup\minipage{#3}}
+\def\endfr@meboxit{\endminipage\egroup%
+ \hbox{\vbox{\hrule\@height\fr@meline%
+ \hbox{\vrule\@width\fr@meline\kern\fr@mesp%
+ \vbox{\kern\fr@meline\kern\fr@mesp\box4\kern\fr@mesp}%
+ \kern\fr@mesp}\hrule\@height\fr@meline}%
+ \vrule\@width\fr@meline}}
+\def\frameboxit#1{\leavevmode\fr@meboxit{\fboxrule}{\fboxsep}{#1}}
+\let\endframeboxit=\endfr@meboxit
+\def\lshfr@meboxit#1#2#3#4{\gdef\sh@hwidth{#1}\gdef\sh@vwidth{#2}%
+\leavevmode%
+ \vbox\bgroup\hbox\bgroup\hsize #4\vbox\bgroup%
+ \hbox\bgroup\vrule\@width\sh@vwidth%
+ \vbox\bgroup\kern-\sh@hwidth\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\endlshfr@meboxit{\endfr@meboxit%%%%\kern-\fboxrule
+ \egroup\kern-\sh@vwidth\egroup%
+ \hrule\@height\sh@hwidth\egroup\egroup\egroup%
+ \strut\kern\sh@hwidth\relax}
+\def\lshfboxit#1{\leavevmode%
+ \lshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endlshfboxit=\endlshfr@meboxit
+\def\rshfr@meboxit#1#2#3#4{%
+ \gdef\sh@hwidth{#1}\gdef\sh@vwidth{#2}%
+ \leavevmode%
+ \vbox\bgroup\hbox\bgroup\kern\sh@vwidth%
+ \vbox\bgroup\hsize#4\vbox\bgroup%
+ \kern-\sh@hwidth\hbox\bgroup\kern-\sh@vwidth%
+ \fr@meboxit{\fboxrule}{#3}{#4}}
+\def\endrshfr@meboxit{\endfr@meboxit\egroup%
+ \hrule\@height\sh@hwidth%
+ \egroup\egroup\vrule\@width\sh@vwidth\egroup\egroup\strut}
+\def\rshfboxit#1{\leavevmode%
+ \rshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endrshfboxit=\endrshfr@meboxit
+\newdimen\hsgr@d \newdimen\vsgr@d
+\newdimen\vwgr@d \newdimen\hwgr@d
+\newdimen\vsepgr@d \newdimen\hsepgr@d
+\newcount\nrep \newcount\nrepmax
+\nrepmax=25
+\def\grshfr@meboxit#1#2#3#4{%
+ \hsgr@d=0pt \advance\hsgr@d by#1 \divide\hsgr@d by\nrepmax%
+ \vsgr@d=0pt \advance\vsgr@d by#2 \divide\vsgr@d by\nrepmax%
+ \leavevmode%
+ \setbox0=\vbox\bgroup\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\brb@xit#1{\vbox{\setbox1=\hbox{#1}%
+ \offinterlineskip%
+ \hbox{\copy1\vsepgr@d=\nrep\vsgr@d%
+ \vwgr@d=\ht1\advance\vwgr@d by-\vsepgr@d%
+ \vrule\@height\vwgr@d\@width\vsgr@d}%
+ \hbox{\hsepgr@d=\nrep\hsgr@d\kern\hsepgr@d%
+ \vbox{\hwgr@d=\wd1\advance\hwgr@d by-\hsepgr@d%
+ \hrule\@height\hsgr@d\@width\hwgr@d}}}}
+\def\lprb@xit{\expandafter\setbox0=\expandafter\brb@xit{\box0}}
+\def\endgrshfr@meboxit{\endfr@meboxit\egroup%
+ \nrep=\@ne\@whilenum\nrep<\nrepmax\do%
+ {\lprb@xit\advance\nrep\@ne}\box0\relax}
+\def\grshfboxit#1{\leavevmode%
+ \grshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endgrshfboxit=\endgrshfr@meboxit
+\def\glshfr@meboxit#1#2#3#4{%
+ \hsgr@d=0pt \advance\hsgr@d by#1 \divide\hsgr@d by\nrepmax%
+ \vsgr@d=0pt \advance\vsgr@d by#2 \divide\vsgr@d by\nrepmax%
+ \leavevmode%
+ \setbox0=\vbox\bgroup\fr@meboxit{\fboxrule}{#3}{#4}}
+\def\blb@xit#1{%
+ \vbox{\setbox1=\hbox{#1}%
+ \offinterlineskip%
+ \vsepgr@d=\nrep\vsgr@d%
+ \vwgr@d=\ht1\advance\vwgr@d by-\vsepgr@d%
+ \hsepgr@d=\nrep\hsgr@d%
+ \hwgr@d=\wd1\advance\hwgr@d by-\hsepgr@d%
+ \hbox{\vrule\@height\vwgr@d\@width\vsgr@d\copy1}%
+ \hbox{\kern-\vsgr@d%
+ \vrule\@height\hsgr@d\@width\hwgr@d}}}
+\def\lplb@xit{\expandafter\setbox0=\expandafter\blb@xit{\box0}}
+\def\endglshfr@meboxit{\endfr@meboxit\egroup%
+ \nrep=\@ne\@whilenum\nrep<\nrepmax\do%
+ {\lplb@xit\advance\nrep\@ne}\box0\relax}
+\def\glshfboxit#1{\leavevmode%
+ \glshfr@meboxit{\fboxsep}{\fboxsep}{\fboxsep}{#1}}
+\let\endglshfboxit=\endglshfr@meboxit
+\@ifundefined{ybaselineshift}{%
+\newdimen\ybaselineshift \ybaselineshift=\z@}{}
+\@ifundefined{tbaselineshift}{%
+\newdimen\tbaselineshift \tbaselineshift=\z@}{}
+\newdimen\@savetbaselineshift \@savetbaselineshift=\z@
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \advance\@tempdimb -2pt\relax
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\def\h@b@x#1#2#3{\hbox to\dimen1%
+ {\@oval(#3,#3)[#1]\hfil\@oval(#3,#3)[#2]}}
+\def\@vrf@#1#2{\vskip#1\leaders\vrule\@width#2\vfil\vskip#1}
+\let\miniscreentoprule=\hrule
+\def\miniscreen{\@ifnextchar[{\@miniscreen}{\@miniscreen[0]}}
+\def\miniscreen{\@ifnextchar[{\@miniscreen}{\@miniscreen[0]}}
+\def\@miniscreen[#1]#2{\dimen1=#2\relax%
+\@savetbaselineshift\tbaselineshift \tbaselineshift\z@
+\@tempcnta=-2 \multiply\@tempcnta by#1\relax%
+\advance\@tempcnta by 20\relax \dimen5=1pt
+\multiply\dimen5\@tempcnta
+\dimen4=-1pt \multiply\dimen4 by#1\relax
+\advance\dimen4 by 10pt
+\dimen3=\dimen4 \advance\dimen3 by -.2pt
+\par\vspace{.3\baselineskip}%
+\dimen6=\dimen1 \advance\dimen6 by .1pt
+\advance\dimen1 -\dimen5\relax%
+\setbox0=\hbox\bgroup\minipage{\dimen1
+\tbaselineshift\@savetbaselineshift}}%
+\def\endminiscreen{\endminipage\egroup%
+\setbox1=\hbox to\dimen6{\hfil\vbox{\offinterlineskip%
+\thinlines\unitlength=1pt
+\miniscreentoprule%\hrule
+\kern\dimen3%
+\h@b@x{tl}{tr}{\@tempcnta}%
+\kern-\dimen4\box0\h@b@x{bl}{br}{\@tempcnta}%
+\kern-.4pt\hrule}\hfil}\dimen0=\ht1\noindent%
+\hbox to\dimen6{\hbox to.4pt{%
+\vbox to\dimen0{\@vrf@{\dimen4}{.4pt}}\hss}%
+\box1\hbox to.2pt{%
+ \hss\vbox to\dimen0{\@vrf@{\dimen4}{.4pt}}}\hss}}%
+\def\screen{\@ifnextchar[{\@screen}{\@miniscreen[0]{\linewidth}}}
+\def\@screen[#1]{\miniscreen[#1]{\linewidth}}
+\let\endscreen=\endminiscreen
+\def\tboxscreentoprule{%
+\hbox to\wd0{\smash{\lower.4ex\hbox{%
+\fboxsep=2pt \fbox{\small \tboxtitle}}}\hrulefill}}
+\def\tboxtitle{\bf Memorandum}
+\def\tboxminiscreen{\@ifnextchar[{\vskip8pt
+ \let\miniscreentoprule=\tboxscreentoprule%
+ \@miniscreen}{\vskip8pt
+ \let\miniscreentoprule=\tboxscreentoprule%
+ \@miniscreen[0]}}
+\let\endtboxminiscreen=\endminiscreen
+\def\tboxscreen{\@ifnextchar[{\@tboxscreen}%
+{\@tboxscreen[0]}}
+\def\@tboxscreen[#1]{\tboxminiscreen[#1]{\linewidth}}
+\let\endtboxscreen=\endtboxminiscreen
+\def\sboxit#1#2{\vbox{\hrule\hbox%
+{\vrule\vbox{\kern3pt\vbox{\hsize #1 \noindent #2}%
+\kern3pt}\vrule}\hrule}}
+\def\bury{\@ifnextchar [{\@bury}{\@bury[.5\normalbaselineskip]}}
+\def\@bury[#1]#2{\smash{\lower#1\hbox{#2}}}
+\def\finpushw@ll{\wd0=0pt \box0}
+\def\makepushw@ll#1{\setbox0=\hbox{#1}\finpushw@ll}
+\def\mathpushw@ll#1#2{\setbox0=\hbox{$\m@th#1{#2}$}\finpushw@ll}
+\def\pushtowall{\relax \leavevmode
+ \ifmmode\def\next{\mathpalette\mathpushw@ll}
+ \else\let\next\makepushw@ll \fi \next}
+\def\penetrate#1#2{\pushtowall{\hbox{\hskip#1\hbox{#2}}}}
+\def\cyandye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize C}\hfil\cr\cr$\bigcirc$}\,}}
+\def\magentadye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize M}\hfil\cr\cr$\bigcirc$}\,}}
+\def\yellowdye{\mbox{$\bigcirc$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize Y}\hfil\cr\cr$\bigcirc$}\,}}
+\def\cyandv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize C}\hfil\cr\cr$\bigcirc$}\,}}
+\def\magentadv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize M}\hfil\cr\cr$\bigcirc$}\,}}
+\def\yellowdv{\mbox{$\bigotimes$\kern-.06em{--}\kern-.06em
+ \ooalign{\hfil
+ \raise.05ex\hbox{\scriptsize Y}\hfil\cr\cr$\bigcirc$}\,}}
+\def\agxlatent{%
+ \mbox{\ooalign{%
+ \hfil\raise.07ex\hbox{\footnotesize $\bullet$}\hfil\cr\cr
+ $\triangle$}\,}}
+\def\agxdv{%
+ \mbox{\ooalign{\hfil\raise.07ex\hbox{%
+ \small $\spadesuit$}\hfil\cr\cr
+ $\triangle$}\,}}
+\def\agx{\mbox{$\triangle$}}
+\def\oldllongrightarrow{%%%--->
+\relbar\joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+\def\oldllongleftarrow{%%%<---
+ \leftarrow\joinrel\relbar\joinrel\relbar\joinrel\relbar}
+\def\oldllongleftrightarrow{%%%<--->
+ \leftarrow\joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+\def\oldEquilibarrow{%%%<--- and --->
+ \mathrel{\ooalign{\raise.35ex\hbox{$\oldllongrightarrow$}\crcr
+ \lower.35ex\hbox{$\oldllongleftarrow$}}}}
+\def\oldLlongrightarrow{%%%===>
+ \Relbar\joinrel\Relbar\joinrel\Relbar\joinrel\Rightarrow}
+\def\oldLlongleftarrow{%%%<===
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel\Relbar}
+\def\oldLlongleftrightarrow{%%<===>
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel\Rightarrow}
+%%%%%2009/11/19 old...
+\def\oldllongleftharpoondown{%%% /---
+ \mathrel{\leftharpoondown}\joinrel\relbar\joinrel\relbar\joinrel\relbar}
+\def\oldllongrightharpoonup{%%%---/
+ \relbar\joinrel\relbar\joinrel\relbar\joinrel\mathrel{\rightharpoonup}}
+\def\oldequilibarrow{%%% /--- and ---/
+ \mathrel{\ooalign{%
+ \raise.3ex\hbox{$\oldllongrightharpoonup$}\crcr
+ \lower.3ex\hbox{$\oldllongleftharpoondown$}}}}
+%%%%%2009/11/19
+\def\eqproton{\stackrel{{\rm \displaystyle H}^{+}}{\Equilibarrow}}
+\def\oldlllongrightarrow{\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar\joinrel\rightarrow}
+\def\oldlllongleftarrow{%%%<-------
+ \leftarrow\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar}
+\def\oldlllongleftrightarrow{%%%<------->
+ \leftarrow\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\rightarrow}
+\def\oldEquiliblongarrow{%%%<------- and ------->
+ \mathrel{\ooalign{\raise.35ex\hbox{$\oldlllongrightarrow$}\crcr
+ \lower.35ex\hbox{$\oldlllongleftarrow$}}}}
+\def\oldLllongrightarrow{%%%=======>
+ \Relbar\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Rightarrow}
+\def\oldLllongleftarrow{%%%<=======
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Relbar}
+\def\oldLllongleftrightarrow{%%<=======>
+ \Leftarrow\joinrel\Relbar\joinrel\Relbar\joinrel%
+ \Relbar\joinrel\Rightarrow}
+%%%%2009/11/19
+\def\oldlllongleftharpoondown{%%% /-------
+ \mathrel{\leftharpoondown}\joinrel\relbar\joinrel\relbar%
+ \joinrel\relbar\joinrel\relbar}
+\def\oldlllongrightharpoonup{%%%-------/
+ \relbar\joinrel\relbar\joinrel\relbar\joinrel%
+ \relbar\joinrel\mathrel{\rightharpoonup}}
+\def\oldequiliblongarrow{%%% /------ and ------/
+ \mathrel{\ooalign{%
+ \raise.3ex\hbox{$\oldlllongrightharpoonup$}\crcr
+ \lower.3ex\hbox{$\oldlllongleftharpoondown$}}}}
+%%%%%%%%2009/11/19
+\def\deHBr{\stackrel{\displaystyle \rm -HBr}%
+{\stackrel{\displaystyle \lllongrightarrow}{\rm E2}}}
+\def\chemcorr{%
+ \fontdimen16\textfont2=3.05pt
+ \fontdimen17\textfont2=3.05pt
+ %\fontdimen14\textfont2=3.8pt
+}
+\def\leavechemcorr{%
+ \fontdimen16\textfont2=1.49998pt
+ \fontdimen17\textfont2=2.47217pt
+ %\fontdimen14\textfont2=3.62892pt
+}
+\newif\ifnewl@tex \newl@textrue
+\@ifundefined{DeclareMathVersion}%
+ {\global\newl@texfalse}{\global\newl@textrue}%
+\if@chemtimes\else%for chemtimes package
+\def\math@chem{chem}
+\def\math@boldchem{boldchem}
+\def\math@bold{bold}
+\def\math@normal{normal}
+%%added 2005/09/02
+\let\oldalpha=\alpha
+\let\oldbeta=\beta
+\let\oldgamma=\gamma
+\let\olddelta=\delta
+\let\oldepsilon=\epsilon
+\let\oldzeta=\zeta
+\let\oldeta=\eta
+\let\oldtheta=\theta
+\let\oldiota=\iota
+\let\oldkappa=\kappa
+\let\oldlambda=\lambda
+\let\oldmu=\mu
+\let\oldnu=\nu
+\let\oldxi=\xi
+\let\oldpi=\pi
+\let\oldrho=\rho
+\let\oldsigma=\sigma
+\let\oldtau=\tau
+\let\oldupsilon=\upsilon
+\let\oldphi=\phi
+\let\oldchi=\chi
+\let\oldpsi=\psi
+\let\oldomega=\omega
+\let\oldvarepsilon=\varepsilon
+\let\oldvartheta=\vartheta
+\let\oldvarpi=\varpi
+\let\oldvarrho=\varrho
+\let\oldvarsigma=\varsigma
+\let\oldvarphi=\varphi
+\let\oldGamma=\Gamma
+\let\oldDelta=\Delta
+\let\oldTheta=\Theta
+\let\oldLamda=\Lambda
+\let\oldXi=\Xi
+\let\oldPi=\Pi
+\let\oldSigma=\Sigma
+\let\oldUpsilon=\Upsilon
+\let\oldPhi=\Phi
+\let\oldPsi=\Psi
+\let\oldOmega=\Omega
+\fi
+\if@chemtimes\else%for chemtimes package
+\def\chemGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21
+\ifx\math@version\math@chem
+\mathord{\hbox{\mathversion{normal}$\mathchar"#2$}}\else
+\ifx\math@version\math@boldchem
+\mathord{\hbox{\mathversion{bold}$\mathchar"#2$}}\else
+\ifx\math@version\math@bold
+\csname old#1\endcsname
+\else
+\csname old#1\endcsname
+\fi\fi\fi\egroup}}%added 2010/11/21
+\fi
+%%%\if@chemtimes\else%for chemtimes package
+\newif\ifupgreekrm \upgreekrmfalse
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\upgreekrmtrue\mathrm}
+%%%\fi
+\if@chemtimes\else\relax%for chemtimes package
+\def\chemUpGreekletter#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by SF
+\ensuremath{%
+\ifx\math@version\math@chem
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}\egroup}}%added 2010/11/21 by SF
+\fi
+\if@chemtimes\else%for chemtimes package
+\def\ChemAccent#1#2#3{%
+\expandafter\def\csname #1\endcsname{%
+\ifx\math@version\math@chem
+#2{\hbox{\kern-0.15em\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\kern-0.2em\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}}
+\fi
+\if@chemtimes\else%for chemtimes package
+\def\SetChemSymbol{%
+\chemGreekletter{alpha}{010B}%
+\chemGreekletter{beta}{010C}%
+\chemGreekletter{gamma}{010D}%
+\chemGreekletter{delta}{010E}%
+\chemGreekletter{epsilon}{010F}%
+\chemGreekletter{zeta}{0110}%
+\chemGreekletter{eta}{0111}%
+\chemGreekletter{theta}{0112}%
+\chemGreekletter{iota}{0113}%
+\chemGreekletter{kappa}{0114}%
+\chemGreekletter{lambda}{0115}%
+\chemGreekletter{mu}{0116}%
+\chemGreekletter{nu}{0117}%
+\chemGreekletter{xi}{0118}%
+\chemGreekletter{pi}{0119}%
+\chemGreekletter{rho}{011A}%
+\chemGreekletter{sigma}{011B}%
+\chemGreekletter{tau}{011C}%
+\chemGreekletter{upsilon}{011D}%
+\chemGreekletter{phi}{011E}%
+\chemGreekletter{chi}{011F}%
+\chemGreekletter{psi}{0120}%
+\chemGreekletter{omega}{0121}%
+\chemGreekletter{varepsilon}{0122}%
+\chemGreekletter{vartheta}{0123}%
+\chemGreekletter{varpi}{0124}%
+\chemGreekletter{varrho}{0125}%
+\chemGreekletter{varsigma}{0126}%
+\chemGreekletter{varphi}{0127}%
+\chemUpGreekletter{Gamma}{\mathord}{00}%
+\chemUpGreekletter{Delta}{\mathord}{01}%
+\chemUpGreekletter{Theta}{\mathord}{02}%
+\chemUpGreekletter{Lambda}{\mathord}{03}%
+\chemUpGreekletter{Xi}{\mathord}{04}%
+\chemUpGreekletter{Pi}{\mathord}{05}%
+\chemUpGreekletter{Sigma}{\mathord}{06}%
+\chemUpGreekletter{Upsilon}{\mathord}{07}%
+\chemUpGreekletter{Phi}{\mathord}{08}%
+\chemUpGreekletter{Psi}{\mathord}{09}%
+\chemUpGreekletter{Omega}{\mathord}{0A}%
+\chemUpGreekletter{imath}{\mathord}{7B}%
+\chemUpGreekletter{jmath}{\mathord}{7C}%
+\chemUpGreekletter{mathless}{\mathrel}{3C}%in place of <
+\chemUpGreekletter{mathgreater}{\mathrel}{3E}% in place of >
+\chemUpGreekletter{leftharpoonup}{\mathrel}{28}%
+\chemUpGreekletter{leftharpoondown}{\mathrel}{29}%
+\chemUpGreekletter{rightharpoonup}{\mathrel}{2A}%
+\chemUpGreekletter{rightharpoondown}{\mathrel}{2B}%
+\chemUpGreekletter{ell}{\mathord}{60}%
+\chemUpGreekletter{wp}{\mathord}{7D}%
+\chemUpGreekletter{partial}{\mathord}{40}%
+\chemUpGreekletter{flat}{\mathord}{5B}%
+\chemUpGreekletter{natural}{\mathord}{5C}%
+\chemUpGreekletter{sharp}{\mathord}{5D}%
+\chemUpGreekletter{triangleleft}{\mathbin}{2F}%
+\chemUpGreekletter{triangleright}{\mathbin}{2E}%
+\chemUpGreekletter{smile}{\mathrel}{5E}%
+\chemUpGreekletter{frown}{\mathrel}{5F}%
+\chemUpGreekletter{star}{\mathbin}{3F}%
+\ChemAccent{vec}{\rlap}{7E}%
+}
+\fi
+\if@chemtimes\else%for chemtimes package
+\DeclareRobustCommand\mathversion[1]
+ {\@nomath\mathversion
+ \expandafter\ifx\csname mv@#1\endcsname\relax
+ \@latex@error{Math version `#1' is not defined}\@eha\else
+ \edef\math@version{#1}%
+ \gdef\glb@currsize{}%
+%%%%%%2002/5/30, 2004/11/17, and 2009/10/25
+\ifx\math@version\math@chem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \mathcode`\=="313D
+ \mathcode`\?="513F
+ \mathcode`\[="415B
+ \mathcode`\]="515D
+ \mathcode`\(="4128
+ \mathcode`\)="5129
+ \SetChemSymbol
+\else\ifx\math@version\math@boldchem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \mathcode`\=="313D
+ \mathcode`\?="513F
+ \mathcode`\[="415B
+ \mathcode`\]="515D
+ \mathcode`\(="4128
+ \mathcode`\)="5129
+ \def\check{\mathaccent"7114 }
+ \def\dot{\mathaccent"715F }
+ \def\acute{\mathaccent"7113 }
+ \def\grave{\mathaccent"7112 }
+ \def\ddot{\mathaccent"717F }
+ \def\bar{\mathaccent"7116 }
+ \def\breve{\mathaccent"7115 }
+ \SetChemSymbol
+\else\ifx\math@version\math@bold
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \mathcode`\=="303D
+ \mathcode`\?="503F
+ \mathcode`\[="405B
+ \mathcode`\]="505D
+ \mathcode`\(="4028
+ \mathcode`\)="5029
+ \SetChemSymbol%
+\else
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \mathcode`\=="303D
+ \mathcode`\?="503F
+ \mathcode`\[="405B
+ \mathcode`\]="505D
+ \mathcode`\(="4028
+ \mathcode`\)="5029
+ \SetChemSymbol%
+\fi\fi\fi
+%%%%%%
+ \aftergroup\glb@settings
+ \fi}
+\fi
+\if@chemtimes\else%for chemtimes package
+\ifnewl@tex
+\@ifundefined{mv@chem}{\DeclareMathVersion{chem}%
+\SetSymbolFont{letters}{chem}{OT1}{cmr}{m}{n}%OT1-->T1-->OT1
+\SetSymbolFont{operators}{chem}{OT1}{cmr} {m}{n}%
+\SetSymbolFont{symbols} {chem}{OMS}{cmsy}{m}{n}%
+\DeclareMathVersion{boldchem}%2002/5/30
+\SetSymbolFont{operators}{boldchem}{OT1}{cmr} {bx}{n}%
+\SetSymbolFont{letters} {boldchem}{OT1}{cmr} {b}{n}%
+\SetSymbolFont{symbols} {boldchem}{OMS}{cmsy}{b}{n}%
+}{}
+\fi
+\fi
+\if@chemtimes\else%for chemtimes package
+\let\oldmathnormal=\mathnormal
+\def\mathnormal#1{%
+\ifx\math@version\math@chem
+\mathord{\hbox{\usefont{OML}{cmm}{m}{it}#1}}%
+\else\ifx\math@version\math@boldchem
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}#1}}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal{#1}%
+\upgreekrmfalse
+\else
+\oldmathnormal{#1}%
+\fi
+\else
+\oldmathnormal{#1}%
+\fi\fi\fi}%
+\fi
+\if@chemtimes\else%for chemtimes package
+\def\oldstyle{\egroup%
+\ifx\math@version\math@chem
+\hbox\bgroup\usefont{OML}{cmm}{m}{it}%
+\else\ifx\math@version\math@boldchem
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal\bgroup%
+\upgreekrmfalse
+\else
+\oldmathnormal\bgroup%
+\fi
+\else
+\oldmathnormal\bgroup%
+\fi\fi\fi}%
+\fi
+\if@chemtimes\else%for chemtimes package
+\let\oldmathcal=\mathcal
+\def\mathcal#1{%
+\ifx\math@version\math@chem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{m}{n}#1}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{b}{n}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldmathcal{#1}\upgreekrmfalse
+\else \oldmathcal{#1}\fi
+\else
+\oldmathcal{#1}%
+\fi\fi\fi}%
+\fi
+\if@chemtimes\else%for chemtimes package
+\let\oldcal=\cal
+\def\cal{%
+\ifx\math@version\math@chem
+\mathgroup\tw@\usefont{OMS}{cmsy}{m}{n}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@\usefont{OMS}{cmsy}{b}{n}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldcal\upgreekrmfalse
+\else\oldcal\fi
+\else
+\oldcal%
+\fi\fi\fi}%
+\fi
+\ifnewl@tex
+\def\chemform#1{{\mathversion{chem}%
+$\chemcorr #1$\leavechemcorr}}
+\else
+\def\chemform#1{\chemcorr
+$\rm #1$\leavechemcorr}
+\fi
+\ifnewl@tex
+\def\chemmath{\begingroup\mathversion{chem}\[\chemcorr}
+\def\endchemmath{\]\endgroup\leavechemcorr}
+\else
+\def\chemmath{\chemcorr\[\rm}
+\def\endchemmath{\] \leavechemcorr}
+\fi
+\ifnewl@tex
+\def\chemeqn{\begingroup\mathversion{chem}\equation\chemcorr}
+\def\endchemeqn{\endequation\leavechemcorr\endgroup}%bug fix 2013/6/15
+\else
+\def\chemeqn{\chemcorr\equation\rm}
+\def\endchemeqn{\endequation\leavechemcorr}
+\fi
+\ifnewl@tex
+\def\chemeqnarray{\stepcounter{equation}
+ \let\@currentlabel=\theequation
+ \global\@eqnswtrue
+ \global\@eqcnt\z@\tabskip\@centering
+ \let\\=\@eqncr
+ \begingroup\mathversion{chem}
+$$\chemcorr\halign to \displaywidth\bgroup
+ \@eqnsel\hskip\@centering
+ $\rm \displaystyle\tabskip\z@{##}$ &
+ \global\@eqcnt\@ne
+ \hskip \arraycolsep \hfil$\rm{##}$\hfil &
+ \global\@eqcnt\tw@ \hskip \arraycolsep
+ $\rm \displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering &
+ \llap{##}\tabskip\z@\cr}
+\def\endchemeqnarray{\endeqnarray\endgroup
+\leavechemcorr}
+\else
+\def\chemeqnarray{\stepcounter{equation}
+ \let\@currentlabel=\theequation
+ \global\@eqnswtrue
+ \global\@eqcnt\z@\tabskip\@centering
+ \let\\=\@eqncr \chemcorr
+$$\halign to \displaywidth\bgroup
+ \@eqnsel\hskip\@centering
+ $\rm \displaystyle\tabskip\z@{##}$ &
+ \global\@eqcnt\@ne
+ \hskip \arraycolsep \hfil$\rm{##}$\hfil &
+ \global\@eqcnt\tw@ \hskip \arraycolsep
+ $\rm \displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering &
+ \llap{##}\tabskip\z@\cr}
+\def\endchemeqnarray{\endeqnarray
+\leavechemcorr}
+\fi
+\let\@seqncr=\@eqncr
+\ifnewl@tex
+\@namedef{chemeqnarray*}{%
+\def\@eqncr{\nonumber\@seqncr}\chemeqnarray}
+\@namedef{endchemeqnarray*}{\nonumber\endchemeqnarray}
+\else
+\@namedef{chemeqnarray*}{%
+\def\@eqncr{\nonumber\@seqncr\rm}\chemeqnarray}
+\@namedef{endchemeqnarray*}{\nonumber\endchemeqnarray}
+\fi
+\def\chemeqnarraya{\chemeqn@rraya \chemeqnarray}
+\def\chemeqn@rraya{%
+ \c@enumi=\c@equation
+ \advance\c@enumi\@ne
+ \c@equation=\z@
+ \@ifundefined{chapter}%
+{\def\theequation{\theenumi\alph{equation}}}%
+{\def\theequation{%
+\thechapter.\theenumi\alph{equation}}}}
+\def\endchemeqnarraya{\endchemeqnarray
+\global\c@equation=\c@enumi}
+\@ifundefined{if@display}{\newif\if@display}{}
+\newif\ifupgreekrm \upgreekrmfalse
+\let\ChemEqFont=\rm
+\def\ChemEquation{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+\everydisplay{\ChemEqFont\chemcorr\@displaytrue\upgreekrmtrue}\equation}
+\def\endChemEquation{\endequation\everymath{}\everydisplay{}%
+\@displayfalse\leavechemcorr\upgreekrmfalse}
+
+\def\ChemEqnarray{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+\eqnarray}
+\def\endChemEqnarray{\endeqnarray\everymath{}%
+\leavechemcorr\upgreekrmfalse}
+\def\ChemForm#1{\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}$#1$\everymath{}%
+\leavechemcorr\upgreekrmfalse}
+\@namedef{ChemEqnarray*}{\def\@eqncr{\nonumber\@seqncr}\ChemEqnarray}
+\@namedef{endChemEqnarray*}{\nonumber\endChemEqnarray}
+\def\newchemenvironment#1#2{%
+\expandafter\def\csname #1\endcsname{%
+\everymath{\ChemEqFont\chemcorr\upgreekrmtrue}%
+\csname #2\endcsname}%
+\expandafter\def\csname end#1\endcsname{%
+\csname end#2\endcsname\everymath{}%
+\leavechemcorr\upgreekrmfalse}}
+\def\XyMcompd(#1,#2)(#3,#4)#5#6{%
+\begingroup
+\edef\xymrefa{#5}\edef\xymrefb{#6}%
+\edef\kkk{#1}%
+\begin{tabular}{c}
+\ifx\kkk\empty\else
+\begin{sfpicture}(#1,#2)(#3,#4)\fi\ignorespaces}
+\def\endXyMcompd{%
+\ifx\kkk\empty\else\end{sfpicture}\fi
+\\[-\baselineskip]
+\ifx\xymrefa\empty\else{\bf \compd\xymrefb
+\expandafter\label{\xymrefa}}\fi
+\end{tabular}\endgroup}
+\def\XyMtab#1{\center\tabular{#1c}}
+\def\endXyMtab{\endtabular\endcenter}
+\def\derivlist#1{%
+\mbox{}\\
+\begingroup\def\arraystretch{0.7}%
+\begin{tabular}{l}
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else%
+\hbox to2em{\hss\derivnum}:\space\member \\
+\fi}\end{tabular}\endgroup}
+\def\XyMderiv{\tabular{c}}
+\def\endXyMderiv{\endtabular}
+\def\endash{\mbox{--{}}}
+\def\Cent{\mbox{\raise.9ex\hbox{%
+ \scriptsize$\circ$}\kern-.12em\hbox{C}}}
+\def\degC{\mbox{\kern-.2em\char'27\kern-.3em C}}
+\def\degF{\mbox{\kern-.2em\char'27\kern-.3em F}}
+\def\yubin{$\overline{\top}$}
+\def\Yubin#1{\leavevmode\hbox{\vbox{\hrule\@height.12ex\@width.7em
+\kern.28ex\hrule\@height.12ex\@width.7em
+\hbox{\kern.35em\kern-.06ex
+\vbox{\hrule\@height1ex\@width.12ex}}}\kern.1em{#1}}}
+\def\xlethead#1{%
+ \kern-.6667\baselineskip \line{\hrulefill\phantom{ #1 }\hrulefill}
+ \kern-.6667\baselineskip \line{\hrulefill\phantom{ #1 }\hrulefill}
+ \kern-.6667\baselineskip \line{\hrulefill\hbox{ #1 }\hrulefill}}
+\def\lethead#1#2#3{\def\line{\hbox to\textwidth}
+ \vbox{\line{\hrulefill}
+ \xlethead{#1} \xlethead{#2} \xlethead{#3}
+ \kern-.6667\baselineskip \line{\hrulefill}}}
+\def\horizon{\rule{12pt}{0.1pt}}
+\newcount\TestCount \def\tmpkern{\kern0pt}
+\ifnewl@tex \else
+\def\resetfontsize{%
+ \ifx\@currsize\normalsize%
+ \def\tmpf@ntsize{%
+ \load{\footnotesize}{\sf}%
+ \load{\footnotesize}{\sl}%
+ \load{\footnotesize}{\bf}%
+ \def\tmpkern{\kern0.05em}%
+ \footnotesize}\fi
+ \ifx\@currsize\scriptsize \let\tmpf@ntsize=\tiny\fi
+ \ifx\@currsize\footnotesize \let\tmpf@ntsize=\tiny\fi
+ \ifx\@currsize\small \let\tmpf@ntsize=\scriptsize\fi
+ \ifx\@currsize\large \let\tmpf@ntsize=\small\fi
+ \ifx\@currsize\Large \let\tmpf@ntsize=\@normalsize\fi
+ \ifx\@currsize\LARGE \let\tmpf@ntsize=\large\fi
+ \ifx\@currsize\huge \let\tmpf@ntsize=\Large\fi
+ \ifx\@currsize\Huge \let\tmpf@ntsize=\LARGE\fi}
+\fi
+\ifnewl@tex \else
+\def\Bib{\ifnum \fam=\m@ne \fam=\z@ \fi\TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle B$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf
+ $\fam=\TestCount\kern-.025em I\kern-.045em B$}%
+ \else%
+ \hbox{$\fam\TestCount\scriptstyle\kern-.025em I\kern-.045em B$}%
+ \fi
+}
+\fi
+\ifnewl@tex
+\DeclareRobustCommand{\BibTeX}{%
+ B\hbox{$\m@th$\csname S@\f@size\endcsname
+ \fontsize\sf@size\z@ \math@fontsfalse\selectfont
+ \kern-.025em I\kern-.045em B}\kern-.08em\TeX}
+\else \def\BibTeX{\Bib\kern-.08em\TeX} \fi
+\ifnewl@tex
+\DeclareRobustCommand{\jBibTeX}{\mbox{%
+ \if b\expandafter\@car\f@series\@nil\boldmath\fi
+ \leavevmode\lower.46ex\hbox{J}\kern-.08em\BibTeX}}
+\else
+\def\jBibTeX{\leavevmode\lower.46ex\hbox{J}%
+ \kern-.08em\Bib\kern-.08em\TeX}
+\fi
+\def\jTeX{\leavevmode\lower.46ex\hbox{J}\kern-.15em\TeX}
+\def\pTeX{p\kern-.15em\TeX}
+\ifnewl@tex \else
+\def\Sub{\leavevmode\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam{S}%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \ifx\aaa\bbb\resetfontsize%
+ \hbox{\tmpf@ntsize\bf%
+ $\fam=\TestCount\kern-.045em{U}\kern-.12em{B}$}%
+ \else%
+ \hbox{$\fam\TestCount%
+ \scriptstyle\kern-.045em{U}\kern-.12em{B}$}%
+ \fi}
+\fi
+\ifnewl@tex
+\DeclareRobustCommand{\SubBib}{S\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont%
+ \kern-.045em{U}\kern-.12em{B}}B\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont \kern-.025em I\kern-.045em B}}
+\else \def\SubBib{\Sub\kern-.08em\Bib} \fi
+\ifnewl@tex \else
+\def\La{\ifnum \fam=\m@ne \fam=\z@ \fi\TestCount=\fam%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}\leavevmode{L}%
+ \ifx\aaa\bbb \resetfontsize%
+ \raise.46ex\hbox{{\tmpf@ntsize\bf%
+ $\fam\TestCount\kern-.4em\tmpkern{A}$}}%
+ \else%
+ \raise.42ex\hbox{$\fam\TestCount\scriptstyle\kern-.3em{A}$}%
+ \fi}
+\fi
+\ifnewl@tex \else \def\LaTeX{\La\kern-.15em\TeX}\fi
+\ifnewl@tex
+ \DeclareRobustCommand{\jLaTeX}%
+ {\leavevmode\lower.46ex\hbox{J}\kern-.08em\LaTeX}
+\else
+ \def\jLaTeX{\leavevmode\lower.46ex\hbox{J}\kern-.08em\LaTeX}
+\fi
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
+\ifnewl@tex
+\DeclareRobustCommand{\PiCTeX}{\PiC\kern-.11em\TeX}
+\else
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+\fi
+\ifnewl@tex
+\DeclareRobustCommand{\tpic}{T\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.025em P\kern-.025em I\kern-.025emC}}
+\else
+\def\tpic{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam \leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize\hbox{$\fam=\TestCount\textstyle T$}%
+ \ifx\aaa\bbb\hbox{\tmpf@ntsize\bf$\fam=\TestCount%
+ \kern-.025em P\kern-.025em I\kern-.025emC$}\else%
+ \hbox{$\fam\TestCount\scriptstyle%
+ \kern-.025em P\kern-.025em I\kern-.025emC$}\fi}
+\fi
+\ifnewl@tex \else
+\def\Post{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle P$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf%
+ $\fam=\TestCount\kern-.045em O\kern-.015em ST$}%
+ \else%
+ \hbox{$\fam\TestCount%
+ \scriptstyle\kern-.045em O\kern-.015em ST$}%
+ \fi}
+\def\Script{\ifnum \fam=\m@ne \fam=\z@ \fi%
+ \TestCount=\fam\leavevmode%
+ \edef\aaa{\fontname\scriptfont\fam}%
+ \edef\bbb{\fontname\textfont\fam}%
+ \resetfontsize%
+ \hbox{$\fam=\TestCount\textstyle S$}%
+ \ifx\aaa\bbb%
+ \hbox{\tmpf@ntsize\bf$\fam=\TestCount\kern-.035em %
+ C\kern-.015em R\kern-.015em IP\kern-.035em T$}%
+ \else%
+ \hbox{$\fam\TestCount\scriptstyle\kern-.035em %
+ C\kern-.015em R\kern-.015em IP\kern-.035em T$}%
+ \fi}
+\fi
+\ifnewl@tex
+\DeclareRobustCommand{\PostScript}{P\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.045em O\kern-.015em ST}S\hbox{$\m@th$%
+ \csname S@\f@size\endcsname\fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ \kern-.035em C\kern-.015em R\kern-.015em IP\kern-.035em T}}
+\else
+\def\PostScript{\Post\Script}
+\fi
+\def\triplebond{\leavevmode\kern.2pt\raisebox{.2ex}{%
+\hbox{\vbox{\hrule height.03ex width1em\kern.4ex
+\hrule height.03ex width1em\kern.4ex
+\hrule height.03ex width1em}}}\hskip.4pt}
+\def\doublebond{\leavevmode\kern.2pt\raisebox{.3ex}{%
+\hbox{\vbox{\hrule height.03ex width1em\kern.6ex
+\hrule height.03ex width1em}}}\hskip.4pt}
+\let\tbond=\triplebond
+\let\dbond=\doublebond
+\def\upwardarrowcalcA{%
+\@tempcntXc=\@tempcntXa
+\advance\@tempcntXc by\@tempcntXb
+\advance\@tempcntXc by-\@tempcntYb
+\advance\@tempcntXc by\@tempcntYa
+\divide\@tempcntXc by2\relax
+%%
+\@tempcntYc=\@tempcntYa
+\advance\@tempcntYc by\@tempcntYb
+\advance\@tempcntYc by-\@tempcntXa
+\advance\@tempcntYc by\@tempcntXb
+\divide\@tempcntYc by2\relax}
+\def\upwardarrowcalcB{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\@tempcntXc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntYd
+\advance\@cnttempa by-\@tempcntXd
+\advance\@cnttempb by-\@tempcntYd}
+\def\downwardarrowcalcA{%
+\@tempcntXc=\@tempcntXa
+\advance\@tempcntXc by\@tempcntXb
+\advance\@tempcntXc by\@tempcntYb
+\advance\@tempcntXc by-\@tempcntYa
+\divide\@tempcntXc by2\relax
+\@tempcntYc=\@tempcntYa
+\advance\@tempcntYc by\@tempcntYb
+\advance\@tempcntYc by\@tempcntXa
+\advance\@tempcntYc by-\@tempcntXb
+\divide\@tempcntYc by2\relax}
+\def\downwardarrowcalcB{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\@tempcntXc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntYd
+\advance\@cnttempa by-\@tempcntXd
+\advance\@cnttempb by-\@tempcntYd}
+\def\calcontrolpoints#1{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@tempcntXd=\@tempcntXb
+\advance\@tempcntXd by-\@tempcntXa
+\divide\@tempcntXd by4\relax
+\@tempcntYd=\@tempcntYb
+\advance\@tempcntYd by-\@tempcntYa
+\divide\@tempcntYd by4\relax
+\ifcase#1\relax%upward round: 0
+\upwardarrowcalcA%
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 1
+\downwardarrowcalcA%
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\or%upward round: 2
+\upwardarrowcalcA%
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntYc by\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 3
+\downwardarrowcalcA%
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntYc by-\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\or%upward round: 4
+\upwardarrowcalcA%
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntXc by-\@tempcntYd
+\advance\@tempcntYc by\@tempcntXd
+\advance\@tempcntYc by\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\upwardarrowcalcB%
+\or%downward-round: 5
+\downwardarrowcalcA%
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntXc by\@tempcntYd
+\advance\@tempcntYc by-\@tempcntXd
+\advance\@tempcntYc by-\@tempcntXd
+\@cnttempa=\@tempcntXc
+\@cnttempb=\@tempcntYc
+\downwardarrowcalcB%
+\fi}
+\def\chemistsw{%setting of the chemist package
+\let\reactrarrow=\oldreactrarrow%
+\let\reactlarrow=\oldreactlarrow
+\let\reactlrarrow=\oldreactlrarrow
+\let\reacteqarrow=\oldreacteqarrow
+%%%%
+\let\reactreqarrow=\oldreactreqarrow%
+\let\reactleqarrow=\oldreactleqarrow
+%%%%
+\let\reactdarrow=\oldreactdarrow%
+\let\reactuarrow=\oldreactuarrow
+\let\reactveqarrow=\oldreactveqarrow
+\let\reactduarrow=\oldreactduarrow
+%%%%
+\let\reactsearrow=\oldreactsearrow%
+\let\reactnwarrow=\oldreactnwarrow
+\let\reactnearrow=\oldreactnearrow
+\let\reactswarrow=\oldreactswarrow
+%%%%
+\let\reactdeqarrow=\oldreactdeqarrow%
+\let\reactueqarrow=\oldreactueqarrow
+\let\reactulrarrow=\oldreactulrarrow
+\let\reactdlrarrow=\oldreactdlrarrow
+%%%%
+\let\schemelarrow=\oldschemelarrow%
+\let\schemerarrow=\oldschemerarrow
+\let\schemelrarrow=\oldschemelrarrow
+%%%%
+\let\llongrightarrow=\oldllongrightarrow%%%--->%
+\let\llongleftarrow=\oldllongleftarrow%%%<---
+\let\llongleftrightarrow=\oldllongleftrightarrow%%%<--->
+\let\Equilibarrow=\oldEquilibarrow%%%<--- and --->
+\let\Llongrightarrow=\oldLlongrightarrow%%%===>
+\let\Llongleftarrow=\oldLlongleftarrow%%%<===
+\let\Llongleftrightarrow=\oldLlongleftrightarrow%%<===>
+%%%%%
+\let\llongleftharpoondown=\oldllongleftharpoondown%%% /---%
+\let\llongrightharpoonup=\oldllongrightharpoonup%%%---/
+\let\equilibarrow=\oldequilibarrow%%% /--- and ---/
+%%%%%
+\let\lllongrightarrow=\oldlllongrightarrow%%%%------>%
+\let\lllongleftarrow=\oldlllongleftarrow%%%<-------
+\let\lllongleftrightarrow=\oldlllongleftrightarrow%%%<------->
+\let\Equiliblongarrow=\oldEquiliblongarrow%%%<------- and ------->
+\let\Lllongrightarrow=\oldLllongrightarrow%%%=======>
+\let\Lllongleftarrow=\oldLllongleftarrow%%%<=======
+\let\Lllongleftrightarrow=\oldLllongleftrightarrow%%<=======>
+%%%%%
+\let\lllongleftharpoondown=\oldlllongleftharpoondown%%% /-------%
+\let\lllongrightharpoonup=\oldlllongrightharpoonup%%%-------/
+\let\equiliblongarrow=\oldequiliblongarrow%%% /------ and ------/
+%%%%tentative setting
+\let\reactDEqarrow=\oldreactdeqarrow
+\let\reactUEqarrow=\oldreactueqarrow
+\let\reactVEqarrow=\oldreactveqarrow
+\let\reactREqarrow=\oldreactreqarrow
+\let\reactLEqarrow=\oldreactleqarrow
+\let\reactEqarrow=\oldreacteqarrow
+\let\lllongleftharpoonup=\oldlllongleftarrow
+\let\lllongrightharpoondown=\oldlllongrightarrow
+\let\llongleftharpoonup=\oldllongleftarrow
+\let\llongrightharpoondown=\oldllongrightarrow
+%%%%
+}
+\RequirePackage{assurechemist}
+\chemistsw%setting of the chemist package
+\mathversion{normal}
+\endinput
+%%
+%% End of file `chemist.sty'.
diff --git a/macros/latex/contrib/xymtex/chemist/chemtimes.dtx b/macros/latex/contrib/xymtex/chemist/chemtimes.dtx
new file mode 100644
index 0000000000..22df249aa6
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemtimes.dtx
@@ -0,0 +1,839 @@
+% \iffalse meta-comment
+%% File: chemtimes.dtx
+% Copyright 2009, 2010 by Shinsaku Fujita
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{Package `chemtimes' (v. 1.00) Shinsaku Fujita 2009/10/25}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fi
+%
+% \CheckSum{1110}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+ \ProvidesFile{chemtimes.dtx}[2010/11/21 v5.00a chemtimes package]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{chemtimes.dtx}
+%
+\title{Times Fonts for Chemistry and Mathamatics by {\sffamily chemtimes.sty} (\fileversion)}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{chemtimes.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% chemtimes & chemtimes.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*chemtimes>
+\typeout{Package `chemtimes' (v. 5.00a) Shinsaku Fujita 2010/11/21}
+% \end{macrocode}
+%
+% \section{Times Fonts}
+%
+% The option ``chemist'' is to load the \textsf{chemist} package in place of
+% the default loading of the \textsf{chmst-ps} package. By the option ``chemtimes''
+% of the \textsf{chemist} or \textsf{chmst-ps} package, the switch \verb/\@chemtimestrue/
+% or \verb/\@@@chemtimestrue/ becomes effective. Thereby, the mathversions ``chem'' and
+% ``boldchem'' defined in the \textsf{chemist} package are entirely ignored so as to be
+% replaced by those defined in the \textsf{chemtimes} package.
+%
+% \begin{macrocode}
+\@ifundefined{chemcorr}{}{%
+ \PackageError{chemtimes}
+ {The ``chemist'' or ``chmst-ps'' package is not permitted here}
+ {The ``chemist'' or ``chmst-ps'' package will be automatically loaded \MessageBreak
+ when the ``chemtimes'' package is loaded.}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newif\ifchemtimes%%
+\newif\if@chemtimes%%for chemist package
+\newif\if@@@chemtimes%%for chmst-ps package
+\newif\if@@chemtimes%%for chmst-ps package
+\DeclareOption{chemist}{\chemtimestrue}
+\chemtimesfalse
+\ProcessOptions
+\ifchemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\@@chemtimestrue
+\RequirePackage[chemtimes]{chmst-ps}%
+\fi
+% \end{macrocode}
+%
+% \section{Definition of Macros}
+%
+% Times-like fonts are used by declaring ``ptm'' (times roman) and ``phv'' (Helvetica)
+% in place of the corresponding roman and san serif families.
+% while computer modern type-writer fonts are used without change.
+%
+% \begin{macrocode}
+%chemtimes package
+%times, helvetica
+%times from ot1ptm.fd 2007/07/31
+\renewcommand{\rmdefault}{ptm}
+%Helvetica from ot1phv.fd 2007/07/31
+\def\Hv@scale{0.90}%scalable font
+\renewcommand{\sfdefault}{phv}
+%typewriter
+%\renewcommand{\ttdefault}{pcr}
+% with the default (computer modern typewriter font)
+%% change the defalt values (\thinmuskip 3mu to 2mu etc.)
+\thinmuskip=2mu
+\medmuskip=2.5mu plus 1mu minus 1mu
+\thickmuskip=4mu plus 1.5mu minus 1mu
+% \end{macrocode}
+%
+% Fonts for normal mathversion are used on the same line
+% as \textsf{mathptmx} package:
+%
+% \begin{macrocode}
+%mathversion normal
+\DeclareSymbolFont{letters} {OML}{ztmcm}{m}{it}
+\DeclareSymbolFont{operators} {OT1}{ztmcm}{m}{n}
+\DeclareSymbolFont{symbols} {OMS}{ztmcm}{m}{n}
+\DeclareSymbolFont{largesymbols}{OMX}{ztmcm}{m}{n}
+\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
+\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
+\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}
+\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}
+\DeclareMathAlphabet{\mathbfit}{OT1}{ptm}{b}{it}%2009/11/22
+\DeclareMathAlphabet{\mathsf}{OT1}{phv}{m}{n}
+%\DeclareMathAlphabet{\mathtt}{OT1}{pcr}{m}{n}
+\DeclareMathAlphabet{\mathtt}{OT1}{cmtt}{m}{n}
+%Uppercase Greeks
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10}
+% \end{macrocode}
+%
+% The following fonts are used for bold mathversion.
+%
+% \begin{macrocode}
+%mathversion bold
+%\SetSymbolFont{letters} {bold}{OML}{ptm}{b}{it}%
+\SetSymbolFont{letters} {bold}{OT1}{ptm}{b}{it}%
+\SetSymbolFont{operators} {bold}{OT1}{ptm}{b}{n}%
+\SetSymbolFont{symbols} {bold}{OMS}{ptm}{b}{n}%
+\SetSymbolFont{largesymbols}{bold}{OMX}{ztmcm}{m}{n}%
+% \end{macrocode}
+%
+% Font sizes for math modes are defined as follows
+% on the same line as \textsf{mathptmx} package:
+%
+% \begin{macrocode}
+\def\defaultscriptratio{.74}
+\def\defaultscriptscriptratio{.6}
+\DeclareMathSizes{5}{5}{5}{5}
+\DeclareMathSizes{6}{6}{5}{5}
+\DeclareMathSizes{7}{7}{5}{5}
+\DeclareMathSizes{8}{8}{6}{5}
+\DeclareMathSizes{9}{9}{7}{5}
+\DeclareMathSizes{10}{10}{7.4}{6}
+\DeclareMathSizes{10.95}{10.95}{8}{6}
+\DeclareMathSizes{12}{12}{9}{7}
+\DeclareMathSizes{14.4}{14.4}{10.95}{8}
+\DeclareMathSizes{17.28}{17.28}{12}{10}
+\DeclareMathSizes{20.74}{20.74}{14.4}{12}
+\DeclareMathSizes{24.88}{24.88}{17.28}{14.4}
+% \end{macrocode}
+%
+% Letter strings for judging mathversions:
+%
+% \begin{macrocode}
+\newif\ifnewl@tex \newl@textrue
+\@ifundefined{DeclareMathVersion}%
+ {\global\newl@texfalse}{\global\newl@textrue}%
+\def\math@chem{chem}
+\def\math@boldchem{boldchem}
+\def\math@bold{bold}
+\def\math@normal{normal}
+% \end{macrocode}
+%
+% The original setting of each Greek letter is stored tentatively.
+% \begin{macrocode}
+%%added 2005/09/02
+\let\oldalpha=\alpha
+\let\oldbeta=\beta
+\let\oldgamma=\gamma
+\let\olddelta=\delta
+\let\oldepsilon=\epsilon
+\let\oldzeta=\zeta
+\let\oldeta=\eta
+\let\oldtheta=\theta
+\let\oldiota=\iota
+\let\oldkappa=\kappa
+\let\oldlambda=\lambda
+\let\oldmu=\mu
+\let\oldnu=\nu
+\let\oldxi=\xi
+\let\oldpi=\pi
+\let\oldrho=\rho
+\let\oldsigma=\sigma
+\let\oldtau=\tau
+\let\oldupsilon=\upsilon
+\let\oldphi=\phi
+\let\oldchi=\chi
+\let\oldpsi=\psi
+\let\oldomega=\omega
+\let\oldvarepsilon=\varepsilon
+\let\oldvartheta=\vartheta
+\let\oldvarpi=\varpi
+\let\oldvarrho=\varrho
+\let\oldvarsigma=\varsigma
+\let\oldvarphi=\varphi
+\let\oldGamma=\Gamma
+\let\oldDelta=\Delta
+\let\oldTheta=\Theta
+\let\oldLamda=\Lambda
+\let\oldXi=\Xi
+\let\oldPi=\Pi
+\let\oldSigma=\Sigma
+\let\oldUpsilon=\Upsilon
+\let\oldPhi=\Phi
+\let\oldPsi=\Psi
+\let\oldOmega=\Omega
+% \end{macrocode}
+%
+% \begin{macro}{\chemGreekpalette}
+% \begin{macro}{\chemGreekletter}
+% The command \verb/\chemGreekletter/ selects a lowercase greek letter
+% for each mathversion.
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup}, \cs{egroup} added}
+%
+% \begin{macrocode}
+\def\chemGreekpalette#1#2#3{%
+\mathchoice%
+{\mathord{\hbox{\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\scriptsize\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\tiny\usefont{OML}{#1}{#3}{it}\char"#2}}}}%
+\def\chemGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+\ifx\math@version\math@chem
+%\mathord{\hbox{\mathversion{normal}$\mathchar"#2$}}
+\chemGreekpalette{ztmcm}{#2}{m}%
+\else
+\ifx\math@version\math@boldchem
+%\mathord{\hbox{\mathversion{bold}$\mathchar"#2$}}%
+\chemGreekpalette{cmm}{#2}{b}%
+\else
+\ifx\math@version\math@bold
+%\csname old#1\endcsname
+\chemGreekpalette{cmm}{#2}{b}%
+\else
+\csname old#1\endcsname
+\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ChemAccent}
+%
+% \changes{v4.05}{2009/10/25}{Defined: \cs{ChemAccent}}
+% \begin{macrocode}
+%\if@chemtimes\else%for chemtimes package
+\def\ChemAccent#1#2#3{%
+\expandafter\def\csname #1\endcsname{%
+\ifx\math@version\math@chem
+#2{\hbox{\kern-0.15em\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\kern-0.2em\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}}
+%\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\rm}
+% The command \verb/\rm/ is redefined to use \verb/\ifupgreekrm/
+% for switching slanted letters into upright letters.
+% \begin{macrocode}
+\newif\ifupgreekrm \upgreekrmfalse
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm\upgreekrmtrue}
+%\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\upgreekrmtrue\mathrm}
+\DeclareOldFontCommand{\bfit}{\normalfont\itshape\bfseries}{\mathbfit}%2009/11/22
+\let\oldmathrm=\mathrm
+\def\mathrm#1{\oldmathrm{\upgreekrmtrue #1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chemUpGreekletter}
+% The command \verb/\chemUpGreekletter/ selects an uppercase greek letter
+% for each mathversion.
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup}, \cs{egroup} added}
+% \begin{macrocode}
+\newif\ifm@thnorm@l
+\def\chemUpGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%2010/11/21 by S. Fujita
+\ensuremath{%
+\ifx\math@version\math@chem
+%\mathord{\hbox{\mathversion{normal}$\mathchar"#2$}}\else
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{m}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{m}{n}\char"#2}}%
+\fi
+\else
+\ifx\math@version\math@boldchem
+%\mathord{\hbox{\usefont{OT1}{cmr}{b}{n}\char"#2}}\else
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{b}{n}\char"#2}}%
+\fi
+\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{b}{n}\char"#2}}%
+\fi
+%%%\upgreekrmfalse
+\else
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+%\csname old#1\endcsname
+\fi
+\else
+\csname old#1\endcsname
+\fi\fi\fi}\egroup}}%added 2010/11/21 by S. Fujita
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ctSFOpalette}
+% \begin{macro}{\chemtimesSubFontOrd}
+% The command \verb/\chemtimesSubFontOrd/ selects a symbol for substitution
+% (computer modern font) if there is no such font of times family.
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup}, \cs{egroup} added}
+% \begin{macrocode}
+\def\ctSFOpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+}
+\def\chemtimesSubFontOrd#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+%#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\ctSFOpalette{m}{#2}{#3}%
+\else\ifx\math@version\math@boldchem
+%#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\ctSFOpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@bold
+%{#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}}%
+\ctSFOpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@normal
+%#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\ctSFOpalette{m}{#2}{#3}%
+\else
+%#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\ctSFOpalette{m}{#2}{#3}%
+\fi\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ctSFBpalette}
+% \begin{macro}{\ctSFBBpalette}
+% \begin{macro}{\chemtimesSubFontBin}
+% The command \verb/\chemtimesSubFontBin/ selects a symbol (binary operation)
+% for substitution (computer modern font) if there is no such font of times family.
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup}, \cs{egroup} added}
+% \begin{macrocode}
+\def\ctSFBpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+}
+\def\ctSFBBpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+}
+\def\chemtimesSubFontBin#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+%#2{\hbox{\usefont{OMS}{cmsy}{m}{n}\char"#3}}%
+\ctSFBpalette{m}{#2}{#3}%
+\else\ifx\math@version\math@boldchem
+%#2{\hbox{\usefont{OMS}{cmsy}{b}{n}\char"#3}}%
+\ctSFBpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@bold
+%#2{\hbox{\usefont{OMS}{cmsy}{b}{n}\char"#3}}%
+\ctSFBpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@normal
+%#2{\hbox{\usefont{OMS}{cmsy}{m}{n}\char"#3}}%
+\ctSFBpalette{m}{#2}{#3}%
+\else
+%#2{\hbox{\usefont{OMS}{cmm}{m}{n}\char"#3}}%
+\ctSFBBpalette{m}{#2}{#3}%
+\fi\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\chemtimesSubFontLOp}
+% The command \verb/\chemtimesSubFontLOp/ selects a symbol (large operation)
+% for substitution (computer modern font) if there is no such font of times family.
+% \changes{v5.00a}{2010/11/21}{bug fix: \cs{bgroup}, \cs{egroup} added}
+% \begin{macrocode}
+\def\chemtimesSubFontLOp#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@boldchem
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@bold
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@normal
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\else
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\fi\fi\fi\fi\egroup}}%%added 2010/11/21 by S. Fujita
+% \end{macrocode}
+% \end{macro}
+%
+%
+% Lowercase and uppercase Greek letters are redefined as follows:
+% \begin{macrocode}
+\def\SetChemSymbol{%
+%\chemGreekletter{alpha}{010B}%
+%\chemGreekletter{beta}{010C}%
+%\chemGreekletter{gamma}{010D}%
+%\chemGreekletter{delta}{010E}%
+%\chemGreekletter{epsilon}{010F}%
+%\chemGreekletter{zeta}{0110}%
+%\chemGreekletter{eta}{0111}%
+%\chemGreekletter{theta}{0112}%
+%\chemGreekletter{iota}{0113}%
+%\chemGreekletter{kappa}{0114}%
+%\chemGreekletter{lambda}{0115}%
+%\chemGreekletter{mu}{0116}%
+%\chemGreekletter{nu}{0117}%
+%\chemGreekletter{xi}{0118}%
+%\chemGreekletter{pi}{0119}%
+%\chemGreekletter{rho}{011A}%
+%\chemGreekletter{sigma}{011B}%
+%\chemGreekletter{tau}{011C}%
+%\chemGreekletter{upsilon}{011D}%
+%\chemGreekletter{phi}{011E}%
+%\chemGreekletter{chi}{011F}%
+%\chemGreekletter{psi}{0120}%
+%\chemGreekletter{omega}{0121}%
+%\chemGreekletter{varepsilon}{0122}%
+%\chemGreekletter{vartheta}{0123}%
+%\chemGreekletter{varpi}{0124}%
+%\chemGreekletter{varrho}{0125}%
+%\chemGreekletter{varsigma}{0126}%
+%\chemGreekletter{varphi}{0127}%
+%
+\chemGreekletter{alpha}{0B}%
+\chemGreekletter{beta}{0C}%
+\chemGreekletter{gamma}{0D}%
+\chemGreekletter{delta}{0E}%
+\chemGreekletter{epsilon}{0F}%
+\chemGreekletter{zeta}{10}%
+\chemGreekletter{eta}{11}%
+\chemGreekletter{theta}{12}%
+\chemGreekletter{iota}{13}%
+\chemGreekletter{kappa}{14}%
+\chemGreekletter{lambda}{15}%
+\chemGreekletter{mu}{16}%
+\chemGreekletter{nu}{17}%
+\chemGreekletter{xi}{18}%
+\chemGreekletter{pi}{19}%
+\chemGreekletter{rho}{1A}%
+\chemGreekletter{sigma}{1B}%
+\chemGreekletter{tau}{1C}%
+\chemGreekletter{upsilon}{1D}%
+\chemGreekletter{phi}{1E}%
+\chemGreekletter{chi}{1F}%
+\chemGreekletter{psi}{20}%
+\chemGreekletter{omega}{21}%
+\chemGreekletter{varepsilon}{22}%
+\chemGreekletter{vartheta}{23}%
+\chemGreekletter{varpi}{24}%
+\chemGreekletter{varrho}{25}%
+\chemGreekletter{varsigma}{26}%
+\chemGreekletter{varphi}{27}%
+%
+%\chemUpGreekletter{Gamma}{7000}%
+%\chemUpGreekletter{Delta}{7001}%
+%\chemUpGreekletter{Theta}{7002}%
+%\chemUpGreekletter{Lambda}{7003}%
+%\chemUpGreekletter{Xi}{7004}%
+%\chemUpGreekletter{Pi}{7005}%
+%\chemUpGreekletter{Sigma}{7006}%
+%\chemUpGreekletter{Upsilon}{7007}%
+%\chemUpGreekletter{Phi}{7008}%
+%\chemUpGreekletter{Psi}{7009}%
+%
+\chemUpGreekletter{Gamma}{00}%
+\chemUpGreekletter{Delta}{01}%
+\chemUpGreekletter{Theta}{02}%
+\chemUpGreekletter{Lambda}{03}%
+\chemUpGreekletter{Xi}{04}%
+\chemUpGreekletter{Pi}{05}%
+\chemUpGreekletter{Sigma}{06}%
+\chemUpGreekletter{Upsilon}{07}%
+\chemUpGreekletter{Phi}{08}%
+\chemUpGreekletter{Psi}{09}%
+\chemUpGreekletter{Omega}{0A}%
+%
+\chemtimesSubFontOrd{imath}{\mathord}{7B}%
+\chemtimesSubFontOrd{jmath}{\mathord}{7C}%
+\chemtimesSubFontBin{amalg}{\mathbin}{71}%
+\chemtimesSubFontLOp{coprod}{60}{61}%
+%2009/11/22
+\chemtimesSubFontOrd{mathless}{\mathrel}{3C}%
+\chemtimesSubFontOrd{mathgreater}{\mathrel}{3E}%
+\chemtimesSubFontOrd{leftharpoonup}{\mathrel}{28}%
+\chemtimesSubFontOrd{leftharpoondown}{\mathrel}{29}%
+\chemtimesSubFontOrd{rightharpoonup}{\mathrel}{2A}%
+\chemtimesSubFontOrd{rightharpoondown}{\mathrel}{2B}%
+\chemtimesSubFontOrd{ell}{\mathord}{60}%
+\chemtimesSubFontOrd{wp}{\mathord}{7D}%
+\chemtimesSubFontOrd{partial}{\mathord}{40}%
+\chemtimesSubFontOrd{flat}{\mathord}{5B}%
+\chemtimesSubFontOrd{natural}{\mathord}{5C}%
+\chemtimesSubFontOrd{sharp}{\mathord}{5D}%
+\chemtimesSubFontOrd{triangleleft}{\mathbin}{2F}%
+\chemtimesSubFontOrd{triangleright}{\mathbin}{2E}%
+\chemtimesSubFontOrd{smile}{\mathrel}{5E}%
+\chemtimesSubFontOrd{frown}{\mathrel}{5F}%
+\chemtimesSubFontOrd{star}{\mathbin}{3F}%
+\ChemAccent{vec}{\rlap}{7E}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\mathversion}
+% The command \verb/\mathversion/ is redefined to typeset punctuation symbols
+% properly.
+% \begin{macrocode}
+\DeclareRobustCommand\mathversion[1]
+ {\@nomath\mathversion
+ \expandafter\ifx\csname mv@#1\endcsname\relax
+ \@latex@error{Math version `#1' is not defined}\@eha\else
+ \edef\math@version{#1}%
+ \gdef\glb@currsize{}%
+%%%%%%2002/5/30 and 2004/11/17
+\ifx\math@version\math@chem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol
+\else\ifx\math@version\math@boldchem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol
+\else\ifx\math@version\math@bold
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol%
+\else
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \SetChemSymbol%
+\fi\fi\fi
+%%%%%%
+ \aftergroup\glb@settings
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% New mathversions (chem and boldchem) are defined, where upright fonts of times family
+% are used in math modes in place of slanted fonts.
+%
+% \begin{macrocode}
+\ifnewl@tex
+\@ifundefined{mv@chem}{%
+\DeclareMathVersion{chem}%
+\SetSymbolFont{letters}{chem} {OT1}{ptm}{m}{n}%
+\SetSymbolFont{operators}{chem} {OT1}{ztmcm} {m}{n}%
+\SetSymbolFont{symbols} {chem} {OMS}{ztmcm}{m}{n}%
+\SetSymbolFont{largesymbols}{chem}{OMX}{ztmcm}{b}{n}%
+\DeclareMathVersion{boldchem}%2009/10/23<--2002/5/30
+\SetSymbolFont{letters}{boldchem} {OT1}{ptm}{b}{n}%
+\SetSymbolFont{operators}{boldchem} {OT1}{ptm}{b}{n}%
+\SetSymbolFont{symbols}{boldchem} {OMS}{ptm}{b}{n}%
+\SetSymbolFont{largesymbols}{boldchem}{OMX}{ztmcm}{b}{n}%
+}{%
+ \PackageWarning%
+ {chemtimes}%
+ {The mathversion "chem" or "boldchem" has been already defined. ^^J%
+ The old mathversion remains effective unless it is removed. }%
+}
+\else
+ \PackageWarning%
+ {chemtimes}%
+ {Mathversions cannot be defined. Use LaTeX2e or a later version.}%
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\hbar}
+% The command \verb/\hbar/ is redefined to typeset the symbol
+% properly. This command is a slight modification of the one
+% which has been described in the \textsf{mathptmx} package.
+% \begin{macrocode}
+\DeclareRobustCommand\hbar{{%from mathptmx package
+\dimen@.06em \dimen@ii.06em%
+\def\@tempa##1##2{%
+ \lower##1\dimen@\rlap{\kern##1\dimen@ii\the##2 0\char22}}%
+ \mathchoice{\@tempa{\@ne}{\textfont}}%
+ {\@tempa{\@ne}{\textfont}}%
+ {\@tempa{\defaultscriptratio}{\scriptfont}}%
+ {\@tempa{\defaultscriptscriptratio}{\scriptscriptfont}}%
+ h}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathnormal}
+%
+% The macro \verb/\mathnormal/ for outputting numbers of old style
+% has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for oldsytle fonts}
+% \changes{v4.05}{2009/11/22}{Switch by \cs{bfit}}
+%
+% \begin{macrocode}
+\let\oldmathnormal=\mathnormal
+\def\mathnormal#1{%
+\ifx\math@version\math@chem
+%\mathgroup\@ne
+\m@thnorm@ltrue
+\ensuremath{\it \usefont{OML}{cmm}{m}{it}#1}%
+\else\ifx\math@version\math@boldchem
+\m@thnorm@ltrue
+\ensuremath{\bfit \usefont{OML}{cmm}{b}{it}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\m@thnorm@ltrue
+\ensuremath{\bfit \usefont{OML}{cmm}{b}{it}#1}%
+\else
+\ensuremath{\usefont{OML}{cmm}{b}{it}#1}%
+\fi
+\else
+\oldmathnormal{#1}%
+\fi\fi\fi%
+\m@thnorm@lfalse
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oldstyle}
+%
+% The command \verb/\oldstyle/ should be used in the form of \verb/{\oldstyle ...}/
+% in a math mode.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for oldsytle fonts}
+%
+% \begin{macrocode}
+\def\oldstyle{\egroup%
+\ifx\math@version\math@chem
+\hbox\bgroup\usefont{OML}{cmm}{m}{it}%
+\else\ifx\math@version\math@boldchem
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal\bgroup%
+\upgreekrmfalse
+\else
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\fi
+\else
+\oldmathnormal\bgroup%
+\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathcal}
+%
+% The macro \verb/\mathcal/ for outputting calligraphic letters
+% has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for calligraphic letters}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+\let\oldmathcal=\mathcal
+\def\mathcal#1{%
+\ifx\math@version\math@chem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{m}{n}#1}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{b}{n}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldmathcal{#1}%\upgreekrmfalse
+\else \oldmathcal{#1}\fi
+\else
+\oldmathcal{#1}%
+\fi\fi\fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cal}
+%
+% The macro \verb/\cal/ for outputting calligraphic letters
+% (a macro of declaration type) has been redefined to meet ``boldchem''.
+%
+% \changes{v4.05}{2009/10/25}{Redefined for calligraphic letters}
+% \changes{v4.05}{2009/11/20}{Switch by \cs{if@chemtimes} for chemtimes package}
+%
+% \begin{macrocode}
+%\if@chemtimes\else%for chemtimes package
+\let\oldcal=\cal
+\def\cal{%
+\ifx\math@version\math@chem
+\mathgroup\tw@\usefont{OMS}{cmsy}{m}{n}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@\usefont{OMS}{cmsy}{b}{n}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldcal\upgreekrmfalse
+\else\oldcal\fi
+\else
+\oldcal%
+\fi\fi\fi}%
+%\fi
+% \end{macrocode}
+% \end{macro}
+%
+% ChemEquation and ChemEqnarray enviroments are defined
+% as chemical counterparts of equation and eqnarray environments.
+% The corresponding asterisked enviroments are also defined.
+% The command \verb/\ChemForm/ is defined as a chemical counterpart
+% of \verb/\(...\)/ or \verb/$...$/.
+% These enviroments and the command do not require the selection of
+% a chem or boldchem mathversion.
+% \changes{v1.00}{2009/11/25}{Deleted. Definitions from the chemist package}
+%
+% \begin{macro}{ChemEquation}
+% \begin{macro}{ChemEqnarray}
+% \begin{macro}{ChemEquation*}
+% \begin{macro}{ChemEqnarray*}
+% \begin{macro}{\ChemForm}
+% \begin{macrocode}
+%\def\ChemEquation{\everymath{\rm}\everydisplay{\rm}\equation}
+%\def\endChemEquation{\endequation\everymath{}\everydisplay{}}
+%\def\ChemEqnarray{\everymath{\rm}\everydisplay{\rm}\eqnarray}
+%\def\endChemEqnarray{\endeqnarray\everymath{}\everydisplay{}}
+%\def\ChemForm#1{\everymath{\rm}$#1$\everymath{}}
+%\@namedef{ChemEqnarray*}{\def\@eqncr{\nonumber\@seqncr}\ChemEqnarray}
+%\@namedef{endChemEqnarray*}{\nonumber\endChemEqnarray}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The mathversion ``normal'' is declared as the initial default setting.
+% \begin{macrocode}
+\mathversion{normal}%default setting
+%</chemtimes>
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/chemtimes.ins b/macros/latex/contrib/xymtex/chemist/chemtimes.ins
new file mode 100644
index 0000000000..953d75989f
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemtimes.ins
@@ -0,0 +1,42 @@
+\def\batchfile{chemtimes.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2009, 2010 by Shinsaku Fujita all rights reserved.
+
+This file is part of the ChemSci system.
+=======================================
+Version 1.00 Released on October 20, 2009
+Released on November 21, 2010 (v5.00a)
+
+Copying of this file is authorized only if either
+
+ (1) you make absolutely no changes to your copy, including name and
+ directory name
+ (2) if you do make changes,
+ (a) you name it something other than the names included in the
+ ``macro-sahou-pac'' directory and
+ (b) you acknowledge the original name.
+ This restriction ensures that all standard styles are identical.
+
+=======================================
+
+This file contains several codes modified from latex.tex (LaTeX2.09)
+and from latex.ltx (a LaTeX2e), the reused parts of which are subject to
+Copyright 1994 the LaTeX3 project and the individual authors (For further
+copyright information see the file legal.txt of the LaTeX2e standard
+distribution, and any other copyright indicated in this file.)
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{chemtimes.drv}{t}{%
+ \from{chemtimes.dtx}{driver}}
+
+\generateFile{chemtimes.sty}{t}{%
+ \from{chemtimes.dtx}{chemtimes}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/chemist/chemtimes.sty b/macros/latex/contrib/xymtex/chemist/chemtimes.sty
new file mode 100644
index 0000000000..514cefa750
--- /dev/null
+++ b/macros/latex/contrib/xymtex/chemist/chemtimes.sty
@@ -0,0 +1,515 @@
+%%
+%% This is file `chemtimes.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chemtimes.dtx (with options: `chemtimes')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2009, 2010 by Shinsaku Fujita all rights reserved.
+%%
+%% This file is part of the ChemSci system.
+%% =======================================
+%% Version 1.00 Released on October 20, 2009
+%% Released on November 21, 2010 (v5.00a)
+%%
+%% Copying of this file is authorized only if either
+%%
+%% (1) you make absolutely no changes to your copy, including name and
+%% directory name
+%% (2) if you do make changes,
+%% (a) you name it something other than the names included in the
+%% ``macro-sahou-pac'' directory and
+%% (b) you acknowledge the original name.
+%% This restriction ensures that all standard styles are identical.
+%%
+%% =======================================
+%%
+%% This file contains several codes modified from latex.tex (LaTeX2.09)
+%% and from latex.ltx (a LaTeX2e), the reused parts of which are subject to
+%% Copyright 1994 the LaTeX3 project and the individual authors (For further
+%% copyright information see the file legal.txt of the LaTeX2e standard
+%% distribution, and any other copyright indicated in this file.)
+%%
+%% File: chemtimes.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Package `chemtimes' (v. 5.00a) Shinsaku Fujita 2010/11/21}
+\@ifundefined{chemcorr}{}{%
+ \PackageError{chemtimes}
+ {The ``chemist'' or ``chmst-ps'' package is not permitted here}
+ {The ``chemist'' or ``chmst-ps'' package will be automatically loaded \MessageBreak
+ when the ``chemtimes'' package is loaded.}
+}
+\newif\ifchemtimes%%
+\newif\if@chemtimes%%for chemist package
+\newif\if@@@chemtimes%%for chmst-ps package
+\newif\if@@chemtimes%%for chmst-ps package
+\DeclareOption{chemist}{\chemtimestrue}
+\chemtimesfalse
+\ProcessOptions
+\ifchemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\@@chemtimestrue
+\RequirePackage[chemtimes]{chmst-ps}%
+\fi
+\renewcommand{\rmdefault}{ptm}
+\def\Hv@scale{0.90}%scalable font
+\renewcommand{\sfdefault}{phv}
+%% change the defalt values (\thinmuskip 3mu to 2mu etc.)
+\thinmuskip=2mu
+\medmuskip=2.5mu plus 1mu minus 1mu
+\thickmuskip=4mu plus 1.5mu minus 1mu
+\DeclareSymbolFont{letters} {OML}{ztmcm}{m}{it}
+\DeclareSymbolFont{operators} {OT1}{ztmcm}{m}{n}
+\DeclareSymbolFont{symbols} {OMS}{ztmcm}{m}{n}
+\DeclareSymbolFont{largesymbols}{OMX}{ztmcm}{m}{n}
+\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n}
+\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it}
+\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n}
+\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it}
+\DeclareMathAlphabet{\mathbfit}{OT1}{ptm}{b}{it}%2009/11/22
+\DeclareMathAlphabet{\mathsf}{OT1}{phv}{m}{n}
+\DeclareMathAlphabet{\mathtt}{OT1}{cmtt}{m}{n}
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10}
+\SetSymbolFont{letters} {bold}{OT1}{ptm}{b}{it}%
+\SetSymbolFont{operators} {bold}{OT1}{ptm}{b}{n}%
+\SetSymbolFont{symbols} {bold}{OMS}{ptm}{b}{n}%
+\SetSymbolFont{largesymbols}{bold}{OMX}{ztmcm}{m}{n}%
+\def\defaultscriptratio{.74}
+\def\defaultscriptscriptratio{.6}
+\DeclareMathSizes{5}{5}{5}{5}
+\DeclareMathSizes{6}{6}{5}{5}
+\DeclareMathSizes{7}{7}{5}{5}
+\DeclareMathSizes{8}{8}{6}{5}
+\DeclareMathSizes{9}{9}{7}{5}
+\DeclareMathSizes{10}{10}{7.4}{6}
+\DeclareMathSizes{10.95}{10.95}{8}{6}
+\DeclareMathSizes{12}{12}{9}{7}
+\DeclareMathSizes{14.4}{14.4}{10.95}{8}
+\DeclareMathSizes{17.28}{17.28}{12}{10}
+\DeclareMathSizes{20.74}{20.74}{14.4}{12}
+\DeclareMathSizes{24.88}{24.88}{17.28}{14.4}
+\newif\ifnewl@tex \newl@textrue
+\@ifundefined{DeclareMathVersion}%
+ {\global\newl@texfalse}{\global\newl@textrue}%
+\def\math@chem{chem}
+\def\math@boldchem{boldchem}
+\def\math@bold{bold}
+\def\math@normal{normal}
+%%added 2005/09/02
+\let\oldalpha=\alpha
+\let\oldbeta=\beta
+\let\oldgamma=\gamma
+\let\olddelta=\delta
+\let\oldepsilon=\epsilon
+\let\oldzeta=\zeta
+\let\oldeta=\eta
+\let\oldtheta=\theta
+\let\oldiota=\iota
+\let\oldkappa=\kappa
+\let\oldlambda=\lambda
+\let\oldmu=\mu
+\let\oldnu=\nu
+\let\oldxi=\xi
+\let\oldpi=\pi
+\let\oldrho=\rho
+\let\oldsigma=\sigma
+\let\oldtau=\tau
+\let\oldupsilon=\upsilon
+\let\oldphi=\phi
+\let\oldchi=\chi
+\let\oldpsi=\psi
+\let\oldomega=\omega
+\let\oldvarepsilon=\varepsilon
+\let\oldvartheta=\vartheta
+\let\oldvarpi=\varpi
+\let\oldvarrho=\varrho
+\let\oldvarsigma=\varsigma
+\let\oldvarphi=\varphi
+\let\oldGamma=\Gamma
+\let\oldDelta=\Delta
+\let\oldTheta=\Theta
+\let\oldLamda=\Lambda
+\let\oldXi=\Xi
+\let\oldPi=\Pi
+\let\oldSigma=\Sigma
+\let\oldUpsilon=\Upsilon
+\let\oldPhi=\Phi
+\let\oldPsi=\Psi
+\let\oldOmega=\Omega
+\def\chemGreekpalette#1#2#3{%
+\mathchoice%
+{\mathord{\hbox{\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\scriptsize\usefont{OML}{#1}{#3}{it}\char"#2}}}%
+{\mathord{\hbox{\tiny\usefont{OML}{#1}{#3}{it}\char"#2}}}}%
+\def\chemGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+\ifx\math@version\math@chem
+\chemGreekpalette{ztmcm}{#2}{m}%
+\else
+\ifx\math@version\math@boldchem
+\chemGreekpalette{cmm}{#2}{b}%
+\else
+\ifx\math@version\math@bold
+\chemGreekpalette{cmm}{#2}{b}%
+\else
+\csname old#1\endcsname
+\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+\def\ChemAccent#1#2#3{%
+\expandafter\def\csname #1\endcsname{%
+\ifx\math@version\math@chem
+#2{\hbox{\kern-0.15em\usefont{OML}{cmm}{m}{it}\char"#3}}\else
+\ifx\math@version\math@boldchem
+#2{\hbox{\kern-0.2em\usefont{OML}{cmm}{b}{it}\char"#3}}\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\upgreekrmfalse
+\else
+#2{\hbox{\usefont{OML}{cmm}{b}{it}\char"#3}}%
+\fi
+\else
+#2{\hbox{\usefont{OML}{cmm}{m}{it}\char"#3}}%
+\fi\fi\fi}}
+\newif\ifupgreekrm \upgreekrmfalse
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm\upgreekrmtrue}
+\DeclareOldFontCommand{\bfit}{\normalfont\itshape\bfseries}{\mathbfit}%2009/11/22
+\let\oldmathrm=\mathrm
+\def\mathrm#1{\oldmathrm{\upgreekrmtrue #1}}
+\newif\ifm@thnorm@l
+\def\chemUpGreekletter#1#2{%
+\expandafter\def\csname #1\endcsname{\bgroup%2010/11/21 by S. Fujita
+\ensuremath{%
+\ifx\math@version\math@chem
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{m}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{m}{n}\char"#2}}%
+\fi
+\else
+\ifx\math@version\math@boldchem
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{b}{n}\char"#2}}%
+\fi
+\else
+\ifx\math@version\math@bold
+\ifupgreekrm
+\ifm@thnorm@l
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+\else
+\mathord{\hbox{\usefont{OT1}{cmr}{b}{n}\char"#2}}%
+\fi
+%%%\upgreekrmfalse
+\else
+\mathord{\hbox{\usefont{OML}{cmm}{b}{it}\char"#2}}%
+\fi
+\else
+\csname old#1\endcsname
+\fi\fi\fi}\egroup}}%added 2010/11/21 by S. Fujita
+\def\ctSFOpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OML}{cmm}{#1}{it}\char"#3}}}%
+}
+\def\chemtimesSubFontOrd#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+\ctSFOpalette{m}{#2}{#3}%
+\else\ifx\math@version\math@boldchem
+\ctSFOpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@bold
+\ctSFOpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@normal
+\ctSFOpalette{m}{#2}{#3}%
+\else
+\ctSFOpalette{m}{#2}{#3}%
+\fi\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+\def\ctSFBpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OMS}{cmsy}{#1}{n}\char"#3}}}%
+}
+\def\ctSFBBpalette#1#2#3{%
+\mathchoice
+{#2{\hbox{\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\scriptsize\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+{#2{\hbox{\tiny\usefont{OMS}{cmm}{#1}{n}\char"#3}}}%
+}
+\def\chemtimesSubFontBin#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+\ctSFBpalette{m}{#2}{#3}%
+\else\ifx\math@version\math@boldchem
+\ctSFBpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@bold
+\ctSFBpalette{b}{#2}{#3}%
+\else\ifx\math@version\math@normal
+\ctSFBpalette{m}{#2}{#3}%
+\else
+\ctSFBBpalette{m}{#2}{#3}%
+\fi\fi\fi\fi\egroup}}%added 2010/11/21 by S. Fujita
+\def\chemtimesSubFontLOp#1#2#3{%
+\expandafter\def\csname #1\endcsname{\bgroup%%added 2010/11/21 by S. Fujita
+ \PackageWarning{chemtimes}
+ {The symbol \expandafter\string\csname #1\endcsname\space
+ is not available with this package.
+ This font will be substituted by an appropriate commputer modern font}%
+\ifx\math@version\math@chem
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@boldchem
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@bold
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{b}{n}\char"#2}}{}{}%
+}%
+\else\ifx\math@version\math@normal
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\else
+\mathop{\mathchoice%
+{\raise2.2ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#3}}%
+{\raise1.8ex\hbox{\usefont{OMX}{cmex}{m}{n}\char"#2}}{}{}%
+}%
+\fi\fi\fi\fi\egroup}}%%added 2010/11/21 by S. Fujita
+\def\SetChemSymbol{%
+\chemGreekletter{alpha}{0B}%
+\chemGreekletter{beta}{0C}%
+\chemGreekletter{gamma}{0D}%
+\chemGreekletter{delta}{0E}%
+\chemGreekletter{epsilon}{0F}%
+\chemGreekletter{zeta}{10}%
+\chemGreekletter{eta}{11}%
+\chemGreekletter{theta}{12}%
+\chemGreekletter{iota}{13}%
+\chemGreekletter{kappa}{14}%
+\chemGreekletter{lambda}{15}%
+\chemGreekletter{mu}{16}%
+\chemGreekletter{nu}{17}%
+\chemGreekletter{xi}{18}%
+\chemGreekletter{pi}{19}%
+\chemGreekletter{rho}{1A}%
+\chemGreekletter{sigma}{1B}%
+\chemGreekletter{tau}{1C}%
+\chemGreekletter{upsilon}{1D}%
+\chemGreekletter{phi}{1E}%
+\chemGreekletter{chi}{1F}%
+\chemGreekletter{psi}{20}%
+\chemGreekletter{omega}{21}%
+\chemGreekletter{varepsilon}{22}%
+\chemGreekletter{vartheta}{23}%
+\chemGreekletter{varpi}{24}%
+\chemGreekletter{varrho}{25}%
+\chemGreekletter{varsigma}{26}%
+\chemGreekletter{varphi}{27}%
+\chemUpGreekletter{Gamma}{00}%
+\chemUpGreekletter{Delta}{01}%
+\chemUpGreekletter{Theta}{02}%
+\chemUpGreekletter{Lambda}{03}%
+\chemUpGreekletter{Xi}{04}%
+\chemUpGreekletter{Pi}{05}%
+\chemUpGreekletter{Sigma}{06}%
+\chemUpGreekletter{Upsilon}{07}%
+\chemUpGreekletter{Phi}{08}%
+\chemUpGreekletter{Psi}{09}%
+\chemUpGreekletter{Omega}{0A}%
+\chemtimesSubFontOrd{imath}{\mathord}{7B}%
+\chemtimesSubFontOrd{jmath}{\mathord}{7C}%
+\chemtimesSubFontBin{amalg}{\mathbin}{71}%
+\chemtimesSubFontLOp{coprod}{60}{61}%
+\chemtimesSubFontOrd{mathless}{\mathrel}{3C}%
+\chemtimesSubFontOrd{mathgreater}{\mathrel}{3E}%
+\chemtimesSubFontOrd{leftharpoonup}{\mathrel}{28}%
+\chemtimesSubFontOrd{leftharpoondown}{\mathrel}{29}%
+\chemtimesSubFontOrd{rightharpoonup}{\mathrel}{2A}%
+\chemtimesSubFontOrd{rightharpoondown}{\mathrel}{2B}%
+\chemtimesSubFontOrd{ell}{\mathord}{60}%
+\chemtimesSubFontOrd{wp}{\mathord}{7D}%
+\chemtimesSubFontOrd{partial}{\mathord}{40}%
+\chemtimesSubFontOrd{flat}{\mathord}{5B}%
+\chemtimesSubFontOrd{natural}{\mathord}{5C}%
+\chemtimesSubFontOrd{sharp}{\mathord}{5D}%
+\chemtimesSubFontOrd{triangleleft}{\mathbin}{2F}%
+\chemtimesSubFontOrd{triangleright}{\mathbin}{2E}%
+\chemtimesSubFontOrd{smile}{\mathrel}{5E}%
+\chemtimesSubFontOrd{frown}{\mathrel}{5F}%
+\chemtimesSubFontOrd{star}{\mathbin}{3F}%
+\ChemAccent{vec}{\rlap}{7E}%
+}
+\DeclareRobustCommand\mathversion[1]
+ {\@nomath\mathversion
+ \expandafter\ifx\csname mv@#1\endcsname\relax
+ \@latex@error{Math version `#1' is not defined}\@eha\else
+ \edef\math@version{#1}%
+ \gdef\glb@currsize{}%
+%%%%%%2002/5/30 and 2004/11/17
+\ifx\math@version\math@chem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol
+\else\ifx\math@version\math@boldchem
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol
+\else\ifx\math@version\math@bold
+ \mathcode`\.="012E
+ \mathcode`\,="612C
+ \mathcode`\/="012F
+ \SetChemSymbol%
+\else
+ \mathcode`\.="013A
+ \mathcode`\,="613B
+ \mathcode`\/="013D
+ \SetChemSymbol%
+\fi\fi\fi
+%%%%%%
+ \aftergroup\glb@settings
+ \fi}
+\ifnewl@tex
+\@ifundefined{mv@chem}{%
+\DeclareMathVersion{chem}%
+\SetSymbolFont{letters}{chem} {OT1}{ptm}{m}{n}%
+\SetSymbolFont{operators}{chem} {OT1}{ztmcm} {m}{n}%
+\SetSymbolFont{symbols} {chem} {OMS}{ztmcm}{m}{n}%
+\SetSymbolFont{largesymbols}{chem}{OMX}{ztmcm}{b}{n}%
+\DeclareMathVersion{boldchem}%2009/10/23<--2002/5/30
+\SetSymbolFont{letters}{boldchem} {OT1}{ptm}{b}{n}%
+\SetSymbolFont{operators}{boldchem} {OT1}{ptm}{b}{n}%
+\SetSymbolFont{symbols}{boldchem} {OMS}{ptm}{b}{n}%
+\SetSymbolFont{largesymbols}{boldchem}{OMX}{ztmcm}{b}{n}%
+}{%
+ \PackageWarning%
+ {chemtimes}%
+ {The mathversion "chem" or "boldchem" has been already defined. ^^J%
+ The old mathversion remains effective unless it is removed. }%
+}
+\else
+ \PackageWarning%
+ {chemtimes}%
+ {Mathversions cannot be defined. Use LaTeX2e or a later version.}%
+\fi
+\DeclareRobustCommand\hbar{{%from mathptmx package
+\dimen@.06em \dimen@ii.06em%
+\def\@tempa##1##2{%
+ \lower##1\dimen@\rlap{\kern##1\dimen@ii\the##2 0\char22}}%
+ \mathchoice{\@tempa{\@ne}{\textfont}}%
+ {\@tempa{\@ne}{\textfont}}%
+ {\@tempa{\defaultscriptratio}{\scriptfont}}%
+ {\@tempa{\defaultscriptscriptratio}{\scriptscriptfont}}%
+ h}}
+\let\oldmathnormal=\mathnormal
+\def\mathnormal#1{%
+\ifx\math@version\math@chem
+\m@thnorm@ltrue
+\ensuremath{\it \usefont{OML}{cmm}{m}{it}#1}%
+\else\ifx\math@version\math@boldchem
+\m@thnorm@ltrue
+\ensuremath{\bfit \usefont{OML}{cmm}{b}{it}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\m@thnorm@ltrue
+\ensuremath{\bfit \usefont{OML}{cmm}{b}{it}#1}%
+\else
+\ensuremath{\usefont{OML}{cmm}{b}{it}#1}%
+\fi
+\else
+\oldmathnormal{#1}%
+\fi\fi\fi%
+\m@thnorm@lfalse
+}%
+\def\oldstyle{\egroup%
+\ifx\math@version\math@chem
+\hbox\bgroup\usefont{OML}{cmm}{m}{it}%
+\else\ifx\math@version\math@boldchem
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm
+\oldmathnormal\bgroup%
+\upgreekrmfalse
+\else
+\hbox\bgroup\usefont{OML}{cmm}{b}{it}%
+\fi
+\else
+\oldmathnormal\bgroup%
+\fi\fi\fi}%
+\let\oldmathcal=\mathcal
+\def\mathcal#1{%
+\ifx\math@version\math@chem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{m}{n}#1}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@{\usefont{OMS}{cmsy}{b}{n}#1}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldmathcal{#1}%\upgreekrmfalse
+\else \oldmathcal{#1}\fi
+\else
+\oldmathcal{#1}%
+\fi\fi\fi}%
+\let\oldcal=\cal
+\def\cal{%
+\ifx\math@version\math@chem
+\mathgroup\tw@\usefont{OMS}{cmsy}{m}{n}%
+\else\ifx\math@version\math@boldchem
+\mathgroup\tw@\usefont{OMS}{cmsy}{b}{n}%
+\else\ifx\math@version\math@bold
+\ifupgreekrm \oldcal\upgreekrmfalse
+\else\oldcal\fi
+\else
+\oldcal%
+\fi\fi\fi}%
+\mathversion{normal}%default setting
+\endinput
+%%
+%% End of file `chemtimes.sty'.
diff --git a/macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf b/macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf
new file mode 100644
index 0000000000..142facd997
--- /dev/null
+++ b/macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf b/macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf
new file mode 100644
index 0000000000..6269b690c7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdf b/macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdf
new file mode 100644
index 0000000000..f06fc1d0ca
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdf b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdf
new file mode 100644
index 0000000000..19c1bd7559
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdf b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdf
new file mode 100644
index 0000000000..efb67ab107
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdf b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdf
new file mode 100644
index 0000000000..baed6dcded
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdf b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdf
new file mode 100644
index 0000000000..52c067d428
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdf b/macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdf
new file mode 100644
index 0000000000..e21e0c5094
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdf b/macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdf
new file mode 100644
index 0000000000..f6cf4905f5
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdf b/macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdf
new file mode 100644
index 0000000000..7a340e7179
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdf b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdf
new file mode 100644
index 0000000000..27da2cccb5
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdf b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdf
new file mode 100644
index 0000000000..6269b690c7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdf b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdf
new file mode 100644
index 0000000000..065d68e395
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdf b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdf
new file mode 100644
index 0000000000..ce4713531d
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdf b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdf
new file mode 100644
index 0000000000..e345eb5a1e
--- /dev/null
+++ b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdf
Binary files differ
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.doc
new file mode 100644
index 0000000000..e35b807b6c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.doc
@@ -0,0 +1,41 @@
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Latest Version: 4.02
+Archives: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi, xymtx300.pdf), xymtx400.tex (xymtx400.pdf),
+xymtx401.tex (xymtx401.pdf), xymtx402.tex (xymtx402.pdf)
+
+For Installment, see xymtx402.doc (xymtx402.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.jpn
new file mode 100644
index 0000000000..82c1c709e7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme402.jpn
@@ -0,0 +1,110 @@
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx402.lzh for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 4.02
+–{ Ð: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), ‚¨‚æ‚Ñxymtx402.tex (xymtx402.pdf)
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Latest Version: 4.02
+Archives: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), and xymtx402.tex (xymtx402.pdf)
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.00‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.dvi) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.dvi) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02—p‚É39ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 4.02‚Å‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB‚±‚ê‚ç‚ÍA
+ŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+@@u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+@@@“¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx402.lzh‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃ƒCƒ“ƒfƒBƒŒƒNƒgƒŠ[“à‚Ålha‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+@@@a:\tex>lha x b:\xymtx402
+
+Ú‚µ‚¢ƒCƒ“ƒXƒg[ƒ‹‚Ì•û–@‚ÍAxymtx402.doc‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.doc
new file mode 100644
index 0000000000..4caab9db35
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.doc
@@ -0,0 +1,46 @@
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://imt.chem.kit.ac.jp/fujita/fujitas/fujitae.html
+Latest Version: 4.03
+Archives: http://imt.chem.kit.ac.jp/fujita/fujitas/fujitae.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi, xymtx300.pdf), xymtx400.tex (xymtx400.pdf),
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf)
+
+For Installment, see xymtx403.doc (xymtx403.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.jpn
new file mode 100644
index 0000000000..f30e4817eb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme403.jpn
@@ -0,0 +1,115 @@
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx403.lzh for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 4.03
+–{ Ð: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), ‚¨‚æ‚Ñxymtx402403.tex (xymtx402403.pdf)
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Latest Version: 4.03
+Archives: http://imt.chem.kit.ac.jp/fujita/fujitas/fujita.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), and xymtx402403.tex (xymtx402403.pdf)
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.dvi) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.dvi) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 4.03‚Å‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB‚±‚ê‚ç‚ÍA
+ŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+@@u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+@@@“¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx403.lzh‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃ƒCƒ“ƒfƒBƒŒƒNƒgƒŠ[“à‚Ålha‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+@@@a:\tex>lha x b:\xymtx403
+
+Ú‚µ‚¢ƒCƒ“ƒXƒg[ƒ‹‚Ì•û–@‚ÍAxymtx403.doc‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.doc
new file mode 100644
index 0000000000..57a5bc45a7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.doc
@@ -0,0 +1,52 @@
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.04
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi, xymtx300.pdf), xymtx400.tex (xymtx400.pdf),
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf)
+
+For Installment, see xymtx404.doc (xymtx404.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.jpn
new file mode 100644
index 0000000000..fb30e1c888
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme404.jpn
@@ -0,0 +1,132 @@
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx404.lzh for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 4.04
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+‚¨‚æ‚Ñxymtx404.tex (xymtx404.pdf)
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.04
+Archives: http://xymtex.com/fujitas3/xymtex/index.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+and xymtx404.tex (xymtx404.pdf)
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·DVersion 4.04‚Å‚ÍC
+ƒXƒeƒƒCƒh—Þ‚ð•`‰æ‚·‚邽‚ß‚Ìsteroid.sty‚ð쬂µ‚Ü‚µ‚½D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.04—p‚̃}ƒjƒ…ƒAƒ‹(xymtx404.pdf)‚ÍC’ljÁ‚µ‚½ƒXƒeƒƒCƒh—Þ‚Ì–½—ß‚Æo—Í
+‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DPDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð
+—p‚¢‚Ä‚­‚¾‚³‚¢Dxymtx404.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢
+dvi-ware‚Å‚Í“Ç‚ß‚Ü‚¹‚ñD
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 4.04‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB‚±‚ê‚ç‚ÍA
+ŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+@@u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+@@@“¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx404.lzh‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃ƒCƒ“ƒfƒBƒŒƒNƒgƒŠ[“à‚Ålha‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+@@@a:\tex>lha x b:\xymtx404
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx404.lzh‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+Ú‚µ‚¢ƒCƒ“ƒXƒg[ƒ‹‚Ì•û–@‚ÍAxymtx404.doc‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.doc
new file mode 100644
index 0000000000..682fb640df
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.doc
@@ -0,0 +1,59 @@
+readm405.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.05
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi, xymtx300.pdf), xymtx400.tex (xymtx400.pdf),
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf)
+xymtx405A.tex (xymtx405A.pdf), xymtx405B.tex (xymtx405B.pdf),
+xymtx405C.tex (xymtx405C.pdf)
+
+For Installment, see xymtx405.doc (xymtx405.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.jpn
new file mode 100644
index 0000000000..e2f1f0e8f2
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme405.jpn
@@ -0,0 +1,164 @@
+readm405.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx405.zip for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 4.05
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf),
+xymtx405A.tex (xymtx405A.pdf), xymtx405B.tex (xymtx405B.pdf), ‚¨‚æ‚Ñ
+xymtx405C.tex (xymtx405C.pdf)
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.05
+Archives: http://xymtex.com/fujitas3/xymtex/index.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf),
+xymtx405A.tex (xymtx405A.pdf), xymtx405B.tex (xymtx405B.pdf), and
+xymtx405C.tex (xymtx405C.pdf)
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·DVersion 4.04‚Å‚ÍC
+ƒXƒeƒƒCƒh—Þ‚ð•`‰æ‚·‚邽‚ß‚Ìsteroid.sty‚ð쬂µ‚Ü‚µ‚½DVersion 4.05‚Å‚ÍC
+Lewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð•`‚­‚½‚߂̃}ƒNƒ‚ð—pˆÓ‚µ‚Ü‚µ‚½(xymtx405A.pdf)D‚Ü‚½C
+chemist.sty‚ð‰ü—Ç‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ð‚Å‚«‚邾‚¯
+‚È‚­‚·‚悤‚É‚µCPostScript‘Ήž(chmst-ps.sty)‚Ì‚Æ‚«‚Ì–îˆó—Þ‚ð®”õ‚µ‚Ü‚µ‚½
+(xymtx405B.pdf)D‚³‚ç‚ÉCchemtimes.sty‚ðVÝ‚µ‚ÄCTimesŒn‚̃tƒHƒ“ƒg‚ð’n‚Ì•¶
+‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚Ü‚µ‚½
+(xymtx405C.pdf)D
+
+ƒƒ}ƒjƒ…ƒAƒ‹—Þ„
+@Version 4.05—p‚̃}ƒjƒ…ƒAƒ‹‚Í3Ží—Þ‚ ‚è‚Ü‚·Dxymtx405A.pdf‚ÍCLewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð
+•`‚­‚½‚߂̃}ƒNƒ‚ð’†S‚Éà–¾‚µ‚Ü‚µ‚½Dxymtx405B.pdf‚ÍCchemist.sty‚̉ü—Ç‚ÉŠÖ‚·‚é‚à‚Ì
+‚Å‚·DŽÀ—á‚ðŽ¦‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ɂ‚¢‚ÄÚׂÉà–¾‚µ‚Ü‚µ‚½D
+‚Ü‚½PostScript‘Ήž(chmst-ps.sty)‚Å‚Ì–îˆó—ނɂ‚¢‚Ä‚àà–¾‚µ‚Ü‚µ‚½D
+xymtx405C.pdf‚Å‚ÍCVÝ‚µ‚½chemtimes.sty‚ɂ‚¢‚Äà–¾‚µ‚Ä‚ ‚è‚Ü‚·D
+TimesŒn‚̃tƒHƒ“ƒg‚ðC’n‚Ì•¶‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚à
+Žg‚¦‚邱‚Æ‚ðŽÀ—á‚ÅŽ¦‚µ‚Ü‚µ‚½D
+
+======‹Œƒo[ƒWƒ‡ƒ“‚ÉŠÖ‚·‚éà–¾Dƒ}ƒjƒ…ƒAƒ‹‚ÍŒ»ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·=========
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.04—p‚̃}ƒjƒ…ƒAƒ‹(xymtx404.pdf)‚ÍC’ljÁ‚µ‚½ƒXƒeƒƒCƒh—Þ‚Ì–½—ß‚Æo—Í
+‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DPDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð
+—p‚¢‚Ä‚­‚¾‚³‚¢Dxymtx404.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢
+dvi-ware‚Å‚Í“Ç‚ß‚Ü‚¹‚ñD
+
+======================================================================================
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 4.05‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB
+Šî–{“I‚ÈŽg—p–@‚ÍCxymtex.pdf‚Æ‚¢‚¤ƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðƒz[ƒ€ƒy[ƒW
+http://xymtex.com/‚ɃAƒbƒvƒ[ƒh‚µ‚Ä‚ ‚è‚Ü‚·‚Ì‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢D‚Ü‚½C
+‚±‚̃z[ƒ€ƒy[ƒW‚É‚ÍC“ú–{Œêƒ}ƒjƒ…ƒAƒ‹‚à—pˆÓ‚µ‚Ä‚ ‚è‚Ü‚·D
+
+‚³‚ç‚ÉÚ‚µ‚­‚ÍCŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+@@u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+@@@“¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+@@@
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx405.zip‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃pƒX‚Ì’Ê‚Á‚Ä‚¢‚éƒfƒBƒŒƒNƒgƒŠ[“à‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx405.zip‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+ƒCƒ“ƒXƒg[ƒ‹‚ÌŠT—ª‚̎臂ÍAxymtx405.doc‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.doc
new file mode 100644
index 0000000000..4661d69a03
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.doc
@@ -0,0 +1,64 @@
+readm406.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm405.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.06
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtex.pdf, xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi, xymtx300.pdf), xymtx400.tex (xymtx400.pdf),
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf)
+xymtx405A.tex (xymtx405A.pdf), xymtx405406B.tex (xymtx405406B.pdf),
+xymtx405406C.tex (xymtx405406C.pdf)
+
+For Installment, see xymtx406.doc (xymtx406.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.jpn
new file mode 100644
index 0000000000..d813cb0445
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme406.jpn
@@ -0,0 +1,173 @@
+readm406.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm405.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx406.zip for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 4.06
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf),
+xymtx405A.tex (xymtx405A.pdf), xymtx405406B.tex (xymtx405406B.pdf), ‚¨‚æ‚Ñ
+xymtx405406C.tex (xymtx405406C.pdf)
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 4.06
+Archives: http://xymtex.com/fujitas3/xymtex/index.html
+Note: Documentation in xymtx200.tex (xymtx200.dvi, xymtx200.pdf),
+xymtx300.tex (xymtx300.dvi,xymtx300.pdf), xymtx400.tex (xymtx400.pdf)
+xymtx401.tex (xymtx401.pdf), xymtx402403.tex (xymtx402403.pdf),
+xymtx404.tex (xymtx404.pdf),
+xymtx405A.tex (xymtx405A.pdf), xymtx405406B.tex (xymtx405406B.pdf), and
+xymtx405406C.tex (xymtx405406C.pdf)
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·DVersion 4.04‚Å‚ÍC
+ƒXƒeƒƒCƒh—Þ‚ð•`‰æ‚·‚邽‚ß‚Ìsteroid.sty‚ð쬂µ‚Ü‚µ‚½DVersion 4.05‚Å‚ÍC
+Lewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð•`‚­‚½‚߂̃}ƒNƒ‚ð—pˆÓ‚µ‚Ü‚µ‚½(xymtx405A.pdf)D‚Ü‚½C
+chemist.sty‚ð‰ü—Ç‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ð‚Å‚«‚邾‚¯
+‚È‚­‚·‚悤‚É‚µCPostScript‘Ήž(chmst-ps.sty)‚Ì‚Æ‚«‚Ì–îˆó—Þ‚ð®”õ‚µ‚Ü‚µ‚½
+(xymtx405B.pdf)D‚³‚ç‚ÉCchemtimes.sty‚ðVÝ‚µ‚ÄCTimesŒn‚̃tƒHƒ“ƒg‚ð’n‚Ì•¶
+‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚Ü‚µ‚½
+(xymtx405C.pdf)D
+
+ƒƒ}ƒjƒ…ƒAƒ‹—Þ„
+@Version 4.06—p‚̃}ƒjƒ…ƒAƒ‹‚ÍCxymtx405406B.pdf‚Æxymtex405406C.pdf‚Å‚·D‚±‚ê‚ç‚Í
+Version@4.05—p‚̃}ƒjƒ…ƒAƒ‹xytx405B.pdf‚Æxymtx405C.pdf‚ÉCVersion 4.06‚ÌŠJ”­€–Ú
+(çóŒ^–îˆó)‚Ìà–¾‚ð’ljÁ‚µ‚½‚à‚Ì‚Å‚·Dxymtx305A.pdf‚Í‚»‚Ì‚Ü‚Ü’Ê—p‚µ‚Ü‚·D
+
+======‹Œƒo[ƒWƒ‡ƒ“‚ÉŠÖ‚·‚éà–¾Dƒ}ƒjƒ…ƒAƒ‹‚ÍŒ»ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·=========
+
+@Version 4.05—p‚̃}ƒjƒ…ƒAƒ‹‚Í3Ží—Þ‚ ‚è‚Ü‚·Dxymtx405A.pdf‚ÍCLewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð
+•`‚­‚½‚߂̃}ƒNƒ‚ð’†S‚Éà–¾‚µ‚Ü‚µ‚½Dxymtx405B.pdf‚ÍCchemist.sty‚̉ü—Ç‚ÉŠÖ‚·‚é‚à‚Ì
+‚Å‚·DŽÀ—á‚ðŽ¦‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ɂ‚¢‚ÄÚׂÉà–¾‚µ‚Ü‚µ‚½D
+‚Ü‚½PostScript‘Ήž(chmst-ps.sty)‚Å‚Ì–îˆó—ނɂ‚¢‚Ä‚àà–¾‚µ‚Ü‚µ‚½D
+xymtx405C.pdf‚Å‚ÍCVÝ‚µ‚½chemtimes.sty‚ɂ‚¢‚Äà–¾‚µ‚Ä‚ ‚è‚Ü‚·D
+TimesŒn‚̃tƒHƒ“ƒg‚ðC’n‚Ì•¶‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚à
+Žg‚¦‚邱‚Æ‚ðŽÀ—á‚ÅŽ¦‚µ‚Ü‚µ‚½D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.04—p‚̃}ƒjƒ…ƒAƒ‹(xymtx404.pdf)‚ÍC’ljÁ‚µ‚½ƒXƒeƒƒCƒh—Þ‚Ì–½—ß‚Æo—Í
+‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DPDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð
+—p‚¢‚Ä‚­‚¾‚³‚¢Dxymtx404.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢
+dvi-ware‚Å‚Í“Ç‚ß‚Ü‚¹‚ñD
+
+======================================================================================
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 4.06‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB
+Šî–{“I‚ÈŽg—p–@‚ÍCxymtex.pdf‚Æ‚¢‚¤ƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðƒz[ƒ€ƒy[ƒW
+http://xymtex.com/‚ɃAƒbƒvƒ[ƒh‚µ‚Ä‚ ‚è‚Ü‚·‚Ì‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢D‚Ü‚½C
+‚±‚̃z[ƒ€ƒy[ƒW‚É‚ÍC“ú–{Œêƒ}ƒjƒ…ƒAƒ‹‚à—pˆÓ‚µ‚Ä‚ ‚è‚Ü‚·D
+
+‚³‚ç‚ÉÚ‚µ‚­‚ÍCŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+@@u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+@@@“¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+@@@
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx406.zip‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃pƒX‚Ì’Ê‚Á‚Ä‚¢‚éƒfƒBƒŒƒNƒgƒŠ[“à‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx406.zip‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+ƒCƒ“ƒXƒg[ƒ‹‚ÌŠT—ª‚̎臂ÍAxymtx406.doc‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.doc
new file mode 100644
index 0000000000..61997f762a
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.doc
@@ -0,0 +1,68 @@
+readm500.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm406.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm405.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.00
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+
+For Installment, see xymtx500.doc (xymtx500.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.jpn
new file mode 100644
index 0000000000..f3ba5c22b0
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500.jpn
@@ -0,0 +1,184 @@
+readm500.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm406.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm405.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx500.zip for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 5.00
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍA
+xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.00
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·DVersion 4.04‚Å‚ÍC
+ƒXƒeƒƒCƒh—Þ‚ð•`‰æ‚·‚邽‚ß‚Ìsteroid.sty‚ð쬂µ‚Ü‚µ‚½DVersion 4.05‚Å‚ÍC
+Lewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð•`‚­‚½‚߂̃}ƒNƒ‚ð—pˆÓ‚µ‚Ü‚µ‚½(xymtx405A.pdf)D‚Ü‚½C
+chemist.sty‚ð‰ü—Ç‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ð‚Å‚«‚邾‚¯
+‚È‚­‚·‚悤‚É‚µCPostScript‘Ήž(chmst-ps.sty)‚Ì‚Æ‚«‚Ì–îˆó—Þ‚ð®”õ‚µ‚Ü‚µ‚½
+(xymtx405B.pdf)D‚³‚ç‚ÉCchemtimes.sty‚ðVÝ‚µ‚ÄCTimesŒn‚̃tƒHƒ“ƒg‚ð’n‚Ì•¶
+‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚Ü‚µ‚½
+(xymtx405C.pdf)D
+
+@Version 5.00‚Å‚ÍC‚±‚ê‚Ü‚Å‚ÌPostScript‘Ήž‚ɉÁ‚¦‚ÄC
+PDF‘Ήžƒ‚[ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½(xymtx500.pdf, xymtx500PS.pdf)D‚±‚ÌŒ‹‰ÊCdvipdfmx‚È‚Ç
+‚Ådviƒtƒ@ƒCƒ‹‚ð’¼Ú‚ÉPDF‚É•ÏŠ·‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½D‚Ü‚½C“Á’è‚ÌŒ‹‡‚â’uŠ·Šî‚ð
+’…F‚·‚é‹@”\‚ð’ljÁ‚µ‚Ü‚µ‚½D
+
+ƒƒ}ƒjƒ…ƒAƒ‹—Þ„
+@Version 5.00—p‚̃}ƒjƒ…ƒAƒ‹‚ÍCxymtx500.pdf‚Æxymtex500PS.pdf‚Å‚·D“ñ‚‚Ì
+ƒ}ƒjƒ…ƒAƒ‹‚Í“¯ˆê“à—e‚Å‚·‚ªCxymtx500.pdf‚ÍPDF‘Ήžƒ‚[ƒh‚Å‘g”Å‚µ‚½‚à‚ÌC
+xymtx500PS.pdf‚ÍPS‘Ήžƒ‚[ƒh‚Å‘g”Å‚µ‚½‚à‚Ì‚Å‚·D
+
+======‹Œƒo[ƒWƒ‡ƒ“‚ÉŠÖ‚·‚éà–¾Dƒ}ƒjƒ…ƒAƒ‹‚ÍŒ»ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·=========
+@Version 4.06—p‚̃}ƒjƒ…ƒAƒ‹‚ÍCxymtx405406B.pdf‚Æxymtex405406C.pdf‚Å‚·D‚±‚ê‚ç‚Í
+Version@4.05—p‚̃}ƒjƒ…ƒAƒ‹xytx405B.pdf‚Æxymtx405C.pdf‚ÉCVersion 4.06‚ÌŠJ”­€–Ú
+(çóŒ^–îˆó)‚Ìà–¾‚ð’ljÁ‚µ‚½‚à‚Ì‚Å‚·Dxymtx305A.pdf‚Í‚»‚Ì‚Ü‚Ü’Ê—p‚µ‚Ü‚·D
+
+@Version 4.05—p‚̃}ƒjƒ…ƒAƒ‹‚Í3Ží—Þ‚ ‚è‚Ü‚·Dxymtx405A.pdf‚ÍCLewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð
+•`‚­‚½‚߂̃}ƒNƒ‚ð’†S‚Éà–¾‚µ‚Ü‚µ‚½Dxymtx405B.pdf‚ÍCchemist.sty‚̉ü—Ç‚ÉŠÖ‚·‚é‚à‚Ì
+‚Å‚·DŽÀ—á‚ðŽ¦‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ɂ‚¢‚ÄÚׂÉà–¾‚µ‚Ü‚µ‚½D
+‚Ü‚½PostScript‘Ήž(chmst-ps.sty)‚Å‚Ì–îˆó—ނɂ‚¢‚Ä‚àà–¾‚µ‚Ü‚µ‚½D
+xymtx405C.pdf‚Å‚ÍCVÝ‚µ‚½chemtimes.sty‚ɂ‚¢‚Äà–¾‚µ‚Ä‚ ‚è‚Ü‚·D
+TimesŒn‚̃tƒHƒ“ƒg‚ðC’n‚Ì•¶‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚à
+Žg‚¦‚邱‚Æ‚ðŽÀ—á‚ÅŽ¦‚µ‚Ü‚µ‚½D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.04—p‚̃}ƒjƒ…ƒAƒ‹(xymtx404.pdf)‚ÍC’ljÁ‚µ‚½ƒXƒeƒƒCƒh—Þ‚Ì–½—ß‚Æo—Í
+‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DPDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð
+—p‚¢‚Ä‚­‚¾‚³‚¢Dxymtx404.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢
+dvi-ware‚Å‚Í“Ç‚ß‚Ü‚¹‚ñD
+
+======================================================================================
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 5.00‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB
+Šî–{“I‚ÈŽg—p–@‚ÍCxymtex.pdf‚Æ‚¢‚¤ƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðƒz[ƒ€ƒy[ƒW
+http://xymtex.com/‚ɃAƒbƒvƒ[ƒh‚µ‚Ä‚ ‚è‚Ü‚·‚Ì‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢D‚Ü‚½C
+‚±‚̃z[ƒ€ƒy[ƒW‚É‚ÍC“ú–{Œêƒ}ƒjƒ…ƒAƒ‹‚à—pˆÓ‚µ‚Ä‚ ‚è‚Ü‚·D
+
+‚³‚ç‚ÉÚ‚µ‚­‚ÍCŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+ u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+ “¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx500.zip‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃pƒX‚Ì’Ê‚Á‚Ä‚¢‚éƒfƒBƒŒƒNƒgƒŠ[“à‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx500.zip‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+ƒCƒ“ƒXƒg[ƒ‹‚ÌŠT—ª‚̎臂ÍAxymtx500.jpn‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.doc
new file mode 100644
index 0000000000..bebbf28b05
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.doc
@@ -0,0 +1,73 @@
+readm500a.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm500.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm406.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm405.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.00a (bug fixed)
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+
+For Installment, see xymtx500a.doc (xymtx500a.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.jpn
new file mode 100644
index 0000000000..d87acb1dbd
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.jpn
@@ -0,0 +1,195 @@
+readm500a.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm500.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm406.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm405.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx500a.zip for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 5.00
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍA
+xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.00a (bug fixed)
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentation in xymtex.pdf,
+xymtx200.pdf, xymtx300.pdf, xymtx400.pdf,
+xymtx401.pdf, xymtx402403.pdf, xymtx404.pdf,
+xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf,
+xymtx500.pdf.
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·BVersion 4.00‚Å
+PostScript‘Ήž‚Æ‚µ‚Ü‚µ‚½DXyMTeX Version4.03‚ðPostScriptƒ‚[ƒh‚ÅŽg—p‚µ‚½ê‡
+‚É‚ÍCPostScriptƒvƒŠƒ“ƒ^[‚Ü‚½‚Í‚»‚ê‚É‚©‚í‚é‚à‚Ì‚ª•K—v‚Å‚·DVersion 4.04‚Å‚ÍC
+ƒXƒeƒƒCƒh—Þ‚ð•`‰æ‚·‚邽‚ß‚Ìsteroid.sty‚ð쬂µ‚Ü‚µ‚½DVersion 4.05‚Å‚ÍC
+Lewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð•`‚­‚½‚߂̃}ƒNƒ‚ð—pˆÓ‚µ‚Ü‚µ‚½(xymtx405A.pdf)D‚Ü‚½C
+chemist.sty‚ð‰ü—Ç‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ð‚Å‚«‚邾‚¯
+‚È‚­‚·‚悤‚É‚µCPostScript‘Ήž(chmst-ps.sty)‚Ì‚Æ‚«‚Ì–îˆó—Þ‚ð®”õ‚µ‚Ü‚µ‚½
+(xymtx405B.pdf)D‚³‚ç‚ÉCchemtimes.sty‚ðVÝ‚µ‚ÄCTimesŒn‚̃tƒHƒ“ƒg‚ð’n‚Ì•¶
+‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚Ü‚µ‚½
+(xymtx405C.pdf)D
+
+@Version 5.00a (bug fixed)‚Å‚ÍCchemist.sty‚¨‚æ‚Ñchemtimes.sty‚̃oƒO‚ð’ù³
+‚µ‚Ü‚µ‚½D‹Œ”z•z•¨‚Å‚ÍC‚½‚Æ‚¦‚ÎC$a^{\star}$‚Æ‚·‚ê‚Έ—‚ª‚Å‚«‚Ü‚µ‚½‚ªC
+’†Š‡ŒÊ‚ð‚Í‚¸‚µ‚Ä$a^\star$‚Æ‚·‚é‚ƃGƒ‰[‚Æ‚È‚è‚Ü‚µ‚½D‚±‚ê‚ðC$a^{\star}$
+‚Å‚à$a^\star$‚Å‚àˆ—‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½D
+
+ƒƒ}ƒjƒ…ƒAƒ‹—Þ„
+@Version 5.00a—p‚̃}ƒjƒ…ƒAƒ‹‚ÍCVersion 5.00—p‚̃}ƒjƒ…ƒAƒ‹‚Å‘ã—p‚µ‚Ü‚·D
+xymtx500.pdf‚Æxymtex500PS.pdf‚Å‚·D“ñ‚‚Ì
+ƒ}ƒjƒ…ƒAƒ‹‚Í“¯ˆê“à—e‚Å‚·‚ªCxymtx500.pdf‚ÍPDF‘Ήžƒ‚[ƒh‚Å‘g”Å‚µ‚½‚à‚ÌC
+xymtx500PS.pdf‚ÍPS‘Ήžƒ‚[ƒh‚Å‘g”Å‚µ‚½‚à‚Ì‚Å‚·D
+
+======‹Œƒo[ƒWƒ‡ƒ“‚ÉŠÖ‚·‚éà–¾Dƒ}ƒjƒ…ƒAƒ‹‚ÍŒ»ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·=========
+@Version 4.06—p‚̃}ƒjƒ…ƒAƒ‹‚ÍCxymtx405406B.pdf‚Æxymtex405406C.pdf‚Å‚·D‚±‚ê‚ç‚Í
+Version@4.05—p‚̃}ƒjƒ…ƒAƒ‹xytx405B.pdf‚Æxymtx405C.pdf‚ÉCVersion 4.06‚ÌŠJ”­€–Ú
+(çóŒ^–îˆó)‚Ìà–¾‚ð’ljÁ‚µ‚½‚à‚Ì‚Å‚·Dxymtx305A.pdf‚Í‚»‚Ì‚Ü‚Ü’Ê—p‚µ‚Ü‚·D
+
+@Version 4.05—p‚̃}ƒjƒ…ƒAƒ‹‚Í3Ží—Þ‚ ‚è‚Ü‚·Dxymtx405A.pdf‚ÍCLewis\‘¢—p‚̌Ǘ§“dŽq‘΂ð
+•`‚­‚½‚߂̃}ƒNƒ‚ð’†S‚Éà–¾‚µ‚Ü‚µ‚½Dxymtx405B.pdf‚ÍCchemist.sty‚̉ü—Ç‚ÉŠÖ‚·‚é‚à‚Ì
+‚Å‚·DŽÀ—á‚ðŽ¦‚µ‚ÄC”Ž®ƒo[ƒWƒ‡ƒ“chem‚âboldchem‚Å‚Ì•¶Žš‰»‚¯‚ɂ‚¢‚ÄÚׂÉà–¾‚µ‚Ü‚µ‚½D
+‚Ü‚½PostScript‘Ήž(chmst-ps.sty)‚Å‚Ì–îˆó—ނɂ‚¢‚Ä‚àà–¾‚µ‚Ü‚µ‚½D
+xymtx405C.pdf‚Å‚ÍCVÝ‚µ‚½chemtimes.sty‚ɂ‚¢‚Äà–¾‚µ‚Ä‚ ‚è‚Ü‚·D
+TimesŒn‚̃tƒHƒ“ƒg‚ðC’n‚Ì•¶‚Å‚àC”Ž®(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚à
+Žg‚¦‚邱‚Æ‚ðŽÀ—á‚ÅŽ¦‚µ‚Ü‚µ‚½D
+
+@Version 2.00—p‚É–ñ100ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx200.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 2.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@Version 3.00—p‚É–ñ10ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹ (xymtx300.pdf) ‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·B
+‚±‚Ì’†‚ÉAVersion 3.00‚ŒljÁ‚µ‚½‹@”\‚ƃRƒ}ƒ“ƒh‚Ì‘Ž® (Žd—l) ‚Æ•`‰æ—á‚ð
+‘½”‹LÚ‚µ‚Ü‚µ‚½‚Ì‚ÅA‰ð“€ŒãA‚Ü‚¸‚ǂ̂悤‚È‚±‚Æ‚ª‚Å‚«‚é‚Ì‚©‚ð‚²——‚­‚¾‚³‚¢B
+
+@chemist.sty‚âmathchem.sty (‰º‹LÙ’˜‚É•t˜^‚Æ‚µ‚Ä•t‚¢‚Ä‚¢‚é
+ƒtƒƒbƒs[ƒfƒBƒXƒN‚ÉŽû˜^)‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚𕹗p‚·‚ê‚ÎA‚³‚ç‚É
+‚¢‚ë‚¢‚ë‚È”½‰žƒXƒL[ƒ€‚È‚Ç‚ð•`‚­‚±‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+XyMTeX(version1.01)‚©‚çAchemist.sty‚à“¯«‚µ‚Ä‚ ‚è‚Ü‚·B
+
+@Version 4.00—p‚É24ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx400.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx400.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.01—p‚É33ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx401.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx401.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.02, 4.03—p‚É45ƒy[ƒW‚̃}ƒjƒ…ƒAƒ‹(xymtx402403.pdf)‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·D
+PDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð—p‚¢‚Ä‚­‚¾‚³‚¢D
+xymtx402403.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢dvi-ware‚Å‚Í
+“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 4.04—p‚̃}ƒjƒ…ƒAƒ‹(xymtx404.pdf)‚ÍC’ljÁ‚µ‚½ƒXƒeƒƒCƒh—Þ‚Ì–½—ß‚Æo—Í
+‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DPDFƒtƒ@ƒCƒ‹‚Å‚·‚©‚çC‰{——‚âƒvƒŠƒ“ƒgƒAƒEƒg‚ÍCAcrobat Reader‚È‚Ç‚ð
+—p‚¢‚Ä‚­‚¾‚³‚¢Dxymtx404.dvi‚ÍC\special‚̃R[ƒh‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·‚Ì‚ÅC‘Ήž‚µ‚Ä‚¢‚È‚¢
+dvi-ware‚Å‚Í“Ç‚ß‚Ü‚¹‚ñD
+
+@Version 5.00‚Å‚ÍC‚±‚ê‚Ü‚Å‚ÌPostScript‘Ήž‚ɉÁ‚¦‚ÄC
+PDF‘Ήžƒ‚[ƒh‚ð’ljÁ‚µ‚Ü‚µ‚½(xymtx500.pdf, xymtx500PS.pdf)D‚±‚ÌŒ‹‰ÊCdvipdfmx‚È‚Ç
+‚Ådviƒtƒ@ƒCƒ‹‚ð’¼Ú‚ÉPDF‚É•ÏŠ·‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚µ‚½D‚Ü‚½C“Á’è‚ÌŒ‹‡‚â’uŠ·Šî‚ð
+’…F‚·‚é‹@”\‚ð’ljÁ‚µ‚Ü‚µ‚½D
+
+======================================================================================
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 5.00a‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB
+Šî–{“I‚ÈŽg—p–@‚ÍCxymtex.pdf‚Æ‚¢‚¤ƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðƒz[ƒ€ƒy[ƒW
+http://xymtex.com/‚ɃAƒbƒvƒ[ƒh‚µ‚Ä‚ ‚è‚Ü‚·‚Ì‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢D‚Ü‚½C
+‚±‚̃z[ƒ€ƒy[ƒW‚É‚ÍC“ú–{Œêƒ}ƒjƒ…ƒAƒ‹‚à—pˆÓ‚µ‚Ä‚ ‚è‚Ü‚·D
+
+‚³‚ç‚ÉÚ‚µ‚­‚ÍCŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢D
+
+ u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+ “¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx500a.zip‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃pƒX‚Ì’Ê‚Á‚Ä‚¢‚éƒfƒBƒŒƒNƒgƒŠ[“à‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx500a.zip‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+ƒCƒ“ƒXƒg[ƒ‹‚ÌŠT—ª‚̎臂ÍAxymtx500a.jpn‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.doc
new file mode 100644
index 0000000000..cf306dd9b7
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.doc
@@ -0,0 +1,171 @@
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ This package has been frozen with LHA. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx402.lzh) be placed in the c:\temp directory, where the package
+ is melt with an appropriate software for melting. Thereby,
+ the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory; and the following hierarchy of
+ directories and files is generated.
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (on-line document)
+ | |--xymtx200.pdf (on-line document)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (on-line document)
+ | |--xymtx300.pdf (on-line document)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (on-line document)
+ |
+ |--\doc402----\jobdoc --- xymtx402.tex, xymtx402.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402.pdf (on-line)
+ |
+ |
+ |---xymtx402.doc (this document)
+ |
+ |---xymtx402.jpn (on-line document in Japanese)
+ |
+ |---readm402.doc (notes in English)
+ |
+ |---readm402.jpn (notes in Japanese)
+
+
+
+ The package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands and
+ examples of using these commands are included in the xymtex.dvi file of
+ the \doc... directory.
+
+ The xymtx200.dvi file is a dvi file that is a manual for utilizing
+ XyMTeX (about 100 pages). The processed dvi file can be obtained in the same
+ directory of this distribution. It can be printed with an appropriate
+ printer driver (dviout, or others) and can be displayed with an
+ appropriate previewer (dviout, etc.). The corresponding PDF file (xymtx200.pdf)
+ is also available.
+
+ The xymtx300.tex is the main file of the manuscript for creating the
+ xymtx300.dvi. The other tex files in the \doc300 directory are input files
+ which are read by the main file. The corresponding PDF file (xymtx300.pdf)
+ is also available.
+
+ The xymtx401.tex in the \doc401\jobdoc401 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx401.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx401.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx401.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc401\jobdoc401 directory are input files
+ which are read by the main file.
+
+ The xymtx402.tex in the \doc402\jobdoc402 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx402.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx402.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx402.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc402\jobdoc402 directory are input files
+ which are read by the main file.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx402.lzh in such an appropriate directory named
+ ``tex'' or others.
+
+(3) Writing your manuscript
+
+ Each command of XyMTeX can be used if you add the name of the
+ corresponding style file to the option list at the top of your
+ manuscript file, e.g.
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh,xymtx-ps}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ where the underlined names are XyMTeX package files containing your
+ requisite commands. If all of the XyMTeX commands are required,
+ the short-cut declaration:
+
+ for using the LaTeX picture environment and epic:
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ for using under Postscript mode due to PSTricks techiques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ can be used for simplicity.
+
+(4) Running LaTeX2e or pLaTeX2e
+
+ You should use XyMTeX commands within LaTeX.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.jpn
new file mode 100644
index 0000000000..e933de63cb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.jpn
@@ -0,0 +1,141 @@
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+
+
+ ‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍALHA‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·B
+
+ @ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@@‚Ü‚¸Aˆ³k‚³‚ꂽxymtx402.lzh‚ðAƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·B
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍAŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎAc:\temp\xymtex‚Æ‚È‚è‚Ü‚·B
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉAXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·B\xymtexƒfƒBƒŒƒNƒgƒŠ[‚ðƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚É
+@ˆÚ‚µ‚Ü‚·D
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc402----\jobdoc --- xymtx402.tex, xymtx402.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |---xymtx402.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---xymtx402.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ |
+ |---readm402.doc (Šo‚¦‘‚«)
+ |
+ |---readm402.jpn (Šo‚¦‘‚«)
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.02‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+ 39ƒy[ƒW‚Å‚·B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc402‚ÉŠÜ‚Ü‚ê‚éxymtx402.tex‚ÍAxymtx402.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx402.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍAxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍAxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍAƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B–ñ100ƒy[ƒW‚Å‚·B‚Ü‚½Cxymtx200.tex‚ÍA
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤B
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èB
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ɉ𓀂µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@@XyMTeX‚Ì–½—ß‚ðŽg‚¤‚É‚ÍA‚»‚Ì–½—ß‚ÌŠÜ‚Ü‚ê‚Ä‚¢‚éƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚ð
+@ƒIƒvƒVƒ‡ƒ“Žw’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚½‚Æ‚¦‚ÎAhetarom.sty‚Æhetaromh.sty‚ð
+@Žg‚¤‚Æ‚«‚É‚ÍA
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@‚ÆAŒ´e‚Ì擪‚É‹L“ü‚µ‚Ü‚·B‚¢‚¿‚¢‚¿Žw’è‚·‚é‚Ì‚ª–Ê“|‚È‚ç‚ÎC
+@
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ ‚Ü‚½‚ÍC(PostScript‘Ήžƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ ‚ÆŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+
+(4) LaTeXe‚Ü‚½‚ÍpLaTeX2e‚Ì‹N“®
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.doc
new file mode 100644
index 0000000000..835ee56b87
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.doc
@@ -0,0 +1,176 @@
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ This package has been frozen with LHA. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx403.lzh) be placed in the c:\temp directory, where the package
+ is melt with an appropriate software for melting. Thereby,
+ the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory; and the following hierarchy of
+ directories and files is generated.
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (on-line document)
+ | |--xymtx200.pdf (on-line document)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (on-line document)
+ | |--xymtx300.pdf (on-line document)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (on-line document)
+ |
+ |--\doc402403----\jobdoc --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (on-line)
+ |
+ |
+ |---xymtx403.doc (this document)
+ |
+ |---xymtx403.jpn (on-line document in Japanese)
+ |
+ |---readm403.doc (notes in English)
+ |
+ |---readm403.jpn (notes in Japanese)
+
+
+
+ The package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands and
+ examples of using these commands are included in the xymtex.dvi file of
+ the \doc... directory.
+
+ The xymtx200.dvi file is a dvi file that is a manual for utilizing
+ XyMTeX (about 100 pages). The processed dvi file can be obtained in the same
+ directory of this distribution. It can be printed with an appropriate
+ printer driver (dviout, or others) and can be displayed with an
+ appropriate previewer (dviout, etc.). The corresponding PDF file (xymtx200.pdf)
+ is also available.
+
+ The xymtx300.tex is the main file of the manuscript for creating the
+ xymtx300.dvi. The other tex files in the \doc300 directory are input files
+ which are read by the main file. The corresponding PDF file (xymtx300.pdf)
+ is also available.
+
+ The xymtx401.tex in the \doc401\jobdoc401 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx401.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx401.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx401.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc401\jobdoc401 directory are input files
+ which are read by the main file.
+
+ The xymtx402403.tex in the \doc402403\jobdoc402 directory is the main file of the manuscript
+ for creating the xymtx402403.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx402403.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx402403.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx402403.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc402403\jobdoc402 directory are input files
+ which are read by the main file.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx402.lzh in such an appropriate directory named
+ ``tex'' or others.
+
+(3) Writing your manuscript
+
+ Each command of XyMTeX can be used if you add the name of the
+ corresponding style file to the option list at the top of your
+ manuscript file, e.g.
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh,xymtx-ps}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ where the underlined names are XyMTeX package files containing your
+ requisite commands. If all of the XyMTeX commands are required,
+ the short-cut declaration:
+
+ for using the LaTeX picture environment and epic:
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ for using under Postscript mode due to PSTricks techiques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ can be used for simplicity.
+
+(4) Running LaTeX2e or pLaTeX2e
+
+ You should use XyMTeX commands within LaTeX.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.jpn
new file mode 100644
index 0000000000..50f177d4f0
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.jpn
@@ -0,0 +1,146 @@
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+
+
+ ‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍALHA‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·B
+
+ @ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@@‚Ü‚¸Aˆ³k‚³‚ꂽxymtx402.lzh‚ðAƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·B
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍAŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎAc:\temp\xymtex‚Æ‚È‚è‚Ü‚·B
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉAXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·B\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·D
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc402403----\jobdoc --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |---xymtx403.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---xymtx403.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ |
+ |---readm403.doc (Šo‚¦‘‚«)
+ |
+ |---readm403.jpn (Šo‚¦‘‚«)
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+ 45ƒy[ƒW‚Å‚·B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍAxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍAxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍAxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍAƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B–ñ100ƒy[ƒW‚Å‚·B‚Ü‚½Cxymtx200.tex‚ÍA
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤B
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èB
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ɉ𓀂µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@@XyMTeX‚Ì–½—ß‚ðŽg‚¤‚É‚ÍA‚»‚Ì–½—ß‚ÌŠÜ‚Ü‚ê‚Ä‚¢‚éƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚ð
+@ƒIƒvƒVƒ‡ƒ“Žw’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚½‚Æ‚¦‚ÎAhetarom.sty‚Æhetaromh.sty‚ð
+@Žg‚¤‚Æ‚«‚É‚ÍA
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@‚ÆAŒ´e‚Ì擪‚É‹L“ü‚µ‚Ü‚·B‚¢‚¿‚¢‚¿Žw’è‚·‚é‚Ì‚ª–Ê“|‚È‚ç‚ÎC
+@
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ ‚Ü‚½‚ÍC(PostScript‘Ήžƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ ‚ÆŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+
+(4) LaTeXe‚Ü‚½‚ÍpLaTeX2e‚Ì‹N“®
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.doc
new file mode 100644
index 0000000000..8f3129711c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.doc
@@ -0,0 +1,199 @@
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ This package has been frozen with LHA. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx404.lzh) be placed in the c:\temp directory, where the package
+ is melt with an appropriate software for melting. Thereby,
+ the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory; and the following hierarchy of
+ directories and files is generated.
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (on-line document)
+ | |--xymtx200.pdf (on-line document)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (on-line document)
+ | |--xymtx300.pdf (on-line document)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (on-line document)
+ |
+ |--\doc402403----\jobdoc --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (on-line)
+ |
+ |--\doc404-------\jobdoc --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (on-line)
+ |
+ |
+ |---xymtx404.doc (this document)
+ |
+ |---xymtx404.jpn (on-line document in Japanese)
+ |
+ |---readm404.doc (notes in English)
+ |
+ |---readm404.jpn (notes in Japanese)
+ |
+
+
+
+ The package (sty) files in the \xymtex directory contain the macro
+ codes of XymTeX commands. The specification of XyMTeX commands and
+ examples of using these commands are included in the xymtex.dvi file of
+ the \doc... directory.
+
+ The xymtx200.dvi file is a dvi file that is a manual for utilizing
+ XyMTeX (about 100 pages). The processed dvi file can be obtained in the same
+ directory of this distribution. It can be printed with an appropriate
+ printer driver (dviout, or others) and can be displayed with an
+ appropriate previewer (dviout, etc.). The corresponding PDF file (xymtx200.pdf)
+ is also available.
+
+ The xymtx300.tex is the main file of the manuscript for creating the
+ xymtx300.dvi. The other tex files in the \doc300 directory are input files
+ which are read by the main file. The corresponding PDF file (xymtx300.pdf)
+ is also available.
+
+ The xymtx401.tex in the \doc401\jobdoc401 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx401.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx401.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx401.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc401\jobdoc401 directory are input files
+ which are read by the main file.
+
+ The xymtx402403.tex in the \doc402403\jobdoc402 directory is the main file of the manuscript
+ for creating the xymtx402403.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx402403.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx402403.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx402403.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc402403\jobdoc402 directory are input files
+ which are read by the main file.
+
+ The xymtx404.tex in the \doc404\jobdoc directory is the main file of the manuscript
+ for creating the xymtx404.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx404.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx404.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx404.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc404\jobdoc directory are input files
+ which are read by the main file.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx404.lzh in such an appropriate directory named
+ ``tex'' or others.
+
+(3) Writing your manuscript
+
+ Each command of XyMTeX can be used if you add the name of the
+ corresponding style file to the option list at the top of your
+ manuscript file, e.g.
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh,xymtx-ps}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ where the underlined names are XyMTeX package files containing your
+ requisite commands. If all of the XyMTeX commands are required,
+ the short-cut declaration:
+
+ for using the LaTeX picture environment and epic:
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ for using under Postscript mode due to PSTricks techiques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ can be used for simplicity.
+
+(4) Running LaTeX2e or pLaTeX2e
+
+ You should use XyMTeX commands within LaTeX.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.jpn
new file mode 100644
index 0000000000..767d57461a
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.jpn
@@ -0,0 +1,166 @@
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+
+
+ ‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍALHA‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·B
+
+ @ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@@‚Ü‚¸Aˆ³k‚³‚ꂽxymtx402.lzh‚ðAƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·B
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍAŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎAc:\temp\xymtex‚Æ‚È‚è‚Ü‚·B
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉAXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·B\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·D
+
+ c---\temp---\xymtex --- hetaromh.sty, hetarom.sty, ccycle.sty,
+ | | | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc402403----\jobdoc402 --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc404----\jobdoc404 --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |---xymtx404.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---xymtx404.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ |
+ |---readm404.doc (Šo‚¦‘‚«)
+ |
+ |---readm404.jpn (Šo‚¦‘‚«)
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx404.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.04‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc404‚ÉŠÜ‚Ü‚ê‚éxymtx404.tex‚ÍAxymtx404.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx404.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx404.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx404.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+iˆÈ‰º‚͌¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚ß‚Ìà–¾‚Å‚·Dƒ}ƒjƒ…ƒAƒ‹‚ÍÅV”Å‚Å‚à—LŒø‚Å‚·Dj
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+ 45ƒy[ƒW‚Å‚·B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍAxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍAxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍAxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍAƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B–ñ100ƒy[ƒW‚Å‚·B‚Ü‚½Cxymtx200.tex‚ÍA
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·B—¼ŽÒ‚ð”äŠr‚·‚é‚ÆA\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤B
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èB
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ɉ𓀂µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@@XyMTeX‚Ì–½—ß‚ðŽg‚¤‚É‚ÍA‚»‚Ì–½—ß‚ÌŠÜ‚Ü‚ê‚Ä‚¢‚éƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚ð
+@ƒIƒvƒVƒ‡ƒ“Žw’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚½‚Æ‚¦‚ÎAhetarom.sty‚Æhetaromh.sty‚ð
+@Žg‚¤‚Æ‚«‚É‚ÍA
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@‚ÆAŒ´e‚Ì擪‚É‹L“ü‚µ‚Ü‚·B‚¢‚¿‚¢‚¿Žw’è‚·‚é‚Ì‚ª–Ê“|‚È‚ç‚ÎC
+@
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ ‚Ü‚½‚ÍC(PostScript‘Ήžƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ ‚ÆŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+
+(4) LaTeXe‚Ü‚½‚ÍpLaTeX2e‚Ì‹N“®
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.doc
new file mode 100644
index 0000000000..75175ac3ed
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.doc
@@ -0,0 +1,229 @@
+xymtx405.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ This package has been frozen with ZIP. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx405.zip) be placed in the c:\temp directory, where the package
+ is melt with an appropriate software for melting. Thereby,
+ the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory; and the following hierarchy of
+ directories and files is generated.
+
+ c---\temp---\xymtex --- xymtex.sty, xymtexps.sty
+ | | | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty,
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (on-line document)
+ | |--xymtx200.pdf (on-line document)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (on-line document)
+ | |--xymtx300.pdf (on-line document)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (on-line document)
+ |
+ |--\doc402403----\jobdoc --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (on-line)
+ |
+ |--\doc404-------\jobdoc --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (on-line)
+ |
+ |--\doc405----\jobdoc405 --- xymtx405A.tex, xymtx405A.dvi, xymtx405A.ps,
+ | | xymtx405B.tex, xymtx405B.dvi, xymtx405B.ps,
+ | | xymtx405C.tex, xymtx405C.dvi, xymtx405C.ps
+ | |
+ | |--xymtx405A.pdf (on-line document)
+ | |--xymtx405B.pdf (on-line document)
+ | |--xymtx405C.pdf (on-line document)
+ |
+ |---xymtx405.doc (this document)
+ |
+ |---xymtx405.jpn (on-line document in Japanese)
+ |
+ |---readm405.doc (notes in English)
+ |
+ |---readm405.jpn (notes in Japanese)
+ |
+
+
+ Each of the package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands and
+ examples of using these commands are included in the xymtex.dvi file of
+ the \doc... directory.
+
+ The three tex files, xymtx405A.tex, xymtx405A.tex, and xymtx405A.tex
+ in the \doc405\jobdoc405 directory is the main files of the manuscript
+ for creating the corresponding xymtx405A.dvi, xymtx405B.dvi, and xymtx405C.dvi.
+ Thise dvi files (not included) have been further converted into
+ the corresponding PostScript files (xymtx405A.ps etc.), which should be browsed by
+ using an appropriate PostScript view. This Postscript files have been further
+ converted into PDF files (named xymtx405A.pdf etc.), which can be browsed
+ with Adobe Acrobat.
+
+========================for old documentations==================================
+ The xymtx200.dvi file is a dvi file that is a manual for utilizing
+ XyMTeX (about 100 pages). The processed dvi file can be obtained in the same
+ directory of this distribution. It can be printed with an appropriate
+ printer driver (dviout, or others) and can be displayed with an
+ appropriate previewer (dviout, etc.). The corresponding PDF file (xymtx200.pdf)
+ is also available.
+
+ The xymtx300.tex is the main file of the manuscript for creating the
+ xymtx300.dvi. The other tex files in the \doc300 directory are input files
+ which are read by the main file. The corresponding PDF file (xymtx300.pdf)
+ is also available.
+
+ The xymtx401.tex in the \doc401\jobdoc401 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx401.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx401.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx401.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc401\jobdoc401 directory are input files
+ which are read by the main file.
+
+ The xymtx402403.tex in the \doc402403\jobdoc402 directory is the main file of the manuscript
+ for creating the xymtx402403.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx402403.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx402403.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx402403.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc402403\jobdoc402 directory are input files
+ which are read by the main file.
+
+ The xymtx404.tex in the \doc404\jobdoc directory is the main file of the manuscript
+ for creating the xymtx404.dvi. This dvi file has been further converted into
+ the corresponding PostScript file (xymtx404.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx404.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx404.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc404\jobdoc directory are input files
+ which are read by the main file.
+====================================================================
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx405.zip in such an appropriate directory named
+ ``tex'' or others (e.g., c:\usr\local\share\texmf\tex\latex).
+
+(3) Writing your manuscript
+
+ Each command of XyMTeX can be used if you add the name of the
+ corresponding style file to the option list at the top of your
+ manuscript file, e.g.
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh,xymtx-ps}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ where the underlined names are XyMTeX package files containing your
+ requisite commands. If all of the XyMTeX commands are required,
+ the short-cut declaration (recommended because of advanced capacities of
+ personal computers):
+
+ For using the LaTeX picture environment and epic:
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ For using under Postscript mode due to PSTricks techiques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ can be used for simplicity. The include packages (chemist.sty, chmst-ps.sty,
+ chemtimes.sty) should be loaded separately after xymtex.sty or xymtexps.sty
+ is loaded.
+
+(4) Running LaTeX2e or pLaTeX2e
+
+ You should use XyMTeX commands within LaTeX to creat a dvi file.
+
+(5) Conversion of the dvi file into a PostScript file (by e.g., dvipsk)
+(6) Conversion of the PostScript file into a PDF file (by e.g., Adobe Distiller)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.jpn
new file mode 100644
index 0000000000..9fb80deceb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.jpn
@@ -0,0 +1,196 @@
+xymtx405.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+@@‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍCZIP‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·D
+
+@@ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@‚Ü‚¸Cˆ³k‚³‚ꂽxymtx405.zip‚ðCƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·(Windows XP‚È‚Ç‚ÌOS‚ÌꇂÍCƒVƒXƒeƒ€
+@‚ɉ𓀋@”\‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅC‚»‚ê‚É]‚Á‚ĉ𓀂µ‚Ä‚­‚¾‚³‚¢)D
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍCŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎCc:\temp\xymtex‚Æ‚È‚è‚Ü‚·D
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉCXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·D\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·(‚½‚Æ‚¦‚ÎCW32TEX‚Ì”z•z•¨‚Å‚ÍC
+@c:\usr\local\share\texmf-local\tex\latex‚Ì”z‰º)D
+
+ c---\temp---\xymtex --- xymtex.sty, xymtexps.sty
+ | | | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty,
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files, dvi files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc402403----\jobdoc402 --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc404----\jobdoc404 --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc405----\jobdoc405 --- xymtx405A.tex, xymtx405A.dvi, xymtx405A.ps,
+ | | xymtx405B.tex, xymtx405B.dvi, xymtx405B.ps,
+ | | xymtx405C.tex, xymtx405C.dvi, xymtx405C.ps
+ | |
+ | |--xymtx405A.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx405B.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx405C.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |---xymtx405.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---xymtx405.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ |
+ |---readm405.doc (Šo‚¦‘‚«)
+ |
+ |---readm405.jpn (Šo‚¦‘‚«)
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx405A.pdf, xymtx405B.pdf, xymtx405C.pdf‚ÍC
+@–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.05‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·D
+@Acrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405‚ÉŠÜ‚Ü‚ê‚éxymtx405A.tex‚È‚Ç‚ÍCxymtx405A.dvi1‚È‚Ç
+@‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405A.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405A.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405A.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+iˆÈ‰º‚͌¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚ß‚Ìà–¾‚Å‚·Dƒ}ƒjƒ…ƒAƒ‹‚ÍÅV”Å‚Å‚à—LŒø‚Å‚·Dj
+
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx404.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.04‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc404‚ÉŠÜ‚Ü‚ê‚éxymtx404.tex‚ÍAxymtx404.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx404.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx404.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx404.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+ 45ƒy[ƒW‚Å‚·D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍCxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍCxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍCxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍCƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D–ñ100ƒy[ƒW‚Å‚·D‚Ü‚½Cxymtx200.tex‚ÍC
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤D
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èD
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ɉ𓀂µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@@XyMTeX‚Ì–½—ß‚ðŽg‚¤‚É‚ÍC‚»‚Ì–½—ß‚ÌŠÜ‚Ü‚ê‚Ä‚¢‚éƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚ð
+@ƒIƒvƒVƒ‡ƒ“Žw’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·D‚½‚Æ‚¦‚ÎChetarom.sty‚Æhetaromh.sty‚ð
+@Žg‚¤‚Æ‚«‚É‚ÍC
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@‚ÆCŒ´e‚Ì擪‚É‹L“ü‚µ‚Ü‚·D‚¢‚¿‚¢‚¿Žw’è‚·‚é‚Ì‚ª–Ê“|‚È‚ç‚Î(ð¡‚Å‚ÍCƒpƒ\ƒRƒ“‚Ì
+@”\—Í‚ªã‚ª‚Á‚½‚Ì‚ÅC‚±‚¿‚ç‚ð„§‚µ‚Ü‚·)C
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ ‚Ü‚½‚ÍC(PostScript‘Ήžƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ ‚ÆŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+ ‚½‚¾‚µCchemist.styCchmst-ps.styCchemtimes.sty‚Í•Ê‚É“Ç‚Ýž‚Þ
+ •K—v‚ª‚ ‚è‚Ü‚·D
+
+(4) LaTeX2e‚Ü‚½‚ÍpLaTeX2eˆ—
+(5) dvips(k)‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·(PostScript‘Ήžƒ‚[ƒh‚Ì‚Æ‚«)
+(6) Adobe Distiller‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚ÌPDFƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.doc
new file mode 100644
index 0000000000..827a9ad1e2
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.doc
@@ -0,0 +1,255 @@
+xymtx406.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ The XyMTeX system has been frozen with ZIP. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx406.zip or xymtx406-CTAN.zip) be placed in the c:\temp directory,
+ where the package is melt with an appropriate software for melting.
+ Thereby, the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory; and the following hierarchy of
+ directories and files is generated.
+
+ (The xymtex directory in the deposit uploaded to CTAN does not contain \jobdoc
+ subdirectories for the sake of lighter load.
+ For full document directories, visit the original deposit of the latest version at
+ http://xymtex.com/ (Shonan Institute of Chemoinformatics and Mathematical
+ Chemistry)).
+
+ c---\temp---\xymtex --- xymtex.sty, xymtexps.sty
+ | | | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty,
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files
+ |
+ |--\doc101--- xymtex.pdf
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (on-line document)
+ | |--xymtx200.pdf (on-line document)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (on-line document)
+ | |--xymtx300.pdf (on-line document)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (on-line document)
+ |
+ |--\doc402403----\jobdoc --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (on-line)
+ |
+ |--\doc404-------\jobdoc --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (on-line)
+ |
+ |--\doc405406----\jobdoc405406 --- xymtx405A.tex, xymtx405A.dvi,
+ | | xymtx405A.ps,
+ | | xymtx405406B.tex, xymtx405406B.dvi, xymtx405406B.ps,
+ | | xymtx405406C.tex, xymtx405406C.dvi, xymtx405406C.ps
+ | |
+ | |--xymtx405A.pdf (on-line document)
+ | |--xymtx405406B.pdf (on-line document)
+ | |--xymtx405406C.pdf (on-line document)
+ |
+ |---xymtx406.doc (this document)
+ |
+ |---xymtx406.jpn (on-line document in Japanese)
+ |
+ |---readm406.doc (notes in English)
+ |
+ |---readm406.jpn (notes in Japanese)
+ |
+
+
+ Each of the package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands and
+ examples of using these commands are included in the xymtex.dvi file of
+ the \doc... directory.
+
+ Among the three tex files for Version 4.05 (xymtx405A.tex, xymtx405B.tex,
+ and xymtx405C.tex), the latter two have been rewritten to explain the
+ items added by XyMTeX Version 4.06 (harpoons etc.), so as to be renamed into
+ xymtx405406B.tex, and xymtx405406B.tex. They have sotored in the
+ \doc405406\jobdoc405406 directory and have used to generate
+ xymtx405406B.dvi and xymtx405406C.dvi, which have been converted into
+ the corresponding PostScript files (xymtx405406B.ps and xymtx405406C.ps).
+ These PostScript files have been further converted into PDF files
+ (xymtx405406B.pdf and xymtx405406C.pd ), which can be browsed
+ with Adobe Acrobat.
+
+========================for old documentations==================================
+ The xymtx200.dvi file is a dvi file that is a manual for utilizing
+ XyMTeX (about 100 pages). The processed dvi file can be obtained in the same
+ directory of this distribution. It can be printed with an appropriate
+ printer driver (dviout, or others) and can be displayed with an
+ appropriate previewer (dviout, etc.). The corresponding PDF file (xymtx200.pdf)
+ is also available.
+--
+ The xymtx300.tex is the main file of the manuscript for creating the
+ xymtx300.dvi. The other tex files in the \doc300 directory are input files
+ which are read by the main file. The corresponding PDF file (xymtx300.pdf)
+ is also available.
+--
+ The xymtx401.tex in the \doc401\jobdoc401 directory is the main file of the manuscript
+ for creating the xymtx401.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx401.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx401.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx401.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc401\jobdoc401 directory are input files
+ which are read by the main file.
+--
+ The xymtx402403.tex in the \doc402403\jobdoc402 directory is the main file of the manuscript
+ for creating the xymtx402403.dvi. This dvi file has bee furthern converted into
+ the corresponding PostScript file (xymtx402403.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx402403.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx402403.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc402403\jobdoc402 directory are input files
+ which are read by the main file.
+--
+ The xymtx404.tex in the \doc404\jobdoc directory is the main file of the manuscript
+ for creating the xymtx404.dvi. This dvi file has been further converted into
+ the corresponding PostScript file (xymtx404.ps), which should be browsed by
+ using an appropriate PostScript view. This Postscript file has been further
+ converted into a PDF file (named xymtx404.pdf), which can be browsed
+ with Adobe Acrobat.
+
+ Caution: Don't browse xymtx404.dvi by a dvi-ware such as dviout!
+
+ The other tex files in the \doc404\jobdoc directory are input files
+ which are read by the main file.
+--
+ The three tex files, xymtx405A.tex, xymtx405B.tex, and xymtx405C.tex
+ in the \doc405\jobdoc405 directory is the main files of the manuscript
+ for creating the corresponding xymtx405A.dvi, xymtx405B.dvi, and xymtx405C.dvi.
+ Thise dvi files (not included) have been further converted into
+ the corresponding PostScript files (xymtx405A.ps etc.), which should be browsed by
+ using an appropriate PostScript view. This Postscript files have been further
+ converted into PDF files (named xymtx405A.pdf etc.), which can be browsed
+ with Adobe Acrobat.
+
+====================================================================
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx406.zip in such an appropriate directory named
+ ``tex'' or others (e.g., c:\usr\local\share\texmf\tex\latex).
+
+(3) Writing your manuscript
+
+ Each command of XyMTeX can be used if you add the name of the
+ corresponding style file to the option list at the top of your
+ manuscript file, e.g.
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh,xymtx-ps}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ where the underlined names are XyMTeX package files containing your
+ requisite commands. If all of the XyMTeX commands are required,
+ the short-cut declaration (recommended because of advanced capacities of
+ personal computers):
+
+ For using the LaTeX picture environment and epic:
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ For using under Postscript mode due to PSTricks techiques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ can be used for simplicity. The include packages (chemist.sty, chmst-ps.sty,
+ chemtimes.sty) should be loaded separately after xymtex.sty or xymtexps.sty
+ is loaded.
+
+(4) Running LaTeX2e or pLaTeX2e
+
+ You should use XyMTeX commands within LaTeX to creat a dvi file.
+
+(5) Conversion of the dvi file into a PostScript file (by e.g., dvipsk)
+(6) Conversion of the PostScript file into a PDF file (by e.g., Adobe Distiller)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.jpn
new file mode 100644
index 0000000000..0df2fd834f
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.jpn
@@ -0,0 +1,207 @@
+xymtx406.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+@@‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍCZIP‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·D
+
+@@ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@‚Ü‚¸Cˆ³k‚³‚ꂽxymtx406.zip‚ðCƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·(Windows XP‚È‚Ç‚ÌOS‚ÌꇂÍCƒVƒXƒeƒ€
+@‚ɉ𓀋@”\‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅC‚»‚ê‚É]‚Á‚ĉ𓀂µ‚Ä‚­‚¾‚³‚¢)D
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍCŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎCc:\temp\xymtex‚Æ‚È‚è‚Ü‚·D
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉCXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·D\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·(‚½‚Æ‚¦‚ÎCW32TEX‚Ì”z•z•¨‚Å‚ÍC
+@c:\usr\local\share\texmf-local\tex\latex‚Ì”z‰º)D
+
+ c---\temp---\xymtex --- xymtex.sty, xymtexps.sty
+ | | | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty,
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files)
+ |
+ |--\drvdvi---drv files, dvi files
+ |
+ |--\doc200----\jobdoc --- xymtx200.tex, xymtx200.dvi,
+ | | xymyl.tex, xymadd.tex
+ | | (other files for the document preparation)
+ | |--xymtx200.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |--\doc300----\jobdoc --- xymtx300.tex, xymtx300.dvi,
+ | | (other files for the document preparation)
+ | |--xymtx300.dvi (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc401----\olddoc400 xymtx400.tex, xymtx400.ps, etc.
+ | |
+ | |--\jobdoc401 xymtx401.tex, xymtx401.ps, etc.
+ | |
+ | |--xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc402403----\jobdoc402 --- xymtx402403.tex, xymtx402403.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc404----\jobdoc404 --- xymtx404.tex, xymtx404.dvi,
+ | | (other files for the document preparation)
+ | |
+ | |--xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |--\doc405406----\jobdoc405406 ---xymtx405A.tex, xymtx405A.dvi,
+ | | xymtx405A.ps,
+ | | xymtx405406B.tex, xymtx405406B.dvi, xymtx405406B.ps,
+ | | xymtx405406C.tex, xymtx405406C.dvi, xymtx405406C.ps
+ | |
+ | |--xymtx405A.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx405406B.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx405406C.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |
+ |---xymtx406.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---xymtx406.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ |
+ |---readm406.doc (Šo‚¦‘‚«)
+ |
+ |---readm406.jpn (Šo‚¦‘‚«)
+
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx405A.pdf, xymtx405406B.pdf, xymtx405406C.pdf‚ÍC
+@–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.06‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·D
+@Acrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405406‚ÉŠÜ‚Ü‚ê‚éxymtx405406B.tex‚È‚Ç‚ÍCxymtx405406B.dvi
+@‚È‚Ç‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405406B.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405406B.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405406B.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+iˆÈ‰º‚͌¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚ß‚Ìà–¾‚Å‚·Dƒ}ƒjƒ…ƒAƒ‹‚ÍÅV”Å‚Å‚à—LŒø‚Å‚·Dj
+
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405‚ÉŠÜ‚Ü‚ê‚éxymtx405A.tex‚È‚Ç‚ÍCxymtx405A.dvi1‚È‚Ç
+@‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405A.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405A.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405A.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx404.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.04‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc404‚ÉŠÜ‚Ü‚ê‚éxymtx404.tex‚ÍAxymtx404.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx404.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx404.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx404.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+ 45ƒy[ƒW‚Å‚·D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍCxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍCxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍCxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍCƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D–ñ100ƒy[ƒW‚Å‚·D‚Ü‚½Cxymtx200.tex‚ÍC
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤D
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èD
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ɉ𓀂µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@@XyMTeX‚Ì–½—ß‚ðŽg‚¤‚É‚ÍC‚»‚Ì–½—ß‚ÌŠÜ‚Ü‚ê‚Ä‚¢‚éƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚ð
+@ƒIƒvƒVƒ‡ƒ“Žw’è‚·‚é•K—v‚ª‚ ‚è‚Ü‚·D‚½‚Æ‚¦‚ÎChetarom.sty‚Æhetaromh.sty‚ð
+@Žg‚¤‚Æ‚«‚É‚ÍC
+
+ \documentclass{article}
+ \usepackage{epic,hetarom,hetaromh}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@‚ÆCŒ´e‚Ì擪‚É‹L“ü‚µ‚Ü‚·D‚¢‚¿‚¢‚¿Žw’è‚·‚é‚Ì‚ª–Ê“|‚È‚ç‚Î(ð¡‚Å‚ÍCƒpƒ\ƒRƒ“‚Ì
+@”\—Í‚ªã‚ª‚Á‚½‚Ì‚ÅC‚±‚¿‚ç‚ð„§‚µ‚Ü‚·)C
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ ‚Ü‚½‚ÍC(PostScript‘Ήžƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ ‚ÆŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+ ‚½‚¾‚µCchemist.styCchmst-ps.styCchemtimes.sty‚Í•Ê‚É“Ç‚Ýž‚Þ
+ •K—v‚ª‚ ‚è‚Ü‚·D
+
+(4) LaTeX2e‚Ü‚½‚ÍpLaTeX2eˆ—
+(5) dvips(k)‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·(PostScript‘Ήžƒ‚[ƒh‚Ì‚Æ‚«)
+(6) Adobe Distiller‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚ÌPDFƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.doc
new file mode 100644
index 0000000000..1f2cc680bb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.doc
@@ -0,0 +1,196 @@
+xymtx500.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ The XyMTeX system has been frozen with ZIP. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx500.zip) be placed in the c:\temp directory,
+ where the package is melt with an appropriate software for melting.
+ Thereby, the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory. And the following hierarchy of
+ directories and files is generated.
+
+ (For full document directories, visit the original deposit of the latest version at
+ http://xymtex.com/ (Shonan Institute of Chemoinformatics and Mathematical
+ Chemistry)).
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (dtx files and ins files)
+ |
+ |---\doc---
+ | |--\doc101--- xymtex.pdf (on-line document)
+ | |
+ | |--\doc200---xymtx200.pdf (on-line document)
+ | |
+ | |--\doc300---xymtx300.pdf (on-line document)
+ | |
+ | |--\doc401---xymtx401.pdf (on-line document)
+ | |
+ | |--\doc402403---xymtx402403.pdf (on-line document)
+ | |
+ | |--\doc404---xymtx404.pdf (on-line document)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (on-line document)
+ | | |--xymtx405406B.pdf (on-line document)
+ | | |--xymtx405406C.pdf (on-line document)
+ | |
+ | |--\doc500
+ | | |--xymtx500.pdf (on-line document)
+ | | |--xymtx500PS.pdf (on-line document)
+ |
+ |---\readme---
+ | |---xymtx500.doc (this document)
+ | |
+ | |---xymtx500.jpn (on-line document in Japanese)
+ | |
+ | |---readm500.doc (notes in English)
+ | |
+ | |---readm500b.jpn (notes in Japanese)
+ |
+
+
+ Each of the package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands can be printed out
+ after making a driving file. For the chemstr package as an example, commands
+ to be typed in a prompt line are as follows:
+
+ c:\temp> latex chemstr.ins
+ c:\temp> latex chemstr.drv
+
+ Thereby, you will obtain chemstr.dvi, which is a document of the chemstr package.
+
+ The on-line manuals of the old versions (pdf files) stored in respective directories
+ are effective even to the present version 5.00. The directory \doc500 contains
+ two on-line documents, xymtx500.pdf and xymtx500PS.pdf, which have the same contents
+ but are differently processed:
+
+ xymtx500.pdf ---- processed by elatex and converted into PDF by dvipdfmx
+ xymtx500PS.pdf ---- processed by elatex and converted into PS by dvips, then
+ further converted into PDF by Adobe Distiller.
+
+ They can be browsed with Adobe Reader.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx500.zip in such an appropriate directory named
+ ``tex'' or others (e.g., c:\usr\local\share\texmf\tex\latex).
+
+(3) Writing your manuscript
+
+ According to remarkable expansion of computer capacities, all of the package files of
+ the XyMTeX system can be loaded simultaneously in a tex file. You can adopt one of
+ the three modes of the XyMTeX system.
+
+ -1) For using the LaTeX picture environment and epic (TeX/LaTeX mode):
+
+ \documentclass{article}
+ \usepackage{xymtex}
+ \usepackage{chemist}
+
+ -2) For using under PostScript-compatible mode due to PSTricks techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+ \usepackage{chmst-ps}
+
+ -3) For using under PDF-compatible mode due to pgf techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxpdf}
+ \usepackage{chmst-pdf}
+
+
+ The include packages (chemist.sty, chmst-ps.sty, chemtimes.sty, chmst-pdf) should be
+ loaded separately after xymtex.sty, xymtexps.sty, or xymtexpdf.sty is loaded.
+
+(4) Running LaTeX2e (or pLaTeX2e in Japanese)
+
+ You should use XyMTeX commands within LaTeX to creat a dvi file. Note that,
+ as for the PDF-compatible mode, you should use elatex (or eplatex in Japanese)
+ during LaTeX processing.
+
+(5) PDF-compatible mode: Conversion of the dvi file into a PDF file (by e.g., dvipdfmx)
+
+(5') PostScript-compatible mode:
+ --a) Conversion of the dvi file into a PostScript file (by e.g., dvips)
+ --b) Conversion of the PostScript file into a PDF file (by e.g., Adobe Distiller)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.jpn
new file mode 100644
index 0000000000..c3bb1d88fd
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.jpn
@@ -0,0 +1,214 @@
+xymtx500.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+@@‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍCZIP‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·D
+
+@@ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@‚Ü‚¸Cˆ³k‚³‚ꂽxymtx500.zip‚ðCƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·(Windows XP‚È‚Ç‚ÌOS‚ÌꇂÍCƒVƒXƒeƒ€
+@‚ɉ𓀋@”\‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅC‚»‚ê‚É]‚Á‚ĉ𓀂µ‚Ä‚­‚¾‚³‚¢)D
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍCŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎCc:\temp\xymtex‚Æ‚È‚è‚Ü‚·D
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉCXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·D\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·(‚½‚Æ‚¦‚ÎCW32TEX‚Ì”z•z•¨‚Å‚ÍC
+@c:\usr\local\share\texmf-local\tex\latex‚Ì”z‰º)D
+
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (dtx files and ins files)
+ |
+ |---\doc---
+ | |--\doc101--- xymtex.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc200---xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc300---xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc401---xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc402403---xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc404---xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406B.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406C.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc500
+ | |--xymtx500.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx500PS.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---\readme---
+ | |---xymtx500.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---xymtx500.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---readm500.doc (Šo‚¦‘‚«)
+ | |
+ | |---readm500.jpn (Šo‚¦‘‚«)
+ |
+
+
+ƒAƒbƒvƒ[ƒh‚µ‚½xymtx500.pdf (xymtx500PS.pdf‚à“¯ˆê“à—e)‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“5.00‚É
+ŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+
+iˆÈ‰º‚͌¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚ß‚Ìà–¾‚Å‚·Dƒ}ƒjƒ…ƒAƒ‹‚ÍÅV”Å‚Å‚à—LŒø‚Å‚·Dj
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx4.06A.pdf, xymtx405406B.pdf, xymtx405406C.pdf‚ÍC
+@–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.06‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·D
+@Acrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405406‚ÉŠÜ‚Ü‚ê‚éxymtx405406B.tex‚È‚Ç‚ÍCxymtx405406B.dvi
+@‚È‚Ç‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405406B.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405406B.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405406B.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405‚ÉŠÜ‚Ü‚ê‚éxymtx405A.tex‚È‚Ç‚ÍCxymtx405A.dvi1‚È‚Ç
+@‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405A.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405A.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405A.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx404.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.04‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc404‚ÉŠÜ‚Ü‚ê‚éxymtx404.tex‚ÍAxymtx404.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx404.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx404.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx404.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+ 45ƒy[ƒW‚Å‚·D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍCxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍCxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍCxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍCƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D–ñ100ƒy[ƒW‚Å‚·D‚Ü‚½Cxymtx200.tex‚ÍC
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤D
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èD
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ÉC‰ð“€‚µ‚½\xymtexƒfƒBƒŒƒNƒgƒŠ
+@@‚Ì“à—e•¨‚ð‘S•”Ši”[‚µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@ð¡‚Å‚ÍCƒpƒ\ƒRƒ“‚Ì”\—Í‚ªã‚ª‚Á‚½‚Ì‚ÅCXyMTeX‚ÉŠÜ‚Ü‚ê‚é‚·‚ׂĂÌ
+@ƒpƒbƒP[ƒWƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Þ‚Ì‚ª•Ö—˜‚Å‚·DD
+@
+@-1) TeX/LaTeXƒ‚[ƒh(„§‚µ‚Ü‚¹‚ñ)
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+ \usepackage{chemist}
+
+ -2) PostScript‘Ήžƒ‚[ƒh
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+ \usepackage{chmst-ps}
+
+ -3) PDF‘Ήžƒ‚[ƒh (Version 5.00‚ŒljÁ‚µ‚½ƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexpdf}
+ \usepackage{chmst-pdf}
+
+ ‚±‚̂悤‚ÉŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+ ã‚ÅŽ¦‚µ‚½‚悤‚ÉCchemist.styCchmst-ps.styCchmst-pfd, chemtimes.sty‚Í
+ •Ê‚É“Ç‚Ýž‚Þ•K—v‚ª‚ ‚è‚Ü‚·D
+
+(4) LaTeX2e‚Ü‚½‚ÍpLaTeX2eˆ—
+(5) PDFƒ‚[ƒh‚Ì‚Æ‚«:
+ dvipdfmx‚È‚Ç‚É‚æ‚éPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·
+(5') PostScript‘Ήžƒ‚[ƒh‚Ì‚Æ‚«:
+ --a) dvips(k)‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+ --b) Adobe Distiller‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚ÌPDFƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.doc b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.doc
new file mode 100644
index 0000000000..3ba70200ef
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.doc
@@ -0,0 +1,208 @@
+xymtx500a.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+In the previous versions (\leq version 5.00),
+subscripts or superscripts without a pair of braces (e.g., $a^\star$) result in
+errors, while those with a pair of braces (e.g., $a^{\star}$) work well.
+The present version 5.00a (bug fixed) provides corrections
+for chemist.sty and chemtimes.sty, so that such different descriptions
+for math symbols and Greek letters are allowed, e.g., $a^\star$ and $a^{\star}$.
+
+(1) Setting up
+
+ The XyMTeX system has been frozen with ZIP. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx500a.zip) be placed in the c:\temp directory,
+ where the package is melt with an appropriate software for melting.
+ Thereby, the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory. And the following hierarchy of
+ directories and files is generated.
+
+ (For full document directories, visit the original deposit of the latest version at
+ http://xymtex.com/ (Shonan Institute of Chemoinformatics and Mathematical
+ Chemistry)).
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (dtx files and ins files)
+ |
+ |---\doc---
+ | |--\doc101--- xymtex.pdf (on-line document)
+ | |
+ | |--\doc200---xymtx200.pdf (on-line document)
+ | |
+ | |--\doc300---xymtx300.pdf (on-line document)
+ | |
+ | |--\doc401---xymtx401.pdf (on-line document)
+ | |
+ | |--\doc402403---xymtx402403.pdf (on-line document)
+ | |
+ | |--\doc404---xymtx404.pdf (on-line document)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (on-line document)
+ | | |--xymtx405406B.pdf (on-line document)
+ | | |--xymtx405406C.pdf (on-line document)
+ | |
+ | |--\doc500
+ | | |--xymtx500.pdf (on-line document)
+ | | |--xymtx500PS.pdf (on-line document)
+ |
+ |---\readme---
+ | |---xymtx500a.doc (this document)
+ | |
+ | |---xymtx500a.jpn (on-line document in Japanese)
+ | |
+ | |---readm500a.doc (notes in English)
+ | |
+ | |---readm500a.jpn (notes in Japanese)
+ |
+
+
+ Each of the package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands can be printed out
+ after making a driving file. For the chemstr package as an example, commands
+ to be typed in a prompt line are as follows:
+
+ c:\temp> latex chemstr.ins
+ c:\temp> latex chemstr.drv
+
+ Thereby, you will obtain chemstr.dvi, which is a document of the chemstr package.
+
+ The on-line manuals of the old versions (pdf files) stored in respective directories
+ are effective even to the present version 5.00a. The directory \doc500 contains
+ two on-line documents, xymtx500.pdf and xymtx500PS.pdf, which have the same contents
+ but are differently processed:
+
+ xymtx500.pdf ---- processed by elatex and converted into PDF by dvipdfmx
+ xymtx500PS.pdf ---- processed by elatex and converted into PS by dvips, then
+ further converted into PDF by Adobe Distiller.
+
+ They can be browsed with Adobe Reader.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx500.zip in such an appropriate directory named
+ ``tex'' or others (e.g., c:\usr\local\share\texmf\tex\latex).
+
+(3) Writing your manuscript
+
+ According to remarkable expansion of computer capacities, all of the package files of
+ the XyMTeX system can be loaded simultaneously in a tex file. You can adopt one of
+ the three modes of the XyMTeX system.
+
+ -1) For using the LaTeX picture environment and epic (TeX/LaTeX mode):
+
+ \documentclass{article}
+ \usepackage{xymtex}
+ \usepackage{chemist}
+
+ -2) For using under PostScript-compatible mode due to PSTricks techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+ \usepackage{chmst-ps}
+
+ -3) For using under PDF-compatible mode due to pgf techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxpdf}
+ \usepackage{chmst-pdf}
+
+
+ The include packages (chemist.sty, chmst-ps.sty, chemtimes.sty, chmst-pdf) should be
+ loaded separately after xymtex.sty, xymtexps.sty, or xymtexpdf.sty is loaded.
+
+(4) Running LaTeX2e (or pLaTeX2e in Japanese)
+
+ You should use XyMTeX commands within LaTeX to creat a dvi file. Note that,
+ as for the PDF-compatible mode, you should use elatex (or eplatex in Japanese)
+ during LaTeX processing.
+
+(5) PDF-compatible mode: Conversion of the dvi file into a PDF file (by e.g., dvipdfmx)
+
+(5') PostScript-compatible mode:
+ --a) Conversion of the dvi file into a PostScript file (by e.g., dvips)
+ --b) Conversion of the PostScript file into a PDF file (by e.g., Adobe Distiller)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.jpn b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.jpn
new file mode 100644
index 0000000000..bc6cbf61c1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.jpn
@@ -0,0 +1,219 @@
+xymtx500a.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+@@‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍCZIP‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·D
+
+@@ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@‚Ü‚¸Cˆ³k‚³‚ꂽxymtx500a.zip‚ðCƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·(Windows XP‚È‚Ç‚ÌOS‚ÌꇂÍCƒVƒXƒeƒ€
+@‚ɉ𓀋@”\‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅC‚»‚ê‚É]‚Á‚ĉ𓀂µ‚Ä‚­‚¾‚³‚¢)D
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍCŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎCc:\temp\xymtex‚Æ‚È‚è‚Ü‚·D
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉCXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·D\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·(‚½‚Æ‚¦‚ÎCW32TEX‚Ì”z•z•¨‚Å‚ÍC
+@c:\usr\local\share\texmf-local\tex\latex‚Ì”z‰º)D
+
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (dtx files and ins files)
+ |
+ |---\doc---
+ | |--\doc101--- xymtex.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc200---xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc300---xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc401---xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc402403---xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc404---xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406B.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406C.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc500
+ | |--xymtx500.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx500PS.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---\readme---
+ | |---xymtx500a.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---xymtx500a.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---readm500a.doc (Šo‚¦‘‚«)
+ | |
+ | |---readm500a.jpn (Šo‚¦‘‚«)
+ |
+
+
+ƒAƒbƒvƒ[ƒh‚µ‚½xymtx500.pdf (xymtx500PS.pdf‚à“¯ˆê“à—e)‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“5.00‚É
+ŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+
+iˆÈ‰º‚͌¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚ß‚Ìà–¾‚Å‚·Dƒ}ƒjƒ…ƒAƒ‹‚ÍÅV”Å‚Å‚à—LŒø‚Å‚·Dj
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx4.06A.pdf, xymtx405406B.pdf, xymtx405406C.pdf‚ÍC
+@–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.06‚ÉŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·D
+@Acrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405406‚ÉŠÜ‚Ü‚ê‚éxymtx405406B.tex‚È‚Ç‚ÍCxymtx405406B.dvi
+@‚È‚Ç‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405406B.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405406B.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405406B.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\jobdoc405‚ÉŠÜ‚Ü‚ê‚éxymtx405A.tex‚È‚Ç‚ÍCxymtx405A.dvi1‚È‚Ç
+@‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx405A.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ •ÏŠ·‚µ‚½xymtx405A.ps‚àŠi”[‚µ‚Ä‚ ‚è‚Ü‚·D‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä“Y•t‚µ‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx405A.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx404.pdf‚ÍA–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.04‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·BAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢B
+
+@@‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ[\doc404‚ÉŠÜ‚Ü‚ê‚éxymtx404.tex‚ÍAxymtx404.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Bxymtx404.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx404.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx404.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+
+--
+@@“¯Žž‚ɃAƒbƒvƒ[ƒh‚µ‚½xymtx402403.pdf‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“4.03‚ÉŠÜ‚Ü‚ê
+ ‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+ 45ƒy[ƒW‚Å‚·D
+
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc402403‚ÉŠÜ‚Ü‚ê‚éxymtx402403.tex‚ÍCxymtx402403.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx402403.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx402403.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx402403.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc401‚ÉŠÜ‚Ü‚ê‚éxymtx401.tex‚ÍCxymtx401.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·Dxymtx401.dvi‚ð‚³‚ç‚ɃRƒ“ƒo[ƒ^[(dvipsk‚È‚Ç)‚Å
+ xymtx401.ps‚É•ÏŠ·‚µ, ‚³‚ç‚ÉPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·‚µ‚Ä‚Ä‚ ‚è‚Ü‚·D
+ ’ˆÓ: xymtx401.dvi‚ðdviout‚È‚Ç‚ÅŒ©‚È‚¢‚Å‚­‚¾‚³‚¢D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc300‚ÉŠÜ‚Ü‚ê‚éxymtx300.tex‚ÍCxymtx300.dvi‚ð”­¶‚·‚é
+ ‚½‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾
+ ‚ç‚ê‚é‚Å‚µ‚傤D
+--
+@@‚Ü‚½CƒfƒBƒŒƒNƒgƒŠ[\doc200‚ÉŠÜ‚Ü‚ê‚éxymtx200.dvi‚ÍCƒo[ƒWƒ‡ƒ“2.00‚Ì
+ ƒIƒ“ƒ‰ƒCƒ“à–¾‘‚Å‚·D–{ƒo[ƒWƒ‡ƒ“‚Å‚à—LŒø‚Å‚·DƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚â
+ ƒvƒŒƒrƒ…[ƒA[‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D–ñ100ƒy[ƒW‚Å‚·D‚Ü‚½Cxymtx200.tex‚ÍC
+ xymtx200.dvi‚ð”­¶‚·‚邽‚ß‚Ìtexƒtƒ@ƒCƒ‹‚Å‚·D—¼ŽÒ‚ð”äŠr‚·‚é‚ÆC\‘¢Ž®
+ ‚ð‘‚­‚Æ‚«‚̃qƒ“ƒg‚ª“¾‚ç‚ê‚é‚Å‚µ‚傤D
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èD
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ÉC‰ð“€‚µ‚½\xymtexƒfƒBƒŒƒNƒgƒŠ
+@@‚Ì“à—e•¨‚ð‘S•”Ši”[‚µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@ð¡‚Å‚ÍCƒpƒ\ƒRƒ“‚Ì”\—Í‚ªã‚ª‚Á‚½‚Ì‚ÅCXyMTeX‚ÉŠÜ‚Ü‚ê‚é‚·‚ׂĂÌ
+@ƒpƒbƒP[ƒWƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Þ‚Ì‚ª•Ö—˜‚Å‚·DD
+@
+@-1) TeX/LaTeXƒ‚[ƒh(„§‚µ‚Ü‚¹‚ñ)
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+ \usepackage{chemist}
+
+ -2) PostScript‘Ήžƒ‚[ƒh
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+ \usepackage{chmst-ps}
+
+ -3) PDF‘Ήžƒ‚[ƒh (Version 5.00‚ŒljÁ‚µ‚½ƒ‚[ƒh)
+
+ \documentclass{article}
+ \usepackage{xymtexpdf}
+ \usepackage{chmst-pdf}
+
+ ‚±‚̂悤‚ÉŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+ ã‚ÅŽ¦‚µ‚½‚悤‚ÉCchemist.styCchmst-ps.styCchmst-pfd, chemtimes.sty‚Í
+ •Ê‚É“Ç‚Ýž‚Þ•K—v‚ª‚ ‚è‚Ü‚·D
+
+(4) LaTeX2e‚Ü‚½‚ÍpLaTeX2eˆ—
+(5) PDFƒ‚[ƒh‚Ì‚Æ‚«:
+ dvipdfmx‚È‚Ç‚É‚æ‚éPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·
+(5') PostScript‘Ήžƒ‚[ƒh‚Ì‚Æ‚«:
+ --a) dvips(k)‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+ --b) Adobe Distiller‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚ÌPDFƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/readme501.doc b/macros/latex/contrib/xymtex/readmes/readme501.doc
new file mode 100644
index 0000000000..596c1c0fe4
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/readme501.doc
@@ -0,0 +1,74 @@
+readm501.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm500a.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm500.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm406.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm405.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm404.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm403.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm402.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm400.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm300.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita,
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+readm201.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme2.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(old) readme1.doc
+Notes for XyMTeX
+Copyright (C) 1993, 1996 by Shinsaku Fujita, All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.01
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentations are stored as xymtex-manual.pdf and chemtimes-doc.pdf.
+
+For Installment, see xymtx501.doc (xymtx501.jpn)
diff --git a/macros/latex/contrib/xymtex/readmes/readme501.jpn b/macros/latex/contrib/xymtex/readmes/readme501.jpn
new file mode 100644
index 0000000000..f6e72585bb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/readme501.jpn
@@ -0,0 +1,153 @@
+readm501.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm500a.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm500.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm406.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm405.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm404.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm403.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm402.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm400.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm300.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsaku Fujita.
+All rights reserved.
+===========================================================================
+readm201.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme2.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996, 1998 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+(‹Œ)readme1.jpn
+Notes for XyMTeX (in Japanese)
+Copyright (C) 1993, 1996 by Shinsaku Fujita. All rights reserved.
+===========================================================================
+–¼ Ì: XyMTeX
+“o˜^–¼: xymtx501.zip for drawing chem. structures
+ŠT —v: ‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW
+@@@ (LaTeX—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹—Þ‚ðŠÜ‚Þ)
+Œ® Œê: LaTeX, ‰»Šw, \‘¢Ž®
+ì ŽÒ: Shinsaku Fujita (“¡“c áÁì)
+“o˜^ŽÒ: “¡“c áÁì
+ÅV”Å: 5.00
+–{ Ð: http://xymtex.com/fujitas3/xymtex/index.html
+Šo ‘: ƒhƒLƒ…ƒƒ“ƒg‚ÍAxymtex-manual.pdf, chemtimes-doc.pdf
+===========================================================================
+Name: XyMTeX
+Description: Macro Package including LaTeX document-style options for
+ typesetting chemical structural formulas
+Keywords: LaTeX, chemistry, structural formula
+Author: Shinsaku Fujita
+Supported: http://xymtex.com/
+Latest Version: 5.01
+Archives: http://xymtex.com/fujitas3/xymtex/indexe.html
+Note: Documentations are stored as xymtex-manual.pdf and chemtimes-doc.pdf.
+===========================================================================
+
+ƒà–¾„
+@XyMTeX‚ÍA‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B ‚±‚ê‚ÍA
+LaTeX2e—p‚̃pƒbƒP[ƒWƒtƒ@ƒCƒ‹ŒQ‚©‚笂藧‚Á‚Ä‚¢‚Ü‚·BŠeƒtƒ@ƒCƒ‹‚É‚Í
+‰»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃Rƒ}ƒ“ƒh‚̃}ƒNƒƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŠeƒRƒ}ƒ“ƒh‚ÍA
+L”͈͂̉»‡•¨‚Ì\‘¢‚ª•`‚¯‚é‚悤‚ÉAV‚µ‚¢\‘z‚Ì‚à‚Æ‚É쬂µ‚½‚à‚Ì‚Å‚·B
+LaTeX‚ÌpictureŠÂ‹«‚ð‘O’ñ‚É‚µ‚ÄA‚»‚͈͓̔à (}Œ`‘g”Å)‚Å\‘¢Ž®‚ª•`‚¯‚é‚悤‚É
+‚È‚Á‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA\‘¢Ž®o—͂̃vƒŠƒ“ƒ^[‚Í (ƒvƒŠƒ“ƒ^[ƒhƒ‰ƒCƒo[‚³‚¦
+‚ ‚ê‚Î) Ží—Þ‚ð‘I‚΂¸A‚½‚Æ‚¦‚ÎŽÊA‹@‚Å‚ào—Í‚ª‰Â”\‚Å‚·B
+
+Œ»Ý‚̃o[ƒWƒ‡ƒ“‚ÍAŽO‚‚̃‚[ƒh‚Å“®‚©‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+
+(1) TeX/LaTeXŒÝŠ·ƒ‚[ƒh
+TeX/LaTeX‚¾‚¯‚Å“®‚«‚Ü‚·BLaTeX‚ÌpictureŠÂ‹«‚ðŽg‚Á‚Ä‚¢‚邽‚ßAo—Í‚Ì•iŽ¿
+‚ɧŒÀ‚ª‚ ‚è‚Ü‚·B
+
+(2) PostScriptŒÝŠ·ƒ‚[ƒh
+PSTricksƒpƒbƒP[ƒW‚Ì‹@”\‚ðŽg‚Á‚ÄA•`‰æ‚µ‚Ä‚¢‚Ü‚·B
+
+(3) PDFŒÝŠ·ƒ‚[ƒh
+pgfƒpƒbƒP[ƒW‚Ì‹@”\‚ðŽg‚Á‚ÄA•`‰æ‚µ‚Ä‚¢‚Ü‚·B
+
+‚Ü‚½Achemtimes.sty‚ðVÝ‚µ‚ÄATimesŒn‚̃tƒHƒ“ƒg‚ð’n‚Ì•¶‚Å‚àA”Ž®
+(”Ž®ƒo[ƒWƒ‡ƒ“normal, bold, chem, boldchem)‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚Ü‚µ‚½
+(Ú‚µ‚¢à–¾‚ÍAchemtimes-doc.pdf)B
+(xymtx405C.pdf)D
+
+ƒƒ}ƒjƒ…ƒAƒ‹—Þ„
+Version 5.01‚Å‚ÍAƒo[ƒWƒ‡ƒ“‚²‚Æ‚Ì‹Œƒ}ƒjƒ…ƒAƒ‹‚ð‚Ü‚Æ‚ß‚ÄA
+ˆê‚‚̃}ƒjƒ…ƒAƒ‹(xymtex-manual.pdf)‚Æ‚µ‚Ü‚µ‚½B‚±‚̃}ƒjƒ…ƒAƒ‹‚ÍA
+PDFŒÝŠ·ƒ‚[ƒh‚Å쬂µ‚½‚à‚Ì‚Å‚·B
+TimesŒn‚̃tƒHƒ“ƒg‚ðŽg‚¤‚½‚ß‚Ìchemtimes.sty‚̃}ƒjƒ…ƒAƒ‹‚ÍA
+chemtimes-doc.pdf (‹Œxymtx405C.pdf‚ð‰ü–¼)‚Å‚·B
+‚±‚ê‚ç‚̃}ƒjƒ…ƒAƒ‹‚ÍAdocƒfƒBƒŒƒNƒgƒŠ[‚É‚Ü‚Æ‚ß‚Ä‚ ‚è‚Ü‚·B
+
+‹Œƒo[ƒWƒ‡ƒ“‚ÉŠÖ‚·ƒ}ƒjƒ…ƒAƒ‹‚ÍAold-docƒfƒBƒŒƒNƒgƒŠ[‚ÉŽc‚µ‚Ä‚ ‚è‚Ü‚·B
+Œ»ƒo[ƒWƒ‡ƒ“‚Å‚à‚Ù‚Ú—LŒø‚Å‚·B
+
+======================================================================================
+
+Šî–{“I‚ÈŽg—p–@‚ÍAXyMTeX verion 5.01‚àˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Å‚à“¯‚¶‚Å‚·B
+
+‚±‚Ì‚½‚ßA•t‘®‚̃}ƒjƒ…ƒAƒ‹‚Å‚ÍAŠî–{“I‚ÈŽg—p–@‚ð‹LÚ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñB
+Šî–{“I‚ÈŽg—p–@‚ÍCxymtex.pdf‚Æ‚¢‚¤ƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðƒz[ƒ€ƒy[ƒW
+http://xymtex.com/‚ɃAƒbƒvƒ[ƒh‚µ‚Ä‚ ‚è‚Ü‚·‚Ì‚ÅŽQÆ‚µ‚Ä‚­‚¾‚³‚¢D‚Ü‚½C
+‚±‚̃z[ƒ€ƒy[ƒW‚É‚ÍC“ú–{Œêƒ}ƒjƒ…ƒAƒ‹‚à—pˆÓ‚µ‚Ä‚ ‚è‚Ü‚·D
+
+ˆóü•¨‚Æ‚µ‚Ä‚ÍAŽŸ‚̃Œƒtƒ@ƒŒƒ“ƒXƒ}ƒjƒ…ƒAƒ‹‚ðo”Å‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅAŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
+ uXyMTeX--Typesetting Chemical Structural Formulasv
+ “¡“cáÁì’˜AƒAƒWƒ\ƒ“EƒEƒFƒXƒŒƒCEƒWƒƒƒpƒ“ (1997) CD-DOM•t
+
+‚Ü‚½ŽŸ‚ÌÙ’˜‚àŽQl‚É‚µ‚Ä‚­‚¾‚³‚¢B
+
+ u‰»ŠwŽÒE¶‰»ŠwŽÒ‚Ì‚½‚ß‚ÌLaTeX---ƒpƒ\ƒRƒ“‚É‚æ‚é˜_•¶ì¬‚ÌŽèˆøv
+ “¡“c áÁì ’˜A“Œ‹ž‰»Šw“¯l (1993) FD•t
+
+ uLaTeX2eŠK’òv‘æ3”Å (㉺)
+ “¡“c áÁì ’˜AƒsƒAƒ\ƒ“ƒGƒfƒ…ƒP[ƒVƒ‡ƒ“ (2009)
+
+
+ƒƒ_ƒEƒ“ƒ[ƒhE‰ð“€„
+(1) ƒtƒ@ƒCƒ‹–¼xymtx501.zip‚Ń_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢
+(2) TeX‚̃pƒX‚Ì’Ê‚Á‚Ä‚¢‚éƒfƒBƒŒƒNƒgƒŠ[“à‚ʼn𓀂µ‚Ä‚­‚¾‚³‚¢B
+
+@@ð¡‚Å‚ÍC—DG‚ȃtƒŠ[‚̉𓀃\ƒtƒgƒEƒFƒA‚ª“üŽè‚Å‚«‚Ü‚·‚Ì‚ÅC
+@@‚³‚ç‚É•Ö—˜‚ɉ𓀂ł«‚Ü‚·D“üŽè‚µ‚½‰ð“€ƒ\ƒtƒgƒEƒFƒA‚ÌŽwŽ¦‚É
+@@‚µ‚½‚ª‚Á‚Äxymtx501.zip‚ð‰ð“€‚µ‚Ä‚­‚¾‚³‚¢D
+
+ƒCƒ“ƒXƒg[ƒ‹‚ÌŠT—ª‚̎臂ÍAxymtx501.jpn‚ð‚²——‰º‚³‚¢B
diff --git a/macros/latex/contrib/xymtex/readmes/xymtx501.doc b/macros/latex/contrib/xymtex/readmes/xymtx501.doc
new file mode 100644
index 0000000000..baef688823
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/xymtx501.doc
@@ -0,0 +1,197 @@
+xymtx501.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500a.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004,2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx401.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.doc
+On-line document for XyMTeX in English
+Copyright (C) 1993, 1996, 1998,2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex2.doc
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+renamed and revised: xymtex1.doc
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' is a macro package for drawing chemical structural formulas.
+
+(1) Setting up
+
+ The XyMTeX system has been frozen with ZIP. Set up according to the software
+ situation of your computer.
+
+ The following is only one example. Let the frozen package
+ (xymtx501.zip) be placed in the c:\temp directory,
+ where the package is melt with an appropriate software for melting.
+ Thereby, the directory <\xymtex> is automatically created as the
+ subdirectory of the c:\temp directory. And the following hierarchy of
+ directories and files is generated.
+
+ (For full document directories, visit the original deposit of the latest version at
+ http://xymtex.com/ (Shonan Institute of Chemoinformatics and Mathematical
+ Chemistry)).
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (and their dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (and their dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (and their dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (and their dtx files and ins files)
+ |
+ |---\doc---xymtex-manual.pdf, chemtimes-doc.pdf (on-line document)
+ |
+ |---\old-doc--- (old documents
+ | |--\doc101--- xymtex.pdf (old on-line document)
+ | |
+ | |--\doc200---xymtx200.pdf (old on-line document)
+ | |
+ | |--\doc300---xymtx300.pdf (old on-line document)
+ | |
+ | |--\doc401---xymtx401.pdf (old on-line document)
+ | |
+ | |--\doc402403---xymtx402403.pdf (old on-line document)
+ | |
+ | |--\doc404---xymtx404.pdf (old on-line document)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (old on-line document)
+ | | |--xymtx405406B.pdf (old on-line document)
+ | | |--xymtx405406C.pdf (old on-line document)
+ | |
+ | |--\doc500
+ | | |--xymtx500.pdf (old on-line document)
+ | | |--xymtx500PS.pdf (old on-line document)
+ |
+ |---\readme---
+ | |---xymtx501.doc (this document)
+ | |
+ | |---xymtx501.jpn (on-line document in Japanese)
+ | |
+ | |---readm501.doc (notes in English)
+ | |
+ | |---readm501.jpn (notes in Japanese)
+ |
+
+
+ Each of the package (sty) files in the \xymtex directory contains the macro
+ codes of XymTeX commands. The specification of XyMTeX commands can be printed out
+ after making a driving file. For the chemstr package as an example, commands
+ to be typed in a prompt line are as follows:
+
+ c:\temp> latex chemstr.ins
+ c:\temp> latex chemstr.drv
+
+ Thereby, you will obtain chemstr.dvi, which is a document of the chemstr package.
+
+ The on-line manuals of the old versions (pdf files) stored in the respective directories
+ in the old-doc directory are effective even to the present version 5.01. The directory \doc
+ contains two on-line documents, xymtex-manual.pdf and chemtimes-doc.pdf.
+
+ They can be browsed with Adobe Reader.
+
+
+(2) Designating a serach path
+
+ Do this task according to the situtation of your computer.
+
+ The path searching tool (kpathsea) supported by usual TeX distributions has already decided
+ several input directories (named ``tex'' or others). Hence, you should only place the resulting
+ ``xymtex'' directry generated from xymtx501.zip in such an appropriate directory named
+ ``tex'' or others (e.g., c:\usr\local\share\texmf\tex\latex).
+
+(3) Writing your manuscript
+
+ According to remarkable expansion of computer capacities, all of the package files of
+ the XyMTeX system can be loaded simultaneously in a tex file. You can adopt one of
+ the three modes of the XyMTeX system.
+
+ -1) For using the LaTeX picture environment and epic (TeX/LaTeX mode):
+
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ -2) For using under PostScript-compatible mode due to PSTricks techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxps}
+
+ -3) For using under PDF-compatible mode due to pgf techniques:
+
+ \documentclass{article}
+ \usepackage{xymtxpdf}
+
+
+(4) Running LaTeX2e (or pLaTeX2e in Japanese)
+
+ You should use XyMTeX commands within LaTeX to creat a dvi file. Note that,
+ as for the PDF-compatible mode, you should use elatex (or eplatex in Japanese)
+ during LaTeX processing.
+
+(5) PDF-compatible mode: Conversion of the dvi file into a PDF file (by e.g., dvipdfmx)
+
+(5') PostScript-compatible mode:
+ --a) Conversion of the dvi file into a PostScript file (by e.g., dvips)
+ --b) Conversion of the PostScript file into a PDF file (by e.g., Adobe Distiller)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/readmes/xymtx501.jpn b/macros/latex/contrib/xymtex/readmes/xymtx501.jpn
new file mode 100644
index 0000000000..b1fddba341
--- /dev/null
+++ b/macros/latex/contrib/xymtex/readmes/xymtx501.jpn
@@ -0,0 +1,181 @@
+xymtx501.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010, 2013 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500a.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx500.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009, 2010 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx406.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx405.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx404.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005, 2009 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx403.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004, 2005 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx402.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002, 2004 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx400.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx300.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001, 2002 by Shinsak Fujita.
+All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xymtx201.jpn
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998, 2001 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex2.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996, 1998 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+(‹Œ)xymtex1.jpn‚ð‰ü–¼
+XyMTeX‚̃Iƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg (“ú–{Œê”Å)
+Copyright (C) 1993, 1996 by Shinsak Fujita. All rights reserved.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+`XyMTeX' ‚͉»Šw\‘¢Ž®‚ð•`‚­‚½‚߂̃}ƒNƒƒpƒbƒP[ƒW‚Å‚·B
+
+(1) Ý’è
+
+@@‚±‚̃}ƒNƒƒpƒbƒP[ƒW‚ÍCZIP‚ň³k‚³‚ê‚Ä‚¢‚Ü‚·D
+
+@@ŽÀî‚ɉž‚¶‚ÄCƒT[ƒ`ƒpƒX‚Ì’Ê‚Á‚½ƒfƒBƒŒƒNƒgƒŠ[‚ʼn𓀂µ‚Ä‚¨Žg‚¢‚­‚¾‚³‚¢D
+@
+@@‚Ü‚¸Cˆ³k‚³‚ꂽxymtx501.zip‚ðCƒfƒBƒŒƒNƒgƒŠ[c:\temp:‚É‚ ‚é‚Æ‚µ‚Ü‚·. ‚±‚±‚ʼnð“€
+@‚·‚é‚ÆCƒfƒBƒŠƒNƒgƒŠ[\xymtex‚ªŽ©“®“I‚É”­¶‚µ‚Ü‚·(Windows XP‚È‚Ç‚ÌOS‚ÌꇂÍCƒVƒXƒeƒ€
+@‚ɉ𓀋@”\‚ª•t‘®‚µ‚Ä‚¢‚Ü‚·‚Ì‚ÅC‚»‚ê‚É]‚Á‚ĉ𓀂µ‚Ä‚­‚¾‚³‚¢)D
+@”­¶‚µ‚½ƒfƒBƒŒƒNƒgƒŠ[‚ÍCŠK‘w‚𗪂³‚¸‚É‘‚¯‚ÎCc:\temp\xymtex‚Æ‚È‚è‚Ü‚·D
+@‚±‚̃fƒBƒŒƒNƒgƒŠ[‚Ì’†‚ÉCXyMTeX‚ÌŠeŽíƒXƒ^ƒCƒ‹ƒtƒ@ƒCƒ‹‚âƒhƒLƒ…ƒƒ“ƒg—Þ
+@‚ªŽŸ‚̂悤‚É“WŠJ‚³‚ê‚Ä‚¢‚Ü‚·D\xymtexƒfƒBƒŒƒNƒgƒŠ[ˆÈ‰º‚ðƒpƒX‚Ì’Ê‚Á‚½
+@ƒfƒBƒŒƒNƒgƒŠ[‚Ɉڂµ‚Ü‚·(‚½‚Æ‚¦‚ÎCW32TEX‚Ì”z•z•¨‚Å‚ÍC
+@c:\usr\local\share\texmf-local\tex\latex‚Ì”z‰º)D
+
+
+ c---\temp---\xymtex ---\base -- xymtex.sty, xymtexps.sty, xymtexpdf.sty,
+ | hetaromh.sty, hetarom.sty, ccycle.sty,
+ | chemstr.sty, carom.sty, lowcycl.sty, aliphat.sty,
+ | hcycle.sty, locant.sty, polymers.sty, chemist.sty
+ | methylen.sty, fusering.sty,
+ | sizeredc.sty, steroid.sty, bondcolor, assurelatexmode
+ | lewisstruc.sty, chemtimes.sty
+ | (dtx files and ins files)
+ |
+ |---\chemist---chemist.sty, assurechemist.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxps---xymtx-ps.sty, chmst-ps.sty
+ | (dtx files and ins files)
+ |
+ |---\xymtxpdf---xymtx-pdf.sty, chmst-pdf.sty
+ | (dtx files and ins files)
+ |
+ |---\doc---xymtex-manual.pdf, chemtimes-doc.pdf (on-line document)
+ |
+ |
+ |---\old-doc---
+ | |--\doc101--- xymtex.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc200---xymtx200.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc300---xymtx300.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc401---xymtx401.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc402403---xymtx402403.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc404---xymtx404.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc405406
+ | | |--xymtx405A.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406B.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | | |--xymtx405406C.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |--\doc500
+ | |--xymtx500.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |--xymtx500PS.pdf (ƒIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ |
+ |---\readme---
+ | |---xymtx501.doc (‰pŒê”ŃIƒ“ƒ‰ƒCƒ“ƒhƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---xymtx501.jpn (‚±‚̃hƒLƒ…ƒƒ“ƒg)
+ | |
+ | |---readm501.doc (Šo‚¦‘‚«)
+ | |
+ | |---readm501.jpn (Šo‚¦‘‚«)
+ |
+
+
+ƒAƒbƒvƒ[ƒh‚µ‚½xymtex-manual.pdf‚ÍC–{ƒVƒXƒeƒ€‚̃o[ƒWƒ‡ƒ“5.01‚É
+ŠÜ‚Ü‚ê‚éƒRƒ}ƒ“ƒh‚ÌŽg—p—á‚ÆŽd—l‚ðŽ¦‚µ‚½‚à‚Ì‚Å‚·DAcrobat Reader‚É‚©‚¯‚Ä‚²——‰º‚³‚¢D
+‚Ü‚½Cƒ^ƒCƒ€ƒYƒtƒHƒ“ƒg‚ðŽg‚¤‚½‚߂̃pƒbƒP[ƒW‚̃}ƒjƒ…ƒAƒ‹chemtimes-doc.pdf
+(‹Œxymtx405406C.pdf‚ð‰ü–¼)‚à“¯‚¶ƒfƒBƒŒƒNƒgƒŠ[‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·D
+
+
+ŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ì‚½‚߂̃}ƒjƒ…ƒAƒ‹—Þ‚ÍC\old-docƒfƒBƒŒƒNƒgƒŠ[‚ÉŽc‚µ‚Ä‚ ‚è‚Ü‚·D‚±‚ê‚ç‚ÍC
+ÅV”Å‚Å‚à—LŒø‚Å‚·D
+
+(2) ƒT[ƒ`ƒpƒX‚ÌÝ’èD
+
+@@ŽÀî‚ɉž‚¶‚ăT[ƒ`ƒpƒX‚Ì’Ê‚Á‚Ä‚¢‚é‚Æ‚±‚ë‚ÉC‰ð“€‚µ‚½\xymtexƒfƒBƒŒƒNƒgƒŠ
+@@‚Ì“à—e•¨‚ð‘S•”Ši”[‚µ‚Ä‚­‚¾‚³‚¢D
+
+(3) Œ´e‚Ö‚Ì‹L“üŽ–€
+
+@ð¡‚Å‚ÍCƒpƒ\ƒRƒ“‚Ì”\—Í‚ªã‚ª‚Á‚½‚Ì‚ÅCXyMTeX‚ÉŠÜ‚Ü‚ê‚é‚·‚ׂĂÌ
+@ƒpƒbƒP[ƒWƒtƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Þ‚Ì‚ª•Ö—˜‚Å‚·DD
+@
+@-1) TeX/LaTeXƒ‚[ƒh(„§‚µ‚Ü‚¹‚ñ)
+@@
+ \documentclass{article}
+ \usepackage{xymtex}
+
+ -2) PostScript‘Ήžƒ‚[ƒh
+
+ \documentclass{article}
+ \usepackage{xymtexps}
+
+ -3) PDF‘Ήžƒ‚[ƒh
+
+ \documentclass{article}
+ \usepackage{xymtexpdf}
+
+ ‚±‚̂悤‚ÉŽw’è‚·‚é‚ÆCXyMTeXŠÖŒW‚Ìstyƒtƒ@ƒCƒ‹‚ª‚·‚ׂēǂݞ‚Ü‚ê‚Ü‚·D
+ ã‚ÅŽ¦‚µ‚½‚悤‚ÉCchemist.styCchmst-ps.styCchmst-pdf.sty‚È‚Ç
+ •K—v‚ȃtƒ@ƒCƒ‹‚àŽ©“®“I‚É“Ç‚Ýž‚Ü‚ê‚Ü‚·Dchemtimes.sty‚Í•Ê‚É“Ç‚Ýž‚Þ
+ •K—v‚ª‚ ‚è‚Ü‚·D
+
+(4) LaTeX2e‚Ü‚½‚ÍpLaTeX2eˆ—
+(5) PDFƒ‚[ƒh‚Ì‚Æ‚«:
+ dvipdfmx‚È‚Ç‚É‚æ‚éPDFƒtƒ@ƒCƒ‹‚É•ÏŠ·
+(5') PostScript‘Ήžƒ‚[ƒh‚Ì‚Æ‚«:
+ --a) dvips(k)‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+ --b) Adobe Distiller‚È‚Ç‚É‚æ‚éPostScriptƒtƒ@ƒCƒ‹‚ÌPDFƒtƒ@ƒCƒ‹‚Ö‚Ì•ÏŠ·
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(END)
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx
new file mode 100644
index 0000000000..967e3b73c1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx
@@ -0,0 +1,1493 @@
+% \iffalse
+%
+% chmst-pdf.dtx
+%
+% Copyright (C) 2010 by Shinsaku Fujita All rights reserved.
+%
+% ========================================
+%
+% Modified from the following previous packages:
+%
+% chemist.dtx
+% Copyright (C) 1996, 1999, 2000 by Shinsaku Fujita All rights reserved
+% and
+% chmst-ps.dtx
+% Copyright (C) 2002, 2004, 2009, 2010 by Shinsaku Fujita All rights reserved
+%
+% in order to utilize pgf.
+%
+% This file is part of the ChemSci system
+% ========================================
+%
+% This style file is created for submitting a manuscript to
+% scientific journals. This style file is to be contained in the
+% ``chemist'' directory which is an input directory for TeX.
+%
+% For using this file, see
+% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files chmst-ps.dtx and chmst-ps.ins
+% and the derived file chmst-ps.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and
+% Mathematical Chemistry
+% fujita-sicimc@nifmail.jp
+%
+%=======================================
+%
+% This file is a successor to:
+%
+% *********************************************************************
+% * chemist.sty <Sept 29 1991> by Shinsaku Fujita *
+% * counters and related matters for compounds. *
+% * ffboxit: November 2 1991 by S. Fujita *
+% * bslskipchange: November 6 1991 by S. Fujita (deleted) *
+% * chapinitial: 1991 November 7 by S. Fujita *
+% * variable arrows: 1992 May 24 by S. Fujita *
+% * reaction and scheme arrows (revised): 1992 May 24 by S. Fujita *
+% * changespace <=== bslskipchange: Dec 31 1992 by S. Fujita *
+% * (g)rshfboxit and (g)lshfboxit: January 3, 1993 by S. Fujita *
+% *********************************************************************
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Released on January 3, 1993
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+% This style file is created for making manuscripts of chemical fields.
+% This option style file is to be contained in the ``chemist'' directory
+% which is an input directory for TeX.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{January 03, 1993}
+% \def\versi@nno{ver1.00}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Version 1.01
+% --- added the end commands of the \verbatim environment and the
+% \verb command contained in LaTeX 2.09
+% --- \LaTeX, \BibTeX logos etc improved
+% \typeout{verbatim for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \typeout{logos for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \def\versi@ndate{April 20, 1996}
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{April 20, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{June 15, 1996}
+% \def\versi@nno{ver1.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% \typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+% [\copyrighth@lder]}
+% \typeout{chemist.sty ver1.01a (for LaTeX2e) 1996/06/15[SF]}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{March 16, 1999}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 3, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{November 08, 2009}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{November 26, 2009}
+% \def\versi@nno{ver1.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% \fi
+% \CheckSum{1429}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%%
+%% `chmst-ps.dtx' ver1.00 (for LaTeX2e) 2002/05/30
+%% `chmst-ps.dtx' ver1.01 (for LaTeX2e) 2004/08/30
+%% `chmst-ps.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chmst-ps.dtx' ver1.03 (for LaTeX2e) 2009/11/26
+%% `chmst-ps.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% by Shinsaku Fujita
+%%
+%
+% \section{Initial declaration}
+%
+% \changes{v1.00}{2002/05/30}{First Version}
+% \changes{v1.01}{2004/08/30}{2nd Version}
+% \changes{v1.02}{2009/11/08}{3rd Version}
+% \changes{v1.03}{2009/11/26}{4th Version, harpoons}
+% \changes{v5.00}{2010/10/01}{For LaTeX Project Public License}
+%
+% \begin{macrocode}
+% \NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% <chmstpdf>\ProvidesFile{chmst-ps.sty}
+%<driver>\ProvidesFile{chmst-ps.drv}
+%<driver> [2010/10/01 v5.00
+% <chmstpdf> ChemSci package ]
+%<driver> ChemSci package driver (English)
+% \end{macrocode}
+%
+%\setcounter{StandardModuleDepth}{1}
+%
+% \section{Driver file for this dtx file}
+%
+% \begin{macrocode}
+%<*driver>
+ ]
+\documentclass{ltxdoc}
+\GetFileInfo{chmst-pdf.drv}
+\title{The chmst-pdf Package \space\fileversion \\
+(Part of the XyMTeX/ChemSci package v5.00)}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Ashigara-Kami-Gun, Kanagawa, 258-0019 Japan
+%% Department of Chemistry and Materials Technology \\
+%% Kyoto Institute of Technology \\
+%% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+%% (old address)
+%% Ashigara Research Laboratories \\
+%% Fuji Photo Film Co. Ltd.
+}
+\date{\filedate}
+\begin{document}
+\maketitle
+\tableofcontents
+\DocInput{chmst-pdf.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \StopEventually{}
+%
+% \section{{\sc docstrip} options}
+%
+% This dtx file provides the {\sffamily chmst-pdf} package
+% by docstrip processing.
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% argument & package name \\
+% \hline
+% chmstpdf & chmst-pdf.sty \\
+% driver & a documentation driver file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \section{Version information}
+%
+% The old process for typing out version information remains active.
+% \begin{macrocode}
+%<chmstpdf>\def\j@urnalname{chmst-pdf} \def\journalID{chmst-pdf}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+%<*chmstpdf>
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chmst-pdf.sty ver5.00 (for LaTeX2e) 2010/10/01[SF]}
+%</chmstpdf>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*chmstpdf>
+\@ifundefined{if@@@chemtimes}{\newif\if@@@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@@@chemtimestrue}
+\@@@chemtimesfalse
+\ProcessOptions
+\if@@@chemtimes\if@@chemtimes\else
+ \PackageError{chmst-pdf}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded.}
+\fi\fi
+\if@@@chemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\RequirePackage{chemist}%
+\fi
+\RequirePackage{xymtx-pdf}%
+% \end{macrocode}
+%
+% \section{Cross-references of compounds}
+% (Deleted)
+% \section{Boxes for placing compounds}
+% (Deleted)
+% \section{Arrows}
+% \subsection{Arrows with variable length}
+% (Deleted)
+% \subsection{Reaction arrows with variable length}
+%
+% The {\sffamily chmst-pdf} package defines arrows with variable length
+% for drawing chemical equations, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v1.00}{2002/05/30}{First Version for PostScript mode}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+%
+% Several elements for drawing horizontal reaction arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\rArrow@Element}
+% \begin{macro}{\lArrow@Element}
+% \begin{macro}{\lrArrow@Element}
+% \begin{macro}{\eqArrow@Element}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\newdimen\@tempdimX
+\newdimen\@tempdimY
+\def\rArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[>=stealth,->,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\let\Arrow@Element=\rArrow@Element
+\def\lArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\def\lrArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\def\eqArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.13em) -- (#1,0.13em);}%
+\hss}\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\eqHarpoon@Element}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\eqHarpoon@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.13em) -- (#1,0.13em);}%
+\hss}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Equilibirum arrows with uneven lengths are defined by using the \verb/\draw/ command
+% of the pgf package.
+% \changes{v1.02}{2009/11/08}{2nd Version fro PostScript mode (due to PSTricks)}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode (due to pgf)}
+%
+% \begin{macro}{\reqArrow@Element}
+% \begin{macro}{\leqArrow@Element}
+% \begin{macrocode}
+\def\reqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(\the\dimen1,0.13em) -- (\the\dimen2,0.13em);}%
+\endgroup}
+\def\leqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(\the\dimen1,0.43em) -- (\the\dimen2,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.13em) -- (#1,0.13em);}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reqHarpoon@Element}
+% \begin{macro}{\leqHarpoon@Element}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\reqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(\the\dimen1,0.13em) -- (\the\dimen2,0.13em);}%
+\endgroup}
+\def\leqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(\the\dimen1,0.43em) -- (\the\dimen2,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.13em) -- (#1,0.13em);
+}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% horizontal reaction arrows.
+% \changes{v1.02}{2009/11/08}{changed definition;
+% added \cs{reactarrowsep} and \cs{reactarrowseprate}}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+%
+% \begin{verbatim}
+% \reactarrowsep (dimension) for adjusting the two vertical spaces (default value 0pt)
+% \reactarrowseprate (string) for adjusting the lower vertical space (default 1.0)
+% \end{verbatim}
+%
+% \begin{macro}{\react@@rlarrow}
+% \begin{macrocode}
+\newdimen\@tempdimX
+\def\react@@rlarrow[#1]#2#3#4#5{\ensuremath{\mathrel{%
+\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par%
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep%
+ \noindent
+ \Arrow@Element{\the\@tempdimX}
+ \par%
+ \vskip\reactarrowseprate\reactarrowsep%
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}\endgroup}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactrarrow}
+% \begin{macro}{\reactlarrow}
+% \begin{macro}{\reactlrarrow}
+% \begin{macro}{\reactEqarrow}%2009/11/19 renamed from \verb/\reacteqarrow/
+% \begin{macro}{\reacteqarrow}%2009/11/19
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macrocode}
+% ******************* 1991 Oct 4 S. Fujita
+% * reaction arrows * Revised 1992 May 24 S.Fujita%1999/02/02 SF
+% ******************* Redifined 2002 May 30 S. Fujita for pstricks
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% #1 yoko #2 ue, #3 haba, #4 ya no ue, #5 ya no shita
+%
+\def\newreactrarrow{%
+\@ifnextchar[{\newreact@rarrow}{\newreact@rarrow[0pt]}}
+\def\newreact@rarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\rArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlarrow{%
+\@ifnextchar[{\newreact@larrow}{\newreact@larrow[0pt]}}
+\def\newreact@larrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlrarrow{%
+\@ifnextchar[{\newreact@lrarrow}{\newreact@lrarrow[0pt]}}
+\def\newreact@lrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lrArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactEqarrow{%
+\@ifnextchar[{\newreact@Eqarrow}{\newreact@Eqarrow[0pt]}}
+\def\newreact@Eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreacteqarrow{%
+\@ifnextchar[{\newreact@eqarrow}{\newreact@eqarrow[0pt]}}
+\def\newreact@eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqHarpoon@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactrarrow=\newreactrarrow
+%\let\reactlarrow=\newreactlarrow
+%\let\reactlrarrow=\newreactlrarrow
+%\let\reactEqarrow=\newreactEqarrow
+%\let\reacteqarrow=\newreacteqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactREqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactLEqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactreqarrow}
+% \begin{macro}{\reactleqarrow}
+%
+% These commands have been added for the XyMTeX version 4.05.
+% The {\sffamily chemist} package additionally defines arrows with variable length
+% for drawing chemical equilibrium, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% The length of either one of arrows can be reduced by \verb/\eqlbarrowstretch/.
+%
+% \changes{v4.05}{2009/11/08}{added \cs{reactreqarrow} and \cs{reactleqarrow}}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+%
+% \begin{macrocode}
+\def\newreactREqarrow{%
+\@ifnextchar[{\newreact@REqarrow}{\newreact@REqarrow[0pt]}}
+\def\newreact@REqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactLEqarrow{%
+\@ifnextchar[{\newreact@LEqarrow}{\newreact@LEqarrow[0pt]}}
+\def\newreact@LEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactreqarrow{%
+\@ifnextchar[{\newreact@reqarrow}{\newreact@reqarrow[0pt]}}
+\def\newreact@reqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactleqarrow{%
+\@ifnextchar[{\newreact@leqarrow}{\newreact@leqarrow[0pt]}}
+\def\newreact@leqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactREqarrow=\newreactREqarrow
+%\let\reactLEqarrow=\newreactLEqarrow
+%\let\reactreqarrow=\newreactreqarrow
+%\let\reactleqarrow=\newreactleqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing vertical reaction arrows within the scope of
+% pstricks package are defined first.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\dArrow@Element}
+% \begin{macro}{\uArrow@Element}
+% \begin{macro}{\veqArrow@Element}
+% \begin{macro}{\duArrow@Element}
+% \begin{macrocode}
+\def\dArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+\def\uArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+\def\veqArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(-0.15em,#1) -- (-0.15em,0pt);
+\draw[stealth-,line width=0.4pt]%
+(0.15em,#1) -- (0.15em,0pt);}}
+\def\duArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\veqHarpoon@Element}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\veqHarpoon@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(-0.15em,#1) -- (-0.15em,0pt);
+\draw[left to-,line width=0.4pt]%
+(0.15em,#1) -- (0.15em,0pt);}}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% vertical reaction arrows.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\react@@duarrow}
+% \begin{macrocode}
+\def\react@@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimY=#3\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt\begin{tabular}{c}%
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactdarrow}
+% \begin{macro}{\reactuarrow}
+% \begin{macro}{\reactduarrow}
+% \begin{macro}{\reactVEqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactveqarrow}%%renamed 2009/11/19
+% Vertical reaction arrows has been added.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macrocode}
+\def\newreactdarrow{%
+\@ifnextchar[{\newreact@darrow}{\newreact@darrow[0pt]}}
+\def\newreact@darrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactuarrow{%
+\@ifnextchar[{\newreact@uarrow}{\newreact@uarrow[0pt]}}
+\def\newreact@uarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\uArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactduarrow{%
+\@ifnextchar[{\newreact@duarrow}{\newreact@duarrow[0pt]}}
+\def\newreact@duarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\duArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactVEqarrow{%
+\@ifnextchar[{\newreact@VEqarrow}{\newreact@VEqarrow[0pt]}}
+\def\newreact@VEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactveqarrow{%
+\@ifnextchar[{\newreact@veqarrow}{\newreact@veqarrow[0pt]}}
+\def\newreact@veqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqHarpoon@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactdarrow=\newreactdarrow
+%\let\reactuarrow=\newreactuarrow
+%\let\reactduarrow=\newreactduarrow
+%\let\reactVEqarrow=\newreactVEqarrow
+%\let\reactveqarrow=\newreactveqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing down-sloped reaction arrows within the scope of
+% pgf package are defined first.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\seArrow@Element}
+% \begin{macrocode}
+\def\seArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+\def\nwArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% down-sloped reaction arrows.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\react@@decrarrow}
+% \begin{macrocode}
+\def\react@@decrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3\divide\@tempdimX by2\relax
+\@tempdimY=#3\relax\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt\begin{tabular}{c}
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactsearrow}
+% \begin{macro}{\reactnwrarrow}
+% Further reaction arrows have been added.
+% \changes{v1.00}{2002/05/30}{First Version for PostScript}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macrocode}
+\def\newreactsearrow{%
+\@ifnextchar[{\newreact@searrow}{\newreact@searrow[0pt]}}
+\def\newreact@searrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\seArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactnwarrow{%
+\@ifnextchar[{\newreact@nwarrow}{\newreact@nwarrow[0pt]}}
+\def\newreact@nwarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\nwArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactsearrow=\newreactsearrow
+%\let\reactnwarrow=\newreactnwarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing up-sloped reaction arrows within the scope of
+% pgf package are defined first.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\neArrow@Element}
+% \begin{macrocode}
+\def\neArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+\def\swArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% up-sloped reaction arrows.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\react@@incrarrow}
+% \begin{macrocode}
+\def\react@@incrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3 \divide\@tempdimX by2
+\@tempdimY=#3%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt
+\begin{tabular}{c}
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactnearrow}
+% \begin{macro}{\reactswarrow}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macrocode}
+\def\newreactnearrow{%
+\@ifnextchar[{\newreact@nearrow}{\newreact@nearrow[0pt]}}
+\def\newreact@nearrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\neArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactswarrow{%
+\@ifnextchar[{\newreact@swarrow}{\newreact@swarrow[0pt]}}
+\def\newreact@swarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\swArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactnearrow=\newreactnearrow
+%\let\reactswarrow=\newreactswarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped equilibrium arrows within the scope of
+% pgf package are defined first.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\deqArrow@Element}
+% \begin{macro}{\ueqArrow@Element}
+% \begin{macrocode}
+\def\deqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(1.2pt,\the\@tempdima) coordinate (X) -- (\the\@tempdima,1.2pt);%
+\draw[stealth-,line width=0.4pt]%
+(-1.2pt,\the\@tempdimb) -- (\the\@tempdimb,-1.2pt);}
+\endgroup}
+\def\ueqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(-1.2pt,1.2pt) coordinate (X) -- (\the\@tempdima,\the\@tempdimb);%
+\draw[stealth-,line width=0.4pt]%
+(1.2pt,-1.2pt) -- (\the\@tempdimb,\the\@tempdima);}
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped equilibrium harpoons within the scope of
+% pgf package are defined.
+% \changes{v1.02}{2009/11/19}{Added}
+%
+% \begin{macro}{\deqHarpoon@Element}
+% \begin{macro}{\ueqHarpoon@Element}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\deqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(1.2pt,\the\@tempdima) coordinate (X) -- (\the\@tempdima,1.2pt);%
+\draw[left to-,line width=0.4pt]%
+(-1.2pt,\the\@tempdimb) -- (\the\@tempdimb,-1.2pt);}
+\endgroup}
+\def\ueqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(-1.2pt,1.2pt) coordinate (X) -- (\the\@tempdima,\the\@tempdimb);%
+\draw[left to-,line width=0.4pt]%
+(1.2pt,-1.2pt) -- (\the\@tempdimb,\the\@tempdima);}
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactDEqarrow}
+% \begin{macro}{\reactUEqarrow}
+% \begin{macro}{\reactdeqarrow}
+% \begin{macro}{\reactueqarrow}
+% Further reaction arrows have been added.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macrocode}
+\def\newreactDEqarrow{\@ifnextchar[%]
+{\newreact@DEqarrow}{\newreact@DEqarrow[0pt]}}
+\def\newreact@DEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactUEqarrow{\@ifnextchar[%]
+{\newreact@UEqarrow}{\newreact@UEqarrow[0pt]}}
+\def\newreact@UEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactdeqarrow{\@ifnextchar[%]
+{\newreact@deqarrow}{\newreact@deqarrow[0pt]}}
+\def\newreact@deqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactueqarrow{\@ifnextchar[%]
+{\newreact@ueqarrow}{\newreact@ueqarrow[0pt]}}
+\def\newreact@ueqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+%\let\reactDEqarrow=\newreactDEqarrow
+%\let\reactUEqarrow=\newreactUEqarrow
+%\let\reactdeqarrow=\newreactdeqarrow
+%\let\reactueqarrow=\newreactueqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped double-headed arrows
+% within the scope of pgf package are defined first.
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\ulrArrow@Element}
+% \begin{macro}{\dlrArrow@Element}
+% \begin{macrocode}
+\def\ulrArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+\def\dlrArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactulrarrow}
+% \begin{macro}{\reactdlrarrow}
+% \changes{v5.00}{2010/10/01}{Maitained for PDF mode}
+% \begin{macrocode}
+\def\newreactulrarrow{\@ifnextchar[%]
+{\newreact@ulrarrow}{\newreact@ulrarrow[0pt]}}
+\def\newreact@ulrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ulrArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactdlrarrow{\@ifnextchar[%]
+{\newreact@dlrarrow}{\newreact@dlrarrow[0pt]}}
+\def\newreact@dlrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dlrArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+%\let\reactulrarrow=\newreactulrarrow
+%\let\reactdlrarrow=\newreactdlrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% A new command \verb/\electronshiftAH/ is added to defining bent (curved) arrows
+% and harpoons.
+% \changes{v1.03}{2009/12/01}{Added}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\electronshiftAH}
+% \begin{macrocode}
+\def\electronshiftAH#1(#2,#3)(#4,#5)(#6,#7){%
+\@ifnextchar(%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#6,#7)}%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#4,#5)(#6,#7)}}
+\def\electr@nshiftAH#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){%
+%\tikz[baseline=(X.base)]{%
+%\draw [#1,line width=0.4pt] (0pt,0pt) coordinate (X)
+%(#2\unitlength,#3\unitlength) ..
+%controls (#4\unitlength,#5\unitlength)
+%and (#6\unitlength,#7\unitlength) ..
+%(#8\unitlength,#9\unitlength);}
+\tikznodimension{%
+\draw [#1,line width=0.4pt]%%(0pt,0pt) coordinate (X)
+(#2\unitlength,#3\unitlength) ..
+controls (#4\unitlength,#5\unitlength)
+and (#6\unitlength,#7\unitlength) ..
+(#8\unitlength,#9\unitlength);}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% Several commmands for drawing curved harpoons are defined as follows:
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macro}{\electronshiftHru}
+% \begin{macro}{\electronshiftHrd}
+% \begin{macro}{\electronshiftHlu}
+% \begin{macro}{\electronshiftHld}
+% \begin{macrocode}
+\def\electronshiftHru{\electronshiftAH{-left to}}
+\def\electronshiftHrd{\electronshiftAH{-right to}}
+\def\electronshiftHlu{\electronshiftAH{right to-}}
+\def\electronshiftHld{\electronshiftAH{left to-}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several commmands for drawing curved arrows are defined as follows:
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macro}{\electronshiftArrowr}
+% \begin{macro}{\electronshiftArrowl}
+% \begin{macrocode}
+\def\electronshiftArrowr{\electronshiftAH{-stealth}}
+\def\electronshiftArrowl{\electronshiftAH{stealth-}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The {\sffamily chmst-pdf} package defines double-line arrows with variable
+% length for drawing reaction schemes, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% Several elements for drawing horizontal scheme arrows within the scope of
+% pgf package are defined first.
+%
+% \begin{macro}{\lSchemeArrow@Element}
+% \begin{macrocode}
+\def\lSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+\def\rSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+\def\lrSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\schemelarrow}
+% \begin{macro}{\schemerarrow}
+% \begin{macro}{\schemelrarrow}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+%
+% \begin{macrocode}
+% ********************************
+% * scheme arrows *
+% * 1991 OCT 4 S. Fujita *
+% * Revised 1992 May 24 S.Fujita * 1999/02/02 by S. Fujita
+% ******************************** Redefined 2002/05/30 by SF
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\newschemelarrow#1#2#3#4{%
+\let\Arrow@Element=\lSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemerarrow#1#2#3#4{%
+\let\Arrow@Element=\rSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemelrarrow#1#2#3#4{%
+\let\Arrow@Element=\lrSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+%%%%2009/11/19
+%\let\schemelarrow=\newschemelarrow
+%\let\schemerarrow=\newschemerarrow
+%\let\schemelrarrow=\newschemelrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Redefinition of verbatim}
+% (Deleted)
+%
+% \section{Shadowed Boxes}
+% (Deleted)
+%
+% \section{Further boxes}
+% (Deleted)
+%
+% \section{Symbols for instant photography}
+% (Deleted)
+%
+% \section{Various arrows with fixed length}
+%
+% Because various arrows with a fixed length have been defined in the \textsf{chemist} package,
+% the corresponding codes for the \textsf{chmst-pdf} package are described here.
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+%
+% \begin{macro}{\llongrightarrow}
+% \begin{macro}{\llongleftarrow}
+% \begin{macro}{\Equilibarrow}
+%
+% \begin{macrocode}
+\def\newllongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rArrow@Element{28pt}\hss}}}}
+\def\newllongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lArrow@Element{28pt}\hss}}}}
+\def\newllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lrArrow@Element{28pt}\hss}}}}
+\def\newEquilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqArrow@Element{28pt}\hss}}}}
+%\let\llongrightarrow=\newllongrightarrow
+%\let\llongleftarrow=\newllongleftarrow
+%\let\llongleftrightarrow=\newllongleftrightarrow
+%\let\Equilibarrow=\newEquilibarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\Llongrightarrow}
+% \begin{macro}{\Llongleftarrow}
+% \begin{macro}{\Llongleftrightarrow}
+%
+% \begin{macrocode}
+\def\newLlongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to28pt{\hss\lrSchemeArrow@Element{28pt}\hss}}}}
+%\let\Llongrightarrow=\newLlongrightarrow
+%\let\Llongleftarrow=\newLlongleftarrow
+%\let\Llongleftrightarrow\newLlongleftrightarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\lllongrightarrow}
+% \begin{macro}{\lllongleftarrow}
+% \begin{macro}{\lllongleftrightarrow}
+% \begin{macro}{\Equiliblongarrow}
+%
+% \begin{macrocode}
+\def\newlllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rArrow@Element{35pt}\hss}}}}
+\def\newlllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lArrow@Element{35pt}\hss}}}}
+\def\newlllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lrArrow@Element{35pt}\hss}}}}
+\def\newEquiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqArrow@Element{35pt}\hss}}}}
+%\let\lllongrightarrow=\newlllongrightarrow
+%\let\lllongleftarrow=\newlllongleftarrow
+%\let\lllongleftrightarrow=\newlllongleftrightarrow
+%\let\Equiliblongarrow=\newEquiliblongarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\Lllongrightarrow}
+% \begin{macro}{\Lllongleftarrow}
+% \begin{macro}{\Lllongleftrightarrow}
+%
+% \begin{macrocode}
+\def\newLllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to35pt{\hss\lrSchemeArrow@Element{35pt}\hss}}}}
+%\let\Lllongrightarrow=\newLllongrightarrow
+%\let\Lllongleftarrow=\newLllongleftarrow
+%\let\Lllongleftrightarrow\newLllongleftrightarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% Several elements for drawing horizontal harpoons within the scope of
+% pgf package are defined first.
+% \changes{v1.02}{2009/11/19}{Added}
+%
+% \begin{macro}{\rightharpoonupElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\rightharpoonupElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rightharpoondownElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\rightharpoondownElement#1{%
+\leavevmode
+\raise0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-right to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\leftharpoonupElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\leftharpoonupElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[right to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\leftharpoondownElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\leftharpoondownElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\llongrightharpoonup}
+% \begin{macro}{\llongrightharpoondown}
+% \begin{macro}{\llongleftharpoonup}
+% \begin{macro}{\llongleftharpoondown}
+% \begin{macrocode}
+\def\newllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{28pt}}}}
+\def\newllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{28pt}}}}
+\def\newllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{28pt}}}}
+\def\newllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{28pt}}}}
+%\let\llongrightharpoonup=\newllongrightharpoonup
+%\let\llongrightharpoondown=\newllongrightharpoondown
+%\let\llongleftharpoonup=\newllongleftharpoonup
+%\let\llongleftharpoondown=\newllongleftharpoondown
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\lllongrightharpoonup}
+% \begin{macro}{\lllongrightharpoondown}
+% \begin{macro}{\lllongleftharpoonup}
+% \begin{macro}{\lllongleftharpoondown}
+% \begin{macrocode}
+\def\newlllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{35pt}}}}
+\def\newlllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{35pt}}}}
+\def\newlllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{35pt}}}}
+\def\newlllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{35pt}}}}
+%\let\lllongrightharpoonup=\newlllongrightharpoonup
+%\let\lllongrightharpoondown=\newlllongrightharpoondown
+%\let\lllongleftharpoonup=\newlllongleftharpoonup
+%\let\lllongleftharpoondown\newlllongleftharpoondown
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v5.00}{2010/10/01}{Maintained for PDF mode}
+% \begin{macro}{\equilibarrow}
+% \begin{macro}{\equiliblongarrow}
+% \begin{macrocode}
+\def\newequilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqHarpoon@Element{28pt}\hss}}}}
+\def\newequiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqHarpoon@Element{35pt}\hss}}}}
+%\let\equilibarrow=\newequilibarrow
+%\let\equiliblongarrow=\newequiliblongarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{Chemical Corrections}
+% (Deleted)
+%
+%
+% \section{XyMcompd and XyMtab Environments}
+% (Deleted)
+%
+% \section{Useful commands}
+% (Deleted)
+%
+% \section{Double and triple bonds}
+% (Deleted)
+%
+% \section{Curved Arrows and Harpoons}
+%
+% To illustrate the mechanisms of organic reactions,
+% curved arrows are used to show an electron shift.
+% First, the macros for drawing them are
+% defined as follows.
+% \changes{v1.01}{2004/08/30}{Added at XyMTeX V4.01}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+%
+% \begin{macro}{\electronAHshift}
+%
+% \begin{macrocode}
+\def\electronAHshift{%
+\@ifnextchar[{\@electronAHshift}{\@electronAHshift[0]}}
+\def\@electronAHshift[#1](#2,#3)(#4,#5)#6{%
+\@tempcntXa=#2 \@tempcntYa=#3
+\@tempcntXb=#4 \@tempcntYb=#5
+\calcontrolpoints{#1}%defined in chemist package
+\tikznodimension{%
+\draw [#6,line width=0.4pt]%%%% (0pt,0pt) coordinate (X)
+(#2\unitlength,#3\unitlength) ..
+controls (\@cnttempa\unitlength,\@cnttempb\unitlength) and
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength) ..
+(#4\unitlength,#5\unitlength);}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Arrows having a usual arrow head are defined as follows.
+% Keywords for differentiation are: r (right) and l (left),
+% which are contained in the middle of each command name.
+%
+% \begin{macro}{\electronrshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronrshiftarrow{%
+\@ifnextchar[{\@electronrshiftarrow}{\@electronrshiftarrow[0]}}
+\def\@electronrshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-stealth}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-stealth}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-stealth}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronlshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){stealth-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){stealth-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){stealth-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+% \end{macrocode}
+% \end{macro}
+%
+% Arrows having a harpoon-type head are defined as follows.
+% Keywords for differentiation are:
+% Hru (harpoon right upward), Hrd (harpoon right downward),
+% Hlu (harpoon left upward), and Hld (harpoon left downward).
+%
+% \begin{macro}{\electronHrushiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronHrushiftarrow{%
+\@ifnextchar[{\@electronHrushiftarrow}{\@electronHrushiftarrow[0]}}
+\def\@electronHrushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-left to}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-left to}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-left to}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\electronHrdshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronHrdshiftarrow{%
+\@ifnextchar[{\@electronHrdshiftarrow}{\@electronHrdshiftarrow[0]}}
+\def\@electronHrdshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-right to}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-right to}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-right to}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronHlushiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronHlushiftarrow{%
+\@ifnextchar[{\@electronHlushiftarrow}{\@electronHlushiftarrow[0]}}
+\def\@electronHlushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){right to-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){right to-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){right to-}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\electronHrdshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined for PDF mode}
+% \begin{macrocode}
+\def\electronHldshiftarrow{%
+\@ifnextchar[{\@electronHldshiftarrow}{\@electronHldshiftarrow[0]}}
+\def\@electronHldshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){left to-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){left to-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){left to-}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Initial Setting and Switch to PDF (pgf package) Arrows}
+%
+% \begin{macro}{\chmstpdfsw}
+% \begin{macrocode}
+\def\chmstpdfsw{%setting of the chmst-pdf package
+\let\reactrarrow=\newreactrarrow%
+\let\reactlarrow=\newreactlarrow
+\let\reactlrarrow=\newreactlrarrow
+\let\reactEqarrow=\newreactEqarrow
+\let\reacteqarrow=\newreacteqarrow
+%%%%
+\let\reactREqarrow=\newreactREqarrow%
+\let\reactLEqarrow=\newreactLEqarrow
+\let\reactreqarrow=\newreactreqarrow
+\let\reactleqarrow=\newreactleqarrow
+%%%%
+\let\reactdarrow=\newreactdarrow%
+\let\reactuarrow=\newreactuarrow
+\let\reactduarrow=\newreactduarrow
+\let\reactVEqarrow=\newreactVEqarrow
+\let\reactveqarrow=\newreactveqarrow
+%%%%
+\let\reactnearrow=\newreactnearrow%
+\let\reactswarrow=\newreactswarrow
+%%%%
+\let\reactsearrow=\newreactsearrow%
+\let\reactnwarrow=\newreactnwarrow
+%%%%
+\let\reactDEqarrow=\newreactDEqarrow%
+\let\reactUEqarrow=\newreactUEqarrow
+\let\reactdeqarrow=\newreactdeqarrow
+\let\reactueqarrow=\newreactueqarrow
+%%%%
+\let\reactulrarrow=\newreactulrarrow%
+\let\reactdlrarrow=\newreactdlrarrow
+%%%%
+\let\schemelarrow=\newschemelarrow%
+\let\schemerarrow=\newschemerarrow
+\let\schemelrarrow=\newschemelrarrow
+%%%%
+\let\llongrightarrow=\newllongrightarrow%
+\let\llongleftarrow=\newllongleftarrow
+\let\llongleftrightarrow=\newllongleftrightarrow
+\let\Equilibarrow=\newEquilibarrow
+%%%
+\let\Llongrightarrow=\newLlongrightarrow%
+\let\Llongleftarrow=\newLlongleftarrow
+\let\Llongleftrightarrow\newLlongleftrightarrow
+%%%
+\let\lllongrightarrow=\newlllongrightarrow%
+\let\lllongleftarrow=\newlllongleftarrow
+\let\lllongleftrightarrow=\newlllongleftrightarrow
+\let\Equiliblongarrow=\newEquiliblongarrow
+%%%
+\let\Lllongrightarrow=\newLllongrightarrow%
+\let\Lllongleftarrow=\newLllongleftarrow
+\let\Lllongleftrightarrow\newLllongleftrightarrow
+%%%
+\let\llongrightharpoonup=\newllongrightharpoonup%
+\let\llongrightharpoondown=\newllongrightharpoondown
+\let\llongleftharpoonup=\newllongleftharpoonup
+\let\llongleftharpoondown=\newllongleftharpoondown
+%%%
+\let\lllongrightharpoonup=\newlllongrightharpoonup%
+\let\lllongrightharpoondown=\newlllongrightharpoondown
+\let\lllongleftharpoonup=\newlllongleftharpoonup
+\let\lllongleftharpoondown\newlllongleftharpoondown
+%%%
+\let\equilibarrow=\newequilibarrow%
+\let\equiliblongarrow=\newequiliblongarrow
+%%%
+}
+\let\chmstpspdfsw=\chmstpdfsw%compatibility to postscript mode
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\chmstpdfsw%initial setting
+%</chmstpdf>
+% \end{macrocode}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins
new file mode 100644
index 0000000000..b6bd7dee76
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins
@@ -0,0 +1,44 @@
+\def\batchfile{chmst-pdf.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Present version (as chmst-pdf.dtx etc.):
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+and the derived file xymtx-ps.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{chmst-pdf.drv}{t}{%
+ \from{chmst-pdf.dtx}{driver}}
+
+\generateFile{chmst-pdf.sty}{t}{%
+ \from{chmst-pdf.dtx}{chmstpdf}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty
new file mode 100644
index 0000000000..09ba298642
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty
@@ -0,0 +1,691 @@
+%%
+%% This is file `chmst-pdf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chmst-pdf.dtx (with options: `chmstpdf')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Present version (as chmst-pdf.dtx etc.):
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+%% and the derived file xymtx-ps.sty.
+%%
+%% =======================================
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `chmst-ps.dtx' ver1.00 (for LaTeX2e) 2002/05/30
+%% `chmst-ps.dtx' ver1.01 (for LaTeX2e) 2004/08/30
+%% `chmst-ps.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chmst-ps.dtx' ver1.03 (for LaTeX2e) 2009/11/26
+%% `chmst-ps.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% by Shinsaku Fujita
+%%
+\def\j@urnalname{chmst-pdf} \def\journalID{chmst-pdf}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chmst-pdf.sty ver5.00 (for LaTeX2e) 2010/10/01[SF]}
+\@ifundefined{if@@@chemtimes}{\newif\if@@@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@@@chemtimestrue}
+\@@@chemtimesfalse
+\ProcessOptions
+\if@@@chemtimes\if@@chemtimes\else
+ \PackageError{chmst-pdf}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded.}
+\fi\fi
+\if@@@chemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\RequirePackage{chemist}%
+\fi
+\RequirePackage{xymtx-pdf}%
+\newdimen\@tempdimX
+\newdimen\@tempdimY
+\def\rArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[>=stealth,->,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\let\Arrow@Element=\rArrow@Element
+\def\lArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\def\lrArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.28em) -- (#1,0.28em);}%
+\hss}\endgroup}
+\def\eqArrow@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.13em) -- (#1,0.13em);}%
+\hss}\endgroup}
+\def\eqHarpoon@Element#1{\begingroup\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.13em) -- (#1,0.13em);}%
+\hss}\endgroup}
+\def\reqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(\the\dimen1,0.13em) -- (\the\dimen2,0.13em);}%
+\endgroup}
+\def\leqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(\the\dimen1,0.43em) -- (\the\dimen2,0.43em);
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.13em) -- (#1,0.13em);}%
+\endgroup}
+\def\reqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0.43em) -- (#1,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(\the\dimen1,0.13em) -- (\the\dimen2,0.13em);}%
+\endgroup}
+\def\leqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(\the\dimen1,0.43em) -- (\the\dimen2,0.43em);
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) (0pt,0.13em) -- (#1,0.13em);
+}%
+\endgroup}
+\newdimen\@tempdimX
+\def\react@@rlarrow[#1]#2#3#4#5{\ensuremath{\mathrel{%
+\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par%
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep%
+ \noindent
+ \Arrow@Element{\the\@tempdimX}
+ \par%
+ \vskip\reactarrowseprate\reactarrowsep%
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}\endgroup}}}}
+\def\newreactrarrow{%
+\@ifnextchar[{\newreact@rarrow}{\newreact@rarrow[0pt]}}
+\def\newreact@rarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\rArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlarrow{%
+\@ifnextchar[{\newreact@larrow}{\newreact@larrow[0pt]}}
+\def\newreact@larrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlrarrow{%
+\@ifnextchar[{\newreact@lrarrow}{\newreact@lrarrow[0pt]}}
+\def\newreact@lrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lrArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactEqarrow{%
+\@ifnextchar[{\newreact@Eqarrow}{\newreact@Eqarrow[0pt]}}
+\def\newreact@Eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreacteqarrow{%
+\@ifnextchar[{\newreact@eqarrow}{\newreact@eqarrow[0pt]}}
+\def\newreact@eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqHarpoon@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactREqarrow{%
+\@ifnextchar[{\newreact@REqarrow}{\newreact@REqarrow[0pt]}}
+\def\newreact@REqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactLEqarrow{%
+\@ifnextchar[{\newreact@LEqarrow}{\newreact@LEqarrow[0pt]}}
+\def\newreact@LEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactreqarrow{%
+\@ifnextchar[{\newreact@reqarrow}{\newreact@reqarrow[0pt]}}
+\def\newreact@reqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactleqarrow{%
+\@ifnextchar[{\newreact@leqarrow}{\newreact@leqarrow[0pt]}}
+\def\newreact@leqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\dArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+\def\uArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+\def\veqArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(-0.15em,#1) -- (-0.15em,0pt);
+\draw[stealth-,line width=0.4pt]%
+(0.15em,#1) -- (0.15em,0pt);}}
+\def\duArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (0pt,0pt);}}
+\def\veqHarpoon@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(-0.15em,#1) -- (-0.15em,0pt);
+\draw[left to-,line width=0.4pt]%
+(0.15em,#1) -- (0.15em,0pt);}}
+\def\react@@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimY=#3\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt\begin{tabular}{c}%
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactdarrow{%
+\@ifnextchar[{\newreact@darrow}{\newreact@darrow[0pt]}}
+\def\newreact@darrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactuarrow{%
+\@ifnextchar[{\newreact@uarrow}{\newreact@uarrow[0pt]}}
+\def\newreact@uarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\uArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactduarrow{%
+\@ifnextchar[{\newreact@duarrow}{\newreact@duarrow[0pt]}}
+\def\newreact@duarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\duArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactVEqarrow{%
+\@ifnextchar[{\newreact@VEqarrow}{\newreact@VEqarrow[0pt]}}
+\def\newreact@VEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactveqarrow{%
+\@ifnextchar[{\newreact@veqarrow}{\newreact@veqarrow[0pt]}}
+\def\newreact@veqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqHarpoon@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\seArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+\def\nwArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+\def\react@@decrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3\divide\@tempdimX by2\relax
+\@tempdimY=#3\relax\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt\begin{tabular}{c}
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactsearrow{%
+\@ifnextchar[{\newreact@searrow}{\newreact@searrow[0pt]}}
+\def\newreact@searrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\seArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactnwarrow{%
+\@ifnextchar[{\newreact@nwarrow}{\newreact@nwarrow[0pt]}}
+\def\newreact@nwarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\nwArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\neArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+\def\swArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+\def\react@@incrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3 \divide\@tempdimX by2
+\@tempdimY=#3%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt
+\begin{tabular}{c}
+\Arrow@Element{\the\@tempdimY}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactnearrow{%
+\@ifnextchar[{\newreact@nearrow}{\newreact@nearrow[0pt]}}
+\def\newreact@nearrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\neArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactswarrow{%
+\@ifnextchar[{\newreact@swarrow}{\newreact@swarrow[0pt]}}
+\def\newreact@swarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\swArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\deqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(1.2pt,\the\@tempdima) coordinate (X) -- (\the\@tempdima,1.2pt);%
+\draw[stealth-,line width=0.4pt]%
+(-1.2pt,\the\@tempdimb) -- (\the\@tempdimb,-1.2pt);}
+\endgroup}
+\def\ueqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,line width=0.4pt]%
+(-1.2pt,1.2pt) coordinate (X) -- (\the\@tempdima,\the\@tempdimb);%
+\draw[stealth-,line width=0.4pt]%
+(1.2pt,-1.2pt) -- (\the\@tempdimb,\the\@tempdima);}
+\endgroup}
+\def\deqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(1.2pt,\the\@tempdima) coordinate (X) -- (\the\@tempdima,1.2pt);%
+\draw[left to-,line width=0.4pt]%
+(-1.2pt,\the\@tempdimb) -- (\the\@tempdimb,-1.2pt);}
+\endgroup}
+\def\ueqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(-1.2pt,1.2pt) coordinate (X) -- (\the\@tempdima,\the\@tempdimb);%
+\draw[left to-,line width=0.4pt]%
+(1.2pt,-1.2pt) -- (\the\@tempdimb,\the\@tempdima);}
+\endgroup}
+\def\newreactDEqarrow{\@ifnextchar[%]
+{\newreact@DEqarrow}{\newreact@DEqarrow[0pt]}}
+\def\newreact@DEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactUEqarrow{\@ifnextchar[%]
+{\newreact@UEqarrow}{\newreact@UEqarrow[0pt]}}
+\def\newreact@UEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactdeqarrow{\@ifnextchar[%]
+{\newreact@deqarrow}{\newreact@deqarrow[0pt]}}
+\def\newreact@deqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactueqarrow{\@ifnextchar[%]
+{\newreact@ueqarrow}{\newreact@ueqarrow[0pt]}}
+\def\newreact@ueqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\ulrArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,0pt) coordinate (X) -- (#1,#1);}}
+\def\dlrArrow@Element#1{%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,line width=0.4pt]%
+(0pt,#1) coordinate (X) -- (#1,0pt);}}
+\def\newreactulrarrow{\@ifnextchar[%]
+{\newreact@ulrarrow}{\newreact@ulrarrow[0pt]}}
+\def\newreact@ulrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ulrArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactdlrarrow{\@ifnextchar[%]
+{\newreact@dlrarrow}{\newreact@dlrarrow[0pt]}}
+\def\newreact@dlrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dlrArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\electronshiftAH#1(#2,#3)(#4,#5)(#6,#7){%
+\@ifnextchar(%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#6,#7)}%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#4,#5)(#6,#7)}}
+\def\electr@nshiftAH#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){%
+\tikznodimension{%
+\draw [#1,line width=0.4pt]%%(0pt,0pt) coordinate (X)
+(#2\unitlength,#3\unitlength) ..
+controls (#4\unitlength,#5\unitlength)
+and (#6\unitlength,#7\unitlength) ..
+(#8\unitlength,#9\unitlength);}%
+}%
+\def\electronshiftHru{\electronshiftAH{-left to}}
+\def\electronshiftHrd{\electronshiftAH{-right to}}
+\def\electronshiftHlu{\electronshiftAH{right to-}}
+\def\electronshiftHld{\electronshiftAH{left to-}}
+\def\electronshiftArrowr{\electronshiftAH{-stealth}}
+\def\electronshiftArrowl{\electronshiftAH{stealth-}}
+\def\lSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+\def\rSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-stealth,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+\def\lrSchemeArrow@Element#1{\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[stealth-stealth,double distance=0.16em,line width=0.4pt]%
+(0pt,0.28em) coordinate (X) -- (#1,0.28em);}%
+\hss}}
+\def\newschemelarrow#1#2#3#4{%
+\let\Arrow@Element=\lSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemerarrow#1#2#3#4{%
+\let\Arrow@Element=\rSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemelrarrow#1#2#3#4{%
+\let\Arrow@Element=\lrSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+%%%%2009/11/19
+\def\newllongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rArrow@Element{28pt}\hss}}}}
+\def\newllongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lArrow@Element{28pt}\hss}}}}
+\def\newllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lrArrow@Element{28pt}\hss}}}}
+\def\newEquilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqArrow@Element{28pt}\hss}}}}
+\def\newLlongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to28pt{\hss\lrSchemeArrow@Element{28pt}\hss}}}}
+\def\newlllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rArrow@Element{35pt}\hss}}}}
+\def\newlllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lArrow@Element{35pt}\hss}}}}
+\def\newlllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lrArrow@Element{35pt}\hss}}}}
+\def\newEquiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqArrow@Element{35pt}\hss}}}}
+\def\newLllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to35pt{\hss\lrSchemeArrow@Element{35pt}\hss}}}}
+\def\rightharpoonupElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-left to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+\def\rightharpoondownElement#1{%
+\leavevmode
+\raise0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[-right to,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+\def\leftharpoonupElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[right to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+\def\leftharpoondownElement#1{%
+\leavevmode
+\lower0.2pt\hbox to#1{\hss%
+\tikz[baseline=(X.base)]{%
+\draw[left to-,line width=0.4pt]%
+(0pt,0pt) coordinate (X)
+(0pt,0.28em) -- (#1,0.28em);}%
+\hss}}
+\def\newllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{28pt}}}}
+\def\newllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{28pt}}}}
+\def\newllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{28pt}}}}
+\def\newllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{28pt}}}}
+\def\newlllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{35pt}}}}
+\def\newlllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{35pt}}}}
+\def\newlllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{35pt}}}}
+\def\newlllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{35pt}}}}
+\def\newequilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqHarpoon@Element{28pt}\hss}}}}
+\def\newequiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqHarpoon@Element{35pt}\hss}}}}
+\def\electronAHshift{%
+\@ifnextchar[{\@electronAHshift}{\@electronAHshift[0]}}
+\def\@electronAHshift[#1](#2,#3)(#4,#5)#6{%
+\@tempcntXa=#2 \@tempcntYa=#3
+\@tempcntXb=#4 \@tempcntYb=#5
+\calcontrolpoints{#1}%defined in chemist package
+\tikznodimension{%
+\draw [#6,line width=0.4pt]%%%% (0pt,0pt) coordinate (X)
+(#2\unitlength,#3\unitlength) ..
+controls (\@cnttempa\unitlength,\@cnttempb\unitlength) and
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength) ..
+(#4\unitlength,#5\unitlength);}%
+}
+\def\electronrshiftarrow{%
+\@ifnextchar[{\@electronrshiftarrow}{\@electronrshiftarrow[0]}}
+\def\@electronrshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-stealth}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-stealth}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-stealth}%
+\fi\fi}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){stealth-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){stealth-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){stealth-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+\def\electronHrushiftarrow{%
+\@ifnextchar[{\@electronHrushiftarrow}{\@electronHrushiftarrow[0]}}
+\def\@electronHrushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-left to}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-left to}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-left to}%
+\fi\fi}
+
+\def\electronHrdshiftarrow{%
+\@ifnextchar[{\@electronHrdshiftarrow}{\@electronHrdshiftarrow[0]}}
+\def\@electronHrdshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-right to}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-right to}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-right to}%
+\fi\fi}
+\def\electronHlushiftarrow{%
+\@ifnextchar[{\@electronHlushiftarrow}{\@electronHlushiftarrow[0]}}
+\def\@electronHlushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){right to-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){right to-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){right to-}%
+\fi\fi}
+
+\def\electronHldshiftarrow{%
+\@ifnextchar[{\@electronHldshiftarrow}{\@electronHldshiftarrow[0]}}
+\def\@electronHldshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){left to-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){left to-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){left to-}%
+\fi\fi}
+\def\chmstpdfsw{%setting of the chmst-pdf package
+\let\reactrarrow=\newreactrarrow%
+\let\reactlarrow=\newreactlarrow
+\let\reactlrarrow=\newreactlrarrow
+\let\reactEqarrow=\newreactEqarrow
+\let\reacteqarrow=\newreacteqarrow
+%%%%
+\let\reactREqarrow=\newreactREqarrow%
+\let\reactLEqarrow=\newreactLEqarrow
+\let\reactreqarrow=\newreactreqarrow
+\let\reactleqarrow=\newreactleqarrow
+%%%%
+\let\reactdarrow=\newreactdarrow%
+\let\reactuarrow=\newreactuarrow
+\let\reactduarrow=\newreactduarrow
+\let\reactVEqarrow=\newreactVEqarrow
+\let\reactveqarrow=\newreactveqarrow
+%%%%
+\let\reactnearrow=\newreactnearrow%
+\let\reactswarrow=\newreactswarrow
+%%%%
+\let\reactsearrow=\newreactsearrow%
+\let\reactnwarrow=\newreactnwarrow
+%%%%
+\let\reactDEqarrow=\newreactDEqarrow%
+\let\reactUEqarrow=\newreactUEqarrow
+\let\reactdeqarrow=\newreactdeqarrow
+\let\reactueqarrow=\newreactueqarrow
+%%%%
+\let\reactulrarrow=\newreactulrarrow%
+\let\reactdlrarrow=\newreactdlrarrow
+%%%%
+\let\schemelarrow=\newschemelarrow%
+\let\schemerarrow=\newschemerarrow
+\let\schemelrarrow=\newschemelrarrow
+%%%%
+\let\llongrightarrow=\newllongrightarrow%
+\let\llongleftarrow=\newllongleftarrow
+\let\llongleftrightarrow=\newllongleftrightarrow
+\let\Equilibarrow=\newEquilibarrow
+%%%
+\let\Llongrightarrow=\newLlongrightarrow%
+\let\Llongleftarrow=\newLlongleftarrow
+\let\Llongleftrightarrow\newLlongleftrightarrow
+%%%
+\let\lllongrightarrow=\newlllongrightarrow%
+\let\lllongleftarrow=\newlllongleftarrow
+\let\lllongleftrightarrow=\newlllongleftrightarrow
+\let\Equiliblongarrow=\newEquiliblongarrow
+%%%
+\let\Lllongrightarrow=\newLllongrightarrow%
+\let\Lllongleftarrow=\newLllongleftarrow
+\let\Lllongleftrightarrow\newLllongleftrightarrow
+%%%
+\let\llongrightharpoonup=\newllongrightharpoonup%
+\let\llongrightharpoondown=\newllongrightharpoondown
+\let\llongleftharpoonup=\newllongleftharpoonup
+\let\llongleftharpoondown=\newllongleftharpoondown
+%%%
+\let\lllongrightharpoonup=\newlllongrightharpoonup%
+\let\lllongrightharpoondown=\newlllongrightharpoondown
+\let\lllongleftharpoonup=\newlllongleftharpoonup
+\let\lllongleftharpoondown\newlllongleftharpoondown
+%%%
+\let\equilibarrow=\newequilibarrow%
+\let\equiliblongarrow=\newequiliblongarrow
+%%%
+}
+\let\chmstpspdfsw=\chmstpdfsw%compatibility to postscript mode
+\chmstpdfsw%initial setting
+\endinput
+%%
+%% End of file `chmst-pdf.sty'.
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx
new file mode 100644
index 0000000000..5b715819b1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx
@@ -0,0 +1,1362 @@
+% \iffalse meta-comment
+%% File: xymtx-pdf.dtx
+%
+% Copyright 2002,2004,2005,2009,2010,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (1) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+% (2) Shinsaku Fujita, ``XyMTeX. Typesetting Chemical Structural
+% Formulas'' Addison-Wesley, New York (1997).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files xymtx-pdf.dtx and xymtx-pdf.ins
+% and the derived file xymtx-pdf.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and
+% Mathematical Chemistry
+% shinsaku_fujita@nifty.com
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 02, 2005}
+% \def\versi@nno{ver4.03a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver4.04a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{November 05, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-pdf}
+% \def\versi@ndate{October 01, 2010}
+% \def\versi@nno{ver5.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-pdf}
+% \def\versi@ndate{November 23, 2010}
+% \def\versi@nno{ver5.00b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-pdf}
+% \def\versi@ndate{March 10, 2013}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-pdf}
+% \def\versi@ndate{May 27, 2013}
+% \def\versi@nno{ver5.01bb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1761}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2002/05/30}{first edition for LaTeX2e}
+% \changes{v4.01}{2004/08/30}{Adjust for XyMTeX version 4.01}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/06/20}{Wave bonds for stereochemistry}
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% \changes{v4.04a}{2009/06/15}{Bug fix for \cs{\Put@@@@Direct}}
+% \changes{v4.05}{2009/11/05}{Bug fix for \cs{\Put@@@@Direct}; pLaTeXe vs. LaTeXe}
+% \changes{v5.00}{2010/10/01}{Change the PostScript mode into the PDF mode}
+% \changes{v5.00b}{2010/11/23}{added the pgfcore package for pdflatex}
+% \changes{v5.01b}{2013/03/10}{Bug fix for \cs{zahyozobun}}
+% \changes{v5.01bb}{2013/05/27}{\cs{WedgeAsSubstX} etc.}
+% \changes{v5.01}{2013/06/21}{\cs{WavyAsSubst} etc.}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{xymtx-pdf.dtx}[2013/06/21 v5.01 xymtx-pdf package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{xymtx-pdf.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Chemistry Conventions by {\sffamily xymtx-pdf.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{xymtx-pdf.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{xymtx-pdf:intro}
+%
+% This package aims at converting XyMTeX documents into PDF by
+% using the dvipdfm(x) converter or its equivalent. The codes
+% contained in xymtx-ps.dtx for the PostScript mode of XyMTeX
+% have been changed and extended to match direct conversion
+% into PDF files.
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% xymtxpdf & xymtx-pdf.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*xymtxpdf>
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{xymtx-pdf}
+\def\versi@ndate{June 21, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf ccycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+% The global setting of unit by |\psset| has caused imcompatibility
+% with the prosper package and so has been changed into a local setting.
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% the prosper package}
+% \changes{v5.00b}{2010/11/23}{added the pgfcore package for pdflatex}
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\RequirePackage{tikz}
+\RequirePackage{pgfcore}%%%added 2010/11/23 by S. Fujita
+\RequirePackage{xcolor}
+\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,fit,calc}
+\unitlength=0.1pt
+\def\white{\color{white}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+% \end{macrocode}
+%
+% Temporary count registers:
+% \begin{macrocode}
+\newcount\XyMTeXnuma
+\newcount\XyMTeXnumb
+\newcount\XyMTeXnumc
+\newcount\XyMTeXnumd
+\newcount\XyMTeXnume
+\newcount\XyMTeXnumf
+\newcount\XyMTeXnumg
+\newcount\XyMTeXnumh
+\newcount\XyMTeXnumi
+\newcount\XyMTeXcnta
+\newcount\XyMTeXcntb
+% \end{macrocode}
+%
+% Temporary dimension registers:
+% \begin{macrocode}
+\newdimen\XyMTeXdima
+\newdimen\XyMTeXdimb
+\newdimen\XyMTeXdimc
+\newdimen\XyMTeXdimd
+\newdimen\XyMTeXdime
+% \end{macrocode}
+%
+% Temporary box registers:
+% \begin{macrocode}
+\newbox\BondBox
+% \end{macrocode}
+%
+%
+% The macro |\Put@@@@Line| can draw dashed bonds or wedged bonds for supporting
+% stereochemistry. Two switches are available as follows:
+%
+% \begin{macro}{changedashtowedge}
+% \begin{macro}{changewedgetodash}
+% \changes{v4.02}{2004/12/20}{For PS mode: Switch for wedged bonds}
+% \begin{macrocode}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setUnitHalfScale}
+%
+% The macro |\setUnitHalfScale| calculates the half of a line width
+% (such as |\thinLineWidth| and |\thickLineWidth|), which is used
+% to adjust the staring point of a bond line. This macro is used
+% in |\PUT@@@@bondLINE|.
+%
+% \begin{macro}{\NumRound}
+% \begin{macro}{\UHalfScaleGain}
+% These macros result in, e.g.,
+% 0.4pt $\rightarrow$ 0.4/0.1 (/2) $\rightarrow$ 1.999 $\rightarrow$ 2.
+% (Not used)
+%
+% \begin{macrocode}
+\def\NumRound#1.#2#3\@nil{%shishagonyu
+\begingroup
+\XyMTeXcnta=0 \XyMTeXcntb=0
+\XyMTeXcnta=#1 %%\typeout{A:\the\XyMTeXcnta;}
+\XyMTeXcntb=#2 %%\typeout{B:\the\XyMTeXcntb;}
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi\xdef\@UHalfScale{\the\XyMTeXcnta}\endgroup}
+{\catcode`\p=12 \catcode`\t=12
+\gdef\UHalfScaleGain#1pt{\gdef\@@UHalfScale{#1}}}
+\def\setUnitHalfScale#1{%
+\@tempdima=#1 \dimen0=0.1pt
+\@tempcnta=\@tempdima
+\@tempcntb=\dimen0
+\multiply\@tempcntb by10
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\multiply\@tempdima by5 %%\typeout{D:\the\@tempdima}
+\expandafter\UHalfScaleGain\the\@tempdima%
+\expandafter\NumRound\@@UHalfScale\@nil
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\PutSimpleBondBox}
+% \changes{v5.00}{2010/10/01}{For PDF mode: macro for adjusting the position of
+% a simple bond (straight line, dashed line, etc.)}
+% The macro |\PutSimpleBondBox| is used to adjust the coordinates of joint positions
+% by using the macros |\PUT@@@@bondLINE| and |h@shedd@shbond|, which draw simple bonds
+% such as straight lines and dashed lines.
+%
+% \begin{macrocode}
+%\newbox\BondBox
+\def\PutSimpleBondBox(#1,#2)(#3,#4)#5{%for simple bonds
+\setbox\BondBox=\hbox{#5}%
+\XyMTeXdima=#1\unitlength
+\XyMTeXdimb=#3\unitlength
+\XyMTeXdimc=\thickLineWidth
+\divide\XyMTeXdimc by2%adjustment by the half of a line width
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdimd=\XyMTeXdima
+\XyMTeXdime=\XyMTeXdimb
+\advance\XyMTeXdime by -\XyMTeXdimd
+\advance\XyMTeXdime by -\XyMTeXdimc
+\put(#1,#2){\kern\XyMTeXdime\box\BondBox}%
+\else
+\ifdim \XyMTeXdima=\XyMTeXdimb\relax
+\XyMTeXdimd=-\XyMTeXdimc
+%%%\put(#1,#2){\kern\XyMTeXdimd\raise\XyMTeXdimd\hbox{\box\BondBox}}%
+\put(#1,#2){\kern\XyMTeXdimd\box\BondBox}%
+\else
+\XyMTeXdimd=-\XyMTeXdimc
+\put(#1,#2){\kern\XyMTeXdimd\box\BondBox}%
+\fi\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tikznodimension}
+% \changes{v5.00}{2010/10/01}{For PDF mode: macro for typesetting an object
+% as having no dimensions. }
+% The macro |\tikznodimension| is used in place of the macro |\PutSimpleBondBox|, which
+% is originally used to adjust the coordinates of joint positions.
+% Thereby, the macros |\PUT@@@@bondLINE| and |h@shedd@shbond| have a more rigorous basis
+% in putting such simple bonds as straight lines and dashed lines.
+%
+% \begin{macrocode}
+\def\tikznodimension#1{\tikz{%
+\pgfpathrectangle{\pgfpointorigin}{\pgfpointorigin}
+\pgfusepath{use as bounding box} % draws nothing
+#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@@@bondLINE| is used in the macro |\Put@@@@Line|,
+% which draws a bond line. This macro relies on the |\tikz| graphic
+% enviroment.
+%
+% \begin{macro}{\PUT@@@@bondLINE}
+% \begin{macro}{\PutPDFLine}
+% \changes{v5.00}{2010/10/01}{For PDF mode: macro for
+% drawing a straight-line bond after adjusting its joint position}
+% \begin{macrocode}
+\def\PUT@@@@bondLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[line width=#5,line cap=round]%
+%(#1\unitlength,#2\unitlength) coordinate (X) -- (#3\unitlength,#4\unitlength);}}%
+%\PutSimpleBondBox(#1,#2)(#3,#4){\box0}%
+\tikznodimension{%
+\draw[line width=#5]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\endgroup
+}
+\let\PutPDFLine=\PUT@@@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@@@bondLINE%for user's use
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\PutBondBox}
+% \changes{v5.00}{2010/10/01}{For PDF mode: a macro for putting a bond box
+% after adjusting coordinates. }
+% The macro |\PutBondBox| put a bond box at an adjusted point,
+% where the bond box contain a wadge or wavy bond drawn by using
+% the pgf package (\verb/\tikz/). The macro is used in the
+% macros |\PUT@@@@wedgeLINE| and |\PUT@@@@wavyLINE|.
+% \begin{macrocode}
+%\newbox\BondBox
+\def\PutBondBox(#1,#2)(#3,#4)#5{%for wedge and wavy bonds
+\setbox\BondBox=\hbox{#5}%
+\XyMTeXdima=#1\unitlength
+\XyMTeXdimb=#3\unitlength
+\XyMTeXdimc=4pt%
+\divide\XyMTeXdimc by2%adjustment by the half of a line width
+\if@vertbond
+\XyMTeXdimd=\wd\BondBox
+\divide\XyMTeXdimd by2\relax
+\put(#1,#2){\kern-1.2\XyMTeXdimd\box\BondBox}%%tentative factor 1.2
+\else
+\if@horizbond
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdimd=\XyMTeXdima
+\XyMTeXdime=\XyMTeXdimb
+\advance\XyMTeXdime by -\XyMTeXdimd
+\put(#1,#2){\kern-5\unitlength\kern\XyMTeXdime\box\BondBox}%tentative factor 5 %%%
+\else
+\put(#1,#2){\kern-1.2\unitlength\box\BondBox}%tentative factor 1.2
+\fi
+\else
+%%
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdime=-\wd\BondBox
+\put(#1,#2){\kern0.2\unitlength\kern\XyMTeXdime\box\BondBox}%tentative shift factor
+\else
+\ifdim \wd\BondBox<4.3pt\relax
+\XyMTeXdimd=\wd\BondBox
+\divide\XyMTeXdimd by2\relax
+\put(#1,#2){\kern-1.3\XyMTeXdimd\box\BondBox}%tentative shift factor 1.3
+%
+\else
+\put(#1,#2){\kern-3\unitlength\box\BondBox}%tentative shift factor 3
+\fi\fi
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@@@wedgeLINE| is used in the macro |\Put@@@@Line|,
+% which draws a bond wedge. This macro relies on the |\tikz| graphic
+% enviroment.
+%
+% \begin{macro}{\PUT@@@@wedgeLINE}
+% \changes{v5.00}{2010/10/01}{For PDF mode: a macro for putting a wedge bond. }
+% \begin{macrocode}
+\newif\if@vertbond \@vertbondfalse
+\newif\if@horizbond \@horizbondfalse
+\def\PUT@@@@wedgeLINE(#1,#2)(#3,#4)(#5,#6){%
+\begingroup
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\filldraw[black,line cap=round]%
+%(#1\unitlength,#2\unitlength) coordinate (X) -- (#3\unitlength,#4\unitlength)%
+%-- (#5\unitlength,#6\unitlength) -- (#1\unitlength,#2\unitlength);}}%
+%\PutBondBox(#1,#2)(#3,#4){\box0}%adjustment
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength)%
+-- (#5\unitlength,#6\unitlength) -- (#1\unitlength,#2\unitlength);}%
+\endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@@@wavyLINE| is used in the macro |\Put@@@@Line|,
+% which draws a wavy bond. This macro relies on the |\tikz| graphic
+% enviroment.
+%
+% \begin{macro}{\PUT@@@@wavyLINE}
+% \changes{v5.00}{2010/10/01}{For PDF mode: a macro for putting a wavy bond. }
+% \begin{macrocode}
+\def\PUT@@@@wavyLINE(#1,#2)(#3,#4){%
+\begingroup
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[line cap=round,decorate,
+%decoration={coil,aspect=0,segment length=2pt,amplitude=1pt}]%
+%(#1\unitlength,#2\unitlength) coordinate (X) -- (#3\unitlength,#4\unitlength);}}%
+%\PutBondBox(#1,#2)(#3,#4){\box0}%adjustment
+\tikznodimension{%
+\draw[decorate,
+decoration={coil,aspect=0,segment length=2pt,amplitude=1pt}]%
+(#1\unitlength,#2\unitlength) coordinate (X) -- (#3\unitlength,#4\unitlength);}%
+\endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Put@@@@Line}
+% \changes{v4.02}{2004/12/20}{For PS modes: Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/07/20}{For PS modes: Switch for wave bonds}
+% \changes{v5.00}{2010/10/01}{For PDF mode: a macro for putting a bond line. }
+%
+% Temporary count registers:
+% \begin{macrocode}
+\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
+\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
+\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\gdef\Put@@@@Line(#1,#2)(#3,#4)#5{%
+\begingroup
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax
+%
+\if@thicklinesw
+\if@wedgesw
+\ifmolfront%bold dash bond for skeletal bond for pyranose etc.
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\else
+\if@skbondlist%bold dash bond skeletal bond for general cases
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\else%wedged bond
+\ifnum#1=#3
+\@vertbondtrue\@horizbondfalse
+\else
+\ifnum#2=#4
+\@vertbondfalse\@horizbondtrue
+\else
+\@vertbondfalse\@horizbondfalse
+\fi\fi
+\stereo@wedgedimension(#3,#4){10}%
+\PUT@@@@wedgeLINE(#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi\fi
+\else
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\fi
+\else
+\ifwavebond
+\ifnum#1=#3
+\@vertbondtrue\@horizbondfalse
+\else
+\ifnum#2=#4
+\@vertbondfalse\@horizbondtrue
+\else
+\@vertbondfalse\@horizbondfalse
+\fi\fi
+\PUT@@@@wavyLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thinLineWidth}%
+\fi
+\fi
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of Put@@@@Line
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimension| calculates the coordinates of three positions
+% for drawing a wedged bond, which is drawn by the |\pspolygon| command of the PSTricks package.
+%
+% \begin{macro}{stereo@wedgedimension}
+% \changes{v4.02}{2004/12/20}{For PS mode: Wedged bonds for stereochemistry}
+% \begin{macrocode}
+\newif\if@wedgeadjust
+\def\stereo@wedgedimension(#1,#2)#3{%
+\@tempcntXb=0\relax
+\@tempcntYb=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=0\relax
+%%
+\@wedgeadjustfalse
+\ifnum#1<0 \@tempcntzz=-#1\else\@tempcntzz=#1\fi
+\ifnum#2<0 \@tempcntzzz=-#2\else\@tempcntzzz=#2\fi
+\ifnum#1=0\else
+\multiply\@tempcntzzz by10\relax \divide\@tempcntzzz by\@tempcntzz\fi%% (3/5)x10=6
+\ifnum\@tempcntzzz>7\relax\else\@wedgeadjusttrue\fi
+%%one point of wedge
+\ifnum#1=0\relax
+\@tempcntXb=#3 \advance\@tempcntXb by8\relax
+\@tempcntYb=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXb=0\relax
+\@tempcntYb=#3 \advance\@tempcntYb by8\relax
+\else
+\@tempcntXb=#3\relax
+\@tempcntYb=-#3\relax
+\if@wedgeadjust
+\advance\@tempcntXb by8\relax
+\advance\@tempcntYb by-8\relax
+\fi
+\multiply\@tempcntXb by#2\relax\multiply\@tempcntXb by10\relax
+\divide\@tempcntXb by#1\relax\divide\@tempcntXb by10\relax\fi\fi
+\advance\@tempcntXb by\@tempcntXa\relax
+\advance\@tempcntYb by\@tempcntYa\relax
+%%other point of wedge
+\ifnum#1=0\relax
+\@tempcntXc=-#3 \advance\@tempcntXc by-8\relax
+\@tempcntYc=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=-#3 \advance\@tempcntYc by-8\relax
+\else
+\@tempcntXc=-#3\relax
+\@tempcntYc=#3\relax
+\if@wedgeadjust
+\advance\@tempcntXc by-6\relax
+\advance\@tempcntYc by6\relax
+\fi
+\multiply\@tempcntXc by#2\relax\multiply\@tempcntXc by10\relax
+\divide\@tempcntXc by#1\relax\divide\@tempcntXc by10\relax\fi\fi
+\advance\@tempcntXc by\@tempcntXa\relax
+\advance\@tempcntYc by\@tempcntYa\relax
+}%%end of \stereo@wedgedimension
+% \end{macrocode}
+% \end{macro}
+%
+% The |Put@@@@Direct| macro is the same as the original command
+% |\put| for the LaTeX picture environment.
+%
+% \begin{macro}{Put@@@@Direct}
+% \changes{v5.00}{2010/10/01}{For PDF mode: a macro for putting an object. }
+% \begin{macrocode}
+\let\Put@@@@Direct=\put
+% \end{macrocode}
+% \end{macro}
+%
+% The macros |\Put@@@@oCircle| and |\Put@@@@sCircle| draw
+% small circles for designating original points.
+%
+% \begin{macro}{\Put@@@@oCircle}
+% \begin{macrocode}
+\def\Put@@@@oCircle(#1,#2)#3{\begingroup%
+ \@tempcntz=#3 \divide\@tempcntz by2\relax
+%dimension \pgf@xx or \pgf@yy overflow
+%\setbox0=\hbox{%
+%{\tikz[baseline=(X.base)]{%
+%\draw[scale=\@UScale,line width=0.4pt]%
+%(#1,#2) coordinate (X) circle (\@tempcntz);}}}%
+\setbox0=\hbox{%
+{\tikz[baseline=(X.base)]{%
+\draw[line width=0.4pt]%
+(#1\unitlength,#2\unitlength) coordinate (X) circle (\@tempcntz\unitlength);}}}%
+\put(#1,#2){\kern-0.5\wd0\hbox{\box0}}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Put@@@@sCircle}
+% \begin{macrocode}
+\def\Put@@@@sCircle(#1,#2)#3{\begingroup%
+ \@tempcntz=#3 \divide\@tempcntz by2\relax
+%dimension pgf@xx or pgf@yy overflow
+%\setbox0=\hbox{%
+%{\tikz[baseline=(X.base)]{%
+%\draw[scale=\@UScale,line width=2pt]%
+%(#1,#2) coordinate (X) circle (\@tempcntz);}}}%
+\setbox0=\hbox{%
+{\tikz[baseline=(X.base)]{%
+\draw[line width=2pt]%
+(#1\unitlength,#2\unitlength) coordinate (X) circle (\@tempcntz\unitlength);}}}%
+\put(#1,#2){\kern-0.5\wd0\hbox{\box0}}%
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Dotted lines by the old macro |\d@@t@rline| are changed into hashed dash bonds
+% in the new macro |\d@@t@@rline| (|\@wedgeswfalse|). If |\@wedgeswtrue| is
+% declared (default), the new macro draws a hashed wedged bonds.
+%
+% \begin{macro}{d@@t@@rline}
+% \changes{v4.02}{2004/12/20}{Hashed wedged bonds for stereochemistry}
+% \changes{v5.00}{2010/10/01}{Renamed for PDF mode}
+% \begin{macrocode}
+\def\d@@t@@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\if@hasheddashsw
+ \@ifundefined{tikz}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \h@shedd@shbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+\if@skbondlist%hashed dash bond skeletal bond for general cases
+ \@ifundefined{tikz}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \h@shedd@shbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+ \h@shedw@dgebond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\fi\fi
+}%end of \d@@t@@rline
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\h@shedd@shbond| works in the macro |\d@@t@@rline| for
+% drawing a hased dash bond.
+%
+% \begin{macro}{h@shedd@shbond}
+% \changes{v4.02}{2004/12/20}{For PS mode: Hashed dash bonds for stereochemistry}
+% \changes{v5.00}{2010/10/01}{Renamed for PDF mode: macro for
+% drawing a hashed dash bond after adjusting its joint position}
+% \begin{macrocode}
+\def\h@shedd@shbond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntzz=12\relax
+\@tempcntzzz=-30\relax%almost no shortening
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+%\ifdim\unitlength>0.08pt
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[dashed,line width=\thickLineWidth,dash pattern=on 1pt off 1.2pt]%
+%(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+%(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}}%
+%\else
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[dashed,line width=\thickLineWidth,dash pattern=on 0.8pt off 1pt]%
+%(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+%(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}}%
+%\fi
+%\PutSimpleBondBox(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc){\box0}%
+\ifdim\unitlength>0.08pt
+\tikznodimension{%
+\draw[dashed,line width=\thickLineWidth,dash pattern=on 1pt off 1.2pt]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\else
+\tikznodimension{%
+\draw[dashed,line width=\thickLineWidth,dash pattern=on 0.8pt off 1pt]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\fi
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\h@shedw@dgebond| works in the macro |\d@@t@@rline| for
+% drawing a hashed wedged bond.
+%
+%
+% \begin{macro}{h@shedw@dgebond}
+% \changes{v4.02}{2004/12/20}{For PS mode: Hashed wedged bonds for stereochemistry}
+% \changes{v5.00}{2010/10/01}{For PDF mode: Hashed wedged bonds for stereochemistry}
+% \begin{macrocode}
+\def\h@shedw@dgebond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntXa=#8\relax
+\@tempcntYa=#9\relax
+\stereo@wedgedimension(#3,#4){10}%
+\XyMTeXnumf=\@tempcntXb
+\XyMTeXnumg=\@tempcntYb
+\XyMTeXnumh=\@tempcntXc
+\XyMTeXnumi=\@tempcntYc
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\filldraw[black,line cap=round]%
+%(#1\unitlength,#2\unitlength) coordinate (X) --%
+%(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+%(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+%\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+%(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+%(\@tempcntXc\unitlength,\@tempcntYc\unitlength);%
+%}}%
+%\PutBondBox(#1,#2)(\the\@tempcntXc,\the\@tempcntYc){\box0}%
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) --%
+(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\endgroup
+}%%end of \h@shedw@dgebond
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\bond@shorten| works in the macros |\h@shedd@shbond| and |\h@shedw@dgebond| for
+% shortening the resulting hashed bonds. This macro calculates the coordinates of the staring
+% point and the end point.
+%
+% \begin{macro}{bond@shorten}
+% \changes{v4.02}{2004/12/20}{Hashed forms for dash and wedged bonds}
+% \begin{macrocode}
+\def\bond@shorten(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\@tempcntXb=#8\relax
+\@tempcntYb=#9\relax
+\advance\@tempcntXb by-#6\relax \divide\@tempcntXb by\@tempcntzz\relax
+\advance\@tempcntYb by-#7\relax \divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#6\relax
+\advance\@tempcntYb by#7\relax
+\@tempcntXc=#8\relax
+\@tempcntYc=#9\relax
+\advance\@tempcntXc by-#6\relax \divide\@tempcntXc by\@tempcntzzz\relax
+\advance\@tempcntYc by-#7\relax \divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#8\relax
+\advance\@tempcntYc by#9\relax
+}%%end of \bondshorten
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wedges, where
+% |\WedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{WedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{For PS mode: Wedged skeletal bonds}
+% \changes{v5.00}{2010/10/01}{For PDF mode: Checked OK}
+% \begin{macrocode}
+\def\WedgeAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstPDF%for compatibility to PS mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimensionX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\stereo@wedgedimension|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{stereo@wedgedimensionX}
+% \changes{v5.01}{2013/05/27}{dimension of wedge}
+% \begin{macrocode}
+\def\stereo@wedgedimensionX(#1,#2)(#3,#4){%
+\@ifnextchar[{\stereo@@wedgedimensionX(#1,#2)(#3,#4)}%
+{\stereo@@wedgedimensionX(#1,#2)(#3,#4)[10]}}
+\def\stereo@@wedgedimensionX(#1,#2)(#3,#4)[#5]{%
+\@tempcnta=-#1\relax
+\advance\@tempcnta by#3\relax
+%%\typeout{KKK:\the\@tempcnta}%
+\@tempcntb=-#2\relax
+\advance\@tempcntb by#4\relax
+%%%\typeout{LLL:\the\@tempcntb}%
+\stereo@wedgedimension(\the\@tempcnta,\the\@tempcntb){#5}%
+%%%\typeout{MMM; (\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)}
+\advance\@tempcntXb by#3\relax
+\advance\@tempcntYb by#4\relax
+\advance\@tempcntXc by#3\relax
+\advance\@tempcntYc by#4\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{For PDF mode: Checked OK}
+% \begin{macrocode}
+\def\WedgeAsSubstXPDF(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXPDF(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXPDF(#1,#2)(#3,#4)[10]}}
+\def\Wedge@AsSubstXPDF(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\stereo@wedgedimensionX(#1,#2)(#3,#4)[#5]%
+\PUT@@@@wedgeLINE(#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXPDF%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\NumR@und| gives a round integer.
+% For example 1.99996 is transformed into 2. A negative
+% value is permitted.
+%
+% \begin{macro}{\NumR@und}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\def\NumR@und#1.#2#3\@nil{%shishagonyu
+\begingroup
+\XyMTeXcnta=0 \XyMTeXcntb=0\relax
+\XyMTeXcnta=#1 %%\typeout{A:\the\XyMTeXcnta;}
+\XyMTeXcntb=#2 %%\typeout{B:\the\XyMTeXcntb;}
+\ifnum\XyMTeXcnta>0\relax
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi
+\else
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by-1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi\fi\xdef\@yzobun{\the\XyMTeXcnta}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\zahyozobun| calculates the increments of x- and y-coordinates
+% by starting from a slope of the LaTeX picture environment.
+% For example, the slope (5,3) (for the argument \verb/(#3,#4)/ and the x-increment \verb/#5/=171)
+% is transformed to give an x-increment (\verb/\@xzobun/ = 171) and
+% an y-increment (\verb/\@yzobun/ = 103). When the slope is (0,1) etc., we put the
+% x-increment (\verb/\@xzobun/ = 0) and y-increment (\verb/\@yzobun/ = \verb/#5/).
+%
+% \begin{macro}{\zahyozobun}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \changes{v5.01}{2013/03/10}{Bug fix for the slope (0,1) etc.}
+% \begin{macrocode}
+{\catcode`\p=12 \catcode`\t=12
+\gdef\zobunGain#1pt{\gdef\@zobun{#1}}}
+
+\def\zahyozobun(#1,#2)(#3,#4)#5{%
+\@tempdima=#5\unitlength
+\@tempdimb=#3\unitlength
+\@tempcnta=\@tempdima
+\ifdim\@tempdimb<0pt
+\@tempcntb=-\@tempdimb
+\else
+\@tempcntb=\@tempdimb
+\fi
+%%
+\ifdim\@tempdimb=0pt%bugfix 2013/02/06
+\else
+%%
+\multiply\@tempcntb by10\relax
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\multiply\@tempdima by#4\relax
+\multiply\@tempdima by10 %%\typeout{D:\the\@tempdima}
+\expandafter\zobunGain\the\@tempdima%
+\expandafter\NumR@und\@zobun\@nil
+\fi%%%
+\ifnum#3<0
+\xdef\@xzobun{-#5}%
+\else
+\ifnum#3=0%bugfix 2013/02/06
+\xdef\@xzobun{#3}%
+\ifnum#4<0
+\xdef\@yzobun{-#5}%
+\else
+\xdef\@yzobun{#5}%
+\fi%bugfix 2013/02/06
+\else
+\xdef\@xzobun{#5}%
+\fi
+\fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\bond@sh@rten| works in a similar way to |\bond@shorten| for
+% shortening the resulting hashed bonds. This macro calculates the coordinates of the starting
+% point and the end point.
+%
+% \begin{macro}{\bond@sh@rten}
+% \changes{v5.00}{2010/10/01}{For PDF mode: Hashed forms for dash and wedged bonds}
+% \begin{macrocode}
+\def\bond@sh@rten(#1,#2)(#3,#4)#5{%%%%%%%/(#6,#7)(#8,#9){%
+\zahyozobun(#1,#2)(#3,#4){#5}%
+\@tempcntXb=\@xzobun\relax%%\typeout{SSS:\@xzobun}
+\@tempcntYb=\@yzobun\relax%%\typeout{TTT:\@yzobun}
+\divide\@tempcntXb by\@tempcntzz\relax
+\divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#1\relax
+\advance\@tempcntYb by#2\relax
+\@tempcntXc=\@xzobun\relax%%\typeout{KKKK:\@xzobun}
+\@tempcntYc=\@yzobun\relax%%\typeout{LLLL:\@yzobun}
+\divide\@tempcntXc by\@tempcntzzz\relax
+\divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#1\relax
+\advance\@tempcntXc by\@xzobun\relax%%\typeout{AAAA:\the\@tempcntXc}
+\advance\@tempcntYc by#2\relax
+\advance\@tempcntYc by\@yzobun\relax%%\typeout{BBBB:\the\@tempcntYc}
+}%%end of \bondshorten
+% \end{macrocode}
+% \end{macro}
+
+% Skeletal hashed dash bonds can be changed into hashed wedges, where
+% |\HashWedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent. This macro is essentially equivalent to
+% the macro |h@shedw@dgebond|, whose last four arguments are omitted.
+%
+% \begin{macro}{HashWedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{For PS mode: Hashed wedged bonds for stereochemistry}
+% \changes{v5.00}{2010/10/01}{For PDF mode: Hashed wedged bonds for stereochemistry}
+% \begin{macrocode}
+\def\HashWedgeAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\zahyozobun(#1,#2)(#3,#4){#5}%
+\@tempcntXa=\@xzobun\relax
+\advance\@tempcntXa by#1\relax
+\@tempcntYa=\@yzobun\relax
+\advance\@tempcntYa by#2\relax
+\stereo@wedgedimension(#3,#4){10}%
+\XyMTeXnumf=\@tempcntXb%%\typeout{CCCCF:\the\XyMTeXnumf}
+\XyMTeXnumg=\@tempcntYb%%\typeout{CCCCG:\the\XyMTeXnumg}
+\XyMTeXnumh=\@tempcntXc%%\typeout{CCCCH:\the\XyMTeXnumh}
+\XyMTeXnumi=\@tempcntYc%%\typeout{CCCCI:\the\XyMTeXnumi}
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@sh@rten(#1,#2)(#3,#4){#5}%
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\filldraw[black,line cap=round]%
+%(#1\unitlength,#2\unitlength) coordinate (X) --%
+%(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+%(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+%\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+%(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+%(\@tempcntXc\unitlength,\@tempcntYc\unitlength);%
+%}}%
+%\PutBondBox(#1,#2)(\the\@tempcntXc,\the\@tempcntYc){\box0}%
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) coordinate (X) --%
+(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\endgroup
+}%%end of \HashWedgeAsSubstPDF
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPDF%For compatibility to PS mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\HashWedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\HashWedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{HashWedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{For PDF mode: Hashed wedged bonds for stereochemistry}
+% \begin{macrocode}
+\def\HashWedgeAsSubstXPDF(#1,#2)(#3,#4){%
+\@ifnextchar[{\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)}%
+{\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\WedgeAsSubstXPDF(#1,#2)(#3,#4)[#5]%
+\@tempdima=#5\unitlength \multiply\@tempdima by3\relax
+\advance\@tempdima by1pt%adjustment
+\tikznodimension{%
+\draw[dashed,line width=\@tempdima,
+dash pattern=on 1pt off 1.2pt,color=white]%
+(#1\unitlength,#2\unitlength) --%
+(#3\unitlength,#4\unitlength);}%
+\endgroup
+}%%end of \HashWedgeAsSubstXPDF
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPDF%For compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wavy bonds, where
+% |\WavyAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{\WavyAsSubst}
+% \changes{v5.01}{2004/06/21}{For PDF mode: Wavy skeletal bonds}
+% \begin{macrocode}
+\def\WavyAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\wavebondtrue
+\Put@@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WavyAsSubst=\WavyAsSubstPDF%for compatibility to PS mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WavyAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WavyAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/06/21}{For PDF mode: Checked OK}
+% \begin{macrocode}
+\let\WavyAsSubstXPDF=\PUT@@@@wavyLINE
+\let\WavyAsSubstX=\WavyAsSubstXPDF%for compatibility to PS mode
+% \end{macrocode}
+% \end{macro}
+%
+% The command \cs{downnobond} is redefined for pstricks.
+% \begin{macro}{\upnobond}
+% \begin{macro}{\downnobond}
+% \begin{macrocode}
+%\def\upnobond#1#2{%nochange
+%\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\smash{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\PUT@@@@dashedLINE| is used to draw a dashed bond line,
+% which usually links two non-adjacent atoms of a cyclic compound.
+% This macro relies on the |\tikz| graphic enviroment.
+%
+% \begin{macro}{\PUT@@@@dashedLINE}
+% \begin{macro}{\PutPDFdashed}
+% \begin{macro}{\PutDashedBond}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\def\PUT@@@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+%\ifdim\unitlength>0.08pt
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[dashed,line width=#5,dash pattern=on 1pt off 1.2pt]%
+%(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}}%
+%\else
+%\setbox0=\hbox{%
+%\tikz[baseline=(X.base)]{%
+%\draw[dashed,line width=#5,dash pattern=on 0.8pt off 1pt]%
+%(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}}%
+%\fi
+%\PutSimpleBondBox(#1,#2)(#3,#4){\box0}%
+\ifdim\unitlength>0.08pt
+\tikznodimension{%
+\draw[dashed,line width=#5,dash pattern=on 1pt off 1.2pt]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\else
+\tikznodimension{%
+\draw[dashed,line width=#5,dash pattern=on 0.8pt off 1pt]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\fi
+\endgroup
+}
+\let\PutPDFdashed=\PUT@@@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@@@dashedLINE%for compatibility to PS mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\set@xy@PDFcoords| is used in the macro |\putRoundArrowPDF|
+% for drawing round arrows. This command supports a format-changing
+% mechanism to assure the compatibility to the PostScript mode.
+%
+% \begin{macro}{\Temp@ArCords}
+% \begin{macro}{\set@xy@PDFcoords}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\newtoks\Temp@ArCords \Temp@ArCords={}
+\def\set@xy@PDFcoords(#1,#2){%
+\ifnum\@tempcnta=1\relax
+\Temp@ArCords={(#1\unitlength,#2\unitlength) }\else
+\expandafter\Temp@ArCords\expandafter{\the\Temp@ArCords -- %
+(#1\unitlength,#2\unitlength)}\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\setRoundArrPDF| is used in the macro |\putRoundArrowPDF|
+% for drawing round arrows. This command is based on |\tikznodimension|
+% to draw round arrows. The letter string |\RoundedCornersWidth| stores
+% the standard roundness st a corner point.
+%
+% \begin{macro}{\RoundedCornersWidth}
+% \begin{macro}{\setRoundArrPDF}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\def\RoundedCornersWidth{4pt}
+\def\setRoundArrPDF#1{%
+\ifnum\@tempcnta>5\relax
+\def\RoundedCornersWidth{4pt}%
+\else
+\def\RoundedCornersWidth{8pt}\fi
+\tikznodimension{%
+\draw[\RoundArrowHead,line width=0.4pt,%
+rounded corners=\RoundedCornersWidth]#1;}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\putRoundArrowPDF| throws its main task to its inner
+% macro |\putRound@rrowPDF|, which treats an optional argument
+% for specifying the direction of an arrow head and reads coordinates
+% repeatedly by using |\@forendparenthesis|. The |\@forendparenthesis|
+% command is defined in the \textsf{chemstr} package.
+% The macro |\putRoundArrow| is defined as a user command to
+% assure the compatibility to the PostScriot mode.
+%
+% \begin{macro}{\putRoundArrowPDF}
+% \begin{macro}{\putRound@rrowPDF}
+% \begin{macro}{\putRoundArrow}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\def\putRoundArrowPDF{%
+\@ifnextchar[{\putRound@rrowPDF}{\putRound@rrowPDF[->]}}
+\def\putRound@rrowPDF[#1]#2{%
+\edef\RoundArrowHead{#1}%
+\Temp@ArCords={}\@tempcnta=\@ne\relax
+\@forendparenthesis\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\set@xy@PDFcoords\member)\fi
+\advance\@tempcnta\@ne}%
+\expandafter\setRoundArrPDF\expandafter{\the\Temp@ArCords}%
+}
+\let\putRoundArrow=\putRoundArrowPDF
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command |\changeunitlength| is redefined for using the pgf (tikz) package.
+% The pgf package uses ``scale'' in optional designations in place of
+% the setting by \verb/\unitlength/. The setting of \verb/\unitlength=0.1pt/ is
+% regarded as corresponding to \verb/scale=0.00357/, which is stored in
+% \verb/\@UScale/ after it is obtained by the \verb/\setUnitScale/ command.
+% \begin{macro}{\changeunitlength}
+% \begin{macro}{\UScaleGain}
+% \begin{macro}{\setUnitScale}
+% \begin{macrocode}
+%%added 2010/08/17
+{\catcode`\p=12 \catcode`\t=12
+\gdef\UScaleGain#1pt{\gdef\@UScale{#1}}}
+\def\setUnitScale#1{%
+\@tempdima=#1 \dimen0=1cm
+\@tempcnta=\@tempdima
+\@tempcntb=\dimen0
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\expandafter\UScaleGain\the\@tempdima}
+\setUnitScale{0.1pt}%standard setting
+%%%
+\newif\ifsizereduction\sizereductionfalse
+\def\@@@changeunitlength#1{\unitlength=#1\relax
+\setUnitScale{#1}%%% scale=\@UScale
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else \let\substfontsize=\normalsize\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\red etc.}
+% \changes{v5.00}{2010/10/01}{bond coloring for PDF mode}
+% \begin{macrocode}
+\def\red{\color{red}}
+\def\green{\color{green}}
+\def\blue{\color{blue}}
+\def\cyan{\color{cyan}}
+\def\magenta{\color{magenta}}
+\def\yellow{\color{yellow}}
+\def\black{\color{black}}
+\def\white{\color{white}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xymcolor}
+% \begin{macro}{\redx etc.}
+% These macros are defined to avoid \texttt{**Warning** color stack underflow}
+% during processing by the dvipdfmx converter.
+% \changes{v5.00}{2010/10/01}{Added: Colors for TeX/LaTeX mode}
+% \begin{macrocode}
+\def\xymcolor#1#2{\mbox{\color{#1}#2}}
+%defined in the bondcolor packag
+%\def\redx#1{\xymcolor{red}{#1}}
+%\def\bluex#1{\xymcolor{blue}{#1}}
+%\def\greenx#1{\xymcolor{green}{#1}}
+%\def\blackx#1{\xymcolor{black}{#1}}
+%\def\cyanx#1{\xymcolor{cyan}{#1}}
+%\def\yellowx#1{\xymcolor{yellow}{#1}}
+%\def\magentax#1{\xymcolor{magenta}{#1}}
+%\def\whitex#1{\xymcolor{white}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Color@@@@Line}
+% \changes{v5.00}{2010/10/01}{For coloring skeletal bond in PDF mode}
+% The last argument (\#7) specifies a line color.
+% This command is used in the definition of |\replaceSKbond|
+% of the \textsf{bondcolor} package by putting \verb/#7=white/.
+% \begin{macro}{\Color@Line}
+% \begin{macrocode}
+\def\Color@@@@Line{%
+\@ifnextchar[{\C@lor@@@@Line}{\C@lor@@@@Line[0.4pt]}}
+\def\C@lor@@@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\SlopetoXY(#2,#3)(#4,#5){#6}%%
+\@tempdime=\unitlength \multiply\@tempdime by#2\relax
+\@tempdimb=\unitlength \multiply\@tempdimb by#3\relax
+\@tempdimc=\unitlength \multiply\@tempdimc by\@tempcntXa\relax
+\@tempdimd=\unitlength \multiply\@tempdimd by\@tempcntYa\relax
+\tikznodimension{%
+\draw[line width=#1,color=#7]%
+(\@tempdime,\@tempdimb) --(\@tempdimc,\@tempdimd);}%
+\endgroup}%end of \Color@@@@Line
+\let\Color@Line=\Color@@@@Line%for PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{setxymtxpdf}
+% \changes{v5.00}{2010/10/01}{For PDF mode}
+% \begin{macrocode}
+\def\setxymtxpdf{%
+\@ifnextchar[{\@setxymtxpdf}{\@setxymtxpdf[0.1pt]}}
+\def\@setxymtxpdf[#1]{%
+\PDFmodetrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\thicklines=\Thick@Lines
+\let\thinlines=\Thin@Lines
+\let\Put@Line=\Put@@@@Line
+\let\Color@Line=\Color@@@@Line%for PDF mode
+\let\Put@Direct=\Put@@@@Direct
+\let\Put@oCircle=\Put@@@@oCircle
+\let\Put@sCircle=\Put@@@@sCircle
+\let\dotorline=\d@@t@@rline
+\let\WedgeAsSubst=\WedgeAsSubstPDF%for compatibility to PS mode
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPDF%For compatibility to PS mode
+\let\WedgeAsSubstX=\WedgeAsSubstXPDF%for compatibility to PDF mode
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPDF%For compatibility to PDF mode
+\let\PutBondLine=\PUT@@@@bondLINE%for user's use
+\let\PutDashedBond=\PUT@@@@dashedLINE%for compatibility to PS mode
+\let\putRoundArrow=\putRoundArrowPDF%for compatibility to PS mode
+\let\changeunitlength=\@@@changeunitlength
+\changeunitlength{#1}%
+\wedgehasheddash%
+}
+\setxymtxpdf
+%</xymtxpdf>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins
new file mode 100644
index 0000000000..26381a7beb
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins
@@ -0,0 +1,58 @@
+\def\batchfile{xymtx-pdf.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2002,2004,2005,2009,2010,2013 by Shinsaku Fujita
+all rights reserved.
+
+This file is part of the XyMTeX system.
+=======================================
+This style file is created for drawing chemical structural formulas.
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+Old versions (as xymtx-ps.dtx etc.):
+Version 1.00 Released on April 30, 2002
+Version 4.01 Released on August 30, 2004 (adjust for XyMTeX version 4.01)
+Version 4.02 Released on December 20, 2004 (wedged bonds for stereochemistry)
+Version 4.03 Released on July 20, 2005 (wave line for stereochemistry)
+Version 4.03a Released on August 02, 2005 (Bug fix)
+Version 4.04a Released on June 15, 2009 (Bug fix)
+Version 4.05 Released on November 05, 2009 (Bug fix)
+Version 5.00 Released on October 01, 2010
+Version 5.00b Released on November 23, 2010
+Version 5.01b Released on March 10, 2013
+Version 5.01bb Released on May 27, 2013
+
+Present version (as xymtx-pdf.dtx etc.):
+Version 5.01 Released on June 21, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files xymtx-pdf.dtx and xymtx-pdf.ins
+and the derived file xymtx-pdf.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{xymtx-pdf.drv}{t}{%
+ \from{xymtx-pdf.dtx}{driver}}
+
+\generateFile{xymtx-pdf.sty}{t}{%
+ \from{xymtx-pdf.dtx}{xymtxpdf}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty
new file mode 100644
index 0000000000..1a69a7b538
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty
@@ -0,0 +1,687 @@
+%%
+%% This is file `xymtx-pdf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtx-pdf.dtx (with options: `xymtxpdf')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2002,2004,2005,2009,2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% This style file is created for drawing chemical structural formulas.
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% Old versions (as xymtx-ps.dtx etc.):
+%% Version 1.00 Released on April 30, 2002
+%% Version 4.01 Released on August 30, 2004 (adjust for XyMTeX version 4.01)
+%% Version 4.02 Released on December 20, 2004 (wedged bonds for stereochemistry)
+%% Version 4.03 Released on July 20, 2005 (wave line for stereochemistry)
+%% Version 4.03a Released on August 02, 2005 (Bug fix)
+%% Version 4.04a Released on June 15, 2009 (Bug fix)
+%% Version 4.05 Released on November 05, 2009 (Bug fix)
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.00b Released on November 23, 2010
+%% Version 5.01b Released on March 10, 2013
+%% Version 5.01bb Released on May 27, 2013
+%%
+%% Present version (as xymtx-pdf.dtx etc.):
+%% Version 5.01 Released on June 21, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtx-pdf.dtx and xymtx-pdf.ins
+%% and the derived file xymtx-pdf.sty.
+%%
+%% =======================================
+%%
+%% File: xymtx-pdf.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\def\j@urnalname{xymtx-pdf}
+\def\versi@ndate{June 21, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\RequirePackage{tikz}
+\RequirePackage{pgfcore}%%%added 2010/11/23 by S. Fujita
+\RequirePackage{xcolor}
+\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,fit,calc}
+\unitlength=0.1pt
+\def\white{\color{white}}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+\newcount\XyMTeXnuma
+\newcount\XyMTeXnumb
+\newcount\XyMTeXnumc
+\newcount\XyMTeXnumd
+\newcount\XyMTeXnume
+\newcount\XyMTeXnumf
+\newcount\XyMTeXnumg
+\newcount\XyMTeXnumh
+\newcount\XyMTeXnumi
+\newcount\XyMTeXcnta
+\newcount\XyMTeXcntb
+\newdimen\XyMTeXdima
+\newdimen\XyMTeXdimb
+\newdimen\XyMTeXdimc
+\newdimen\XyMTeXdimd
+\newdimen\XyMTeXdime
+\newbox\BondBox
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+\def\NumRound#1.#2#3\@nil{%shishagonyu
+\begingroup
+\XyMTeXcnta=0 \XyMTeXcntb=0
+\XyMTeXcnta=#1 %%\typeout{A:\the\XyMTeXcnta;}
+\XyMTeXcntb=#2 %%\typeout{B:\the\XyMTeXcntb;}
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi\xdef\@UHalfScale{\the\XyMTeXcnta}\endgroup}
+{\catcode`\p=12 \catcode`\t=12
+\gdef\UHalfScaleGain#1pt{\gdef\@@UHalfScale{#1}}}
+\def\setUnitHalfScale#1{%
+\@tempdima=#1 \dimen0=0.1pt
+\@tempcnta=\@tempdima
+\@tempcntb=\dimen0
+\multiply\@tempcntb by10
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\multiply\@tempdima by5 %%\typeout{D:\the\@tempdima}
+\expandafter\UHalfScaleGain\the\@tempdima%
+\expandafter\NumRound\@@UHalfScale\@nil
+}
+\def\PutSimpleBondBox(#1,#2)(#3,#4)#5{%for simple bonds
+\setbox\BondBox=\hbox{#5}%
+\XyMTeXdima=#1\unitlength
+\XyMTeXdimb=#3\unitlength
+\XyMTeXdimc=\thickLineWidth
+\divide\XyMTeXdimc by2%adjustment by the half of a line width
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdimd=\XyMTeXdima
+\XyMTeXdime=\XyMTeXdimb
+\advance\XyMTeXdime by -\XyMTeXdimd
+\advance\XyMTeXdime by -\XyMTeXdimc
+\put(#1,#2){\kern\XyMTeXdime\box\BondBox}%
+\else
+\ifdim \XyMTeXdima=\XyMTeXdimb\relax
+\XyMTeXdimd=-\XyMTeXdimc
+%%%\put(#1,#2){\kern\XyMTeXdimd\raise\XyMTeXdimd\hbox{\box\BondBox}}%
+\put(#1,#2){\kern\XyMTeXdimd\box\BondBox}%
+\else
+\XyMTeXdimd=-\XyMTeXdimc
+\put(#1,#2){\kern\XyMTeXdimd\box\BondBox}%
+\fi\fi%
+}
+\def\tikznodimension#1{\tikz{%
+\pgfpathrectangle{\pgfpointorigin}{\pgfpointorigin}
+\pgfusepath{use as bounding box} % draws nothing
+#1}}
+\def\PUT@@@@bondLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\tikznodimension{%
+\draw[line width=#5]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\endgroup
+}
+\let\PutPDFLine=\PUT@@@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@@@bondLINE%for user's use
+\def\PutBondBox(#1,#2)(#3,#4)#5{%for wedge and wavy bonds
+\setbox\BondBox=\hbox{#5}%
+\XyMTeXdima=#1\unitlength
+\XyMTeXdimb=#3\unitlength
+\XyMTeXdimc=4pt%
+\divide\XyMTeXdimc by2%adjustment by the half of a line width
+\if@vertbond
+\XyMTeXdimd=\wd\BondBox
+\divide\XyMTeXdimd by2\relax
+\put(#1,#2){\kern-1.2\XyMTeXdimd\box\BondBox}%%tentative factor 1.2
+\else
+\if@horizbond
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdimd=\XyMTeXdima
+\XyMTeXdime=\XyMTeXdimb
+\advance\XyMTeXdime by -\XyMTeXdimd
+\put(#1,#2){\kern-5\unitlength\kern\XyMTeXdime\box\BondBox}%tentative factor 5 %%%
+\else
+\put(#1,#2){\kern-1.2\unitlength\box\BondBox}%tentative factor 1.2
+\fi
+\else
+%%
+\ifdim \XyMTeXdima>\XyMTeXdimb\relax
+\XyMTeXdime=-\wd\BondBox
+\put(#1,#2){\kern0.2\unitlength\kern\XyMTeXdime\box\BondBox}%tentative shift factor
+\else
+\ifdim \wd\BondBox<4.3pt\relax
+\XyMTeXdimd=\wd\BondBox
+\divide\XyMTeXdimd by2\relax
+\put(#1,#2){\kern-1.3\XyMTeXdimd\box\BondBox}%tentative shift factor 1.3
+\else
+\put(#1,#2){\kern-3\unitlength\box\BondBox}%tentative shift factor 3
+\fi\fi
+\fi\fi}
+\newif\if@vertbond \@vertbondfalse
+\newif\if@horizbond \@horizbondfalse
+\def\PUT@@@@wedgeLINE(#1,#2)(#3,#4)(#5,#6){%
+\begingroup
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength)%
+-- (#5\unitlength,#6\unitlength) -- (#1\unitlength,#2\unitlength);}%
+\endgroup
+}
+\def\PUT@@@@wavyLINE(#1,#2)(#3,#4){%
+\begingroup
+\tikznodimension{%
+\draw[decorate,
+decoration={coil,aspect=0,segment length=2pt,amplitude=1pt}]%
+(#1\unitlength,#2\unitlength) coordinate (X) -- (#3\unitlength,#4\unitlength);}%
+\endgroup
+}
+\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz
+\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz
+\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz
+\long\gdef\Put@@@@Line(#1,#2)(#3,#4)#5{%
+\begingroup
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax
+\if@thicklinesw
+\if@wedgesw
+\ifmolfront%bold dash bond for skeletal bond for pyranose etc.
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\else
+\if@skbondlist%bold dash bond skeletal bond for general cases
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\else%wedged bond
+\ifnum#1=#3
+\@vertbondtrue\@horizbondfalse
+\else
+\ifnum#2=#4
+\@vertbondfalse\@horizbondtrue
+\else
+\@vertbondfalse\@horizbondfalse
+\fi\fi
+\stereo@wedgedimension(#3,#4){10}%
+\PUT@@@@wedgeLINE(#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi\fi
+\else
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thickLineWidth}%
+\fi
+\else
+\ifwavebond
+\ifnum#1=#3
+\@vertbondtrue\@horizbondfalse
+\else
+\ifnum#2=#4
+\@vertbondfalse\@horizbondtrue
+\else
+\@vertbondfalse\@horizbondfalse
+\fi\fi
+\PUT@@@@wavyLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\PUT@@@@bondLINE(#1,#2)(\the\@tempcntXa,\the\@tempcntYa){\thinLineWidth}%
+\fi
+\fi
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of Put@@@@Line
+\newif\if@wedgeadjust
+\def\stereo@wedgedimension(#1,#2)#3{%
+\@tempcntXb=0\relax
+\@tempcntYb=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=0\relax
+%%
+\@wedgeadjustfalse
+\ifnum#1<0 \@tempcntzz=-#1\else\@tempcntzz=#1\fi
+\ifnum#2<0 \@tempcntzzz=-#2\else\@tempcntzzz=#2\fi
+\ifnum#1=0\else
+\multiply\@tempcntzzz by10\relax \divide\@tempcntzzz by\@tempcntzz\fi%% (3/5)x10=6
+\ifnum\@tempcntzzz>7\relax\else\@wedgeadjusttrue\fi
+%%one point of wedge
+\ifnum#1=0\relax
+\@tempcntXb=#3 \advance\@tempcntXb by8\relax
+\@tempcntYb=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXb=0\relax
+\@tempcntYb=#3 \advance\@tempcntYb by8\relax
+\else
+\@tempcntXb=#3\relax
+\@tempcntYb=-#3\relax
+\if@wedgeadjust
+\advance\@tempcntXb by8\relax
+\advance\@tempcntYb by-8\relax
+\fi
+\multiply\@tempcntXb by#2\relax\multiply\@tempcntXb by10\relax
+\divide\@tempcntXb by#1\relax\divide\@tempcntXb by10\relax\fi\fi
+\advance\@tempcntXb by\@tempcntXa\relax
+\advance\@tempcntYb by\@tempcntYa\relax
+%%other point of wedge
+\ifnum#1=0\relax
+\@tempcntXc=-#3 \advance\@tempcntXc by-8\relax
+\@tempcntYc=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=-#3 \advance\@tempcntYc by-8\relax
+\else
+\@tempcntXc=-#3\relax
+\@tempcntYc=#3\relax
+\if@wedgeadjust
+\advance\@tempcntXc by-6\relax
+\advance\@tempcntYc by6\relax
+\fi
+\multiply\@tempcntXc by#2\relax\multiply\@tempcntXc by10\relax
+\divide\@tempcntXc by#1\relax\divide\@tempcntXc by10\relax\fi\fi
+\advance\@tempcntXc by\@tempcntXa\relax
+\advance\@tempcntYc by\@tempcntYa\relax
+}%%end of \stereo@wedgedimension
+\let\Put@@@@Direct=\put
+\def\Put@@@@oCircle(#1,#2)#3{\begingroup%
+ \@tempcntz=#3 \divide\@tempcntz by2\relax
+\setbox0=\hbox{%
+{\tikz[baseline=(X.base)]{%
+\draw[line width=0.4pt]%
+(#1\unitlength,#2\unitlength) coordinate (X) circle (\@tempcntz\unitlength);}}}%
+\put(#1,#2){\kern-0.5\wd0\hbox{\box0}}%
+\endgroup}
+\def\Put@@@@sCircle(#1,#2)#3{\begingroup%
+ \@tempcntz=#3 \divide\@tempcntz by2\relax
+\setbox0=\hbox{%
+{\tikz[baseline=(X.base)]{%
+\draw[line width=2pt]%
+(#1\unitlength,#2\unitlength) coordinate (X) circle (\@tempcntz\unitlength);}}}%
+\put(#1,#2){\kern-0.5\wd0\hbox{\box0}}%
+\endgroup}
+\def\d@@t@@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\if@hasheddashsw
+ \@ifundefined{tikz}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \h@shedd@shbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+\if@skbondlist%hashed dash bond skeletal bond for general cases
+ \@ifundefined{tikz}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \h@shedd@shbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+ \h@shedw@dgebond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\fi\fi
+}%end of \d@@t@@rline
+\def\h@shedd@shbond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntzz=12\relax
+\@tempcntzzz=-30\relax%almost no shortening
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\tikznodimension{%
+\draw[dashed,line width=\thickLineWidth,dash pattern=on 1pt off 1.2pt]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\else
+\tikznodimension{%
+\draw[dashed,line width=\thickLineWidth,dash pattern=on 0.8pt off 1pt]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) coordinate (X) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\fi
+\endgroup}
+\def\h@shedw@dgebond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntXa=#8\relax
+\@tempcntYa=#9\relax
+\stereo@wedgedimension(#3,#4){10}%
+\XyMTeXnumf=\@tempcntXb
+\XyMTeXnumg=\@tempcntYb
+\XyMTeXnumh=\@tempcntXc
+\XyMTeXnumi=\@tempcntYc
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) --%
+(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\endgroup
+}%%end of \h@shedw@dgebond
+\def\bond@shorten(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\@tempcntXb=#8\relax
+\@tempcntYb=#9\relax
+\advance\@tempcntXb by-#6\relax \divide\@tempcntXb by\@tempcntzz\relax
+\advance\@tempcntYb by-#7\relax \divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#6\relax
+\advance\@tempcntYb by#7\relax
+\@tempcntXc=#8\relax
+\@tempcntYc=#9\relax
+\advance\@tempcntXc by-#6\relax \divide\@tempcntXc by\@tempcntzzz\relax
+\advance\@tempcntYc by-#7\relax \divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#8\relax
+\advance\@tempcntYc by#9\relax
+}%%end of \bondshorten
+\def\WedgeAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstPDF%for compatibility to PS mode
+\def\stereo@wedgedimensionX(#1,#2)(#3,#4){%
+\@ifnextchar[{\stereo@@wedgedimensionX(#1,#2)(#3,#4)}%
+{\stereo@@wedgedimensionX(#1,#2)(#3,#4)[10]}}
+\def\stereo@@wedgedimensionX(#1,#2)(#3,#4)[#5]{%
+\@tempcnta=-#1\relax
+\advance\@tempcnta by#3\relax
+%%\typeout{KKK:\the\@tempcnta}%
+\@tempcntb=-#2\relax
+\advance\@tempcntb by#4\relax
+%%%\typeout{LLL:\the\@tempcntb}%
+\stereo@wedgedimension(\the\@tempcnta,\the\@tempcntb){#5}%
+%%%\typeout{MMM; (\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)}
+\advance\@tempcntXb by#3\relax
+\advance\@tempcntYb by#4\relax
+\advance\@tempcntXc by#3\relax
+\advance\@tempcntYc by#4\relax}
+\def\WedgeAsSubstXPDF(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXPDF(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXPDF(#1,#2)(#3,#4)[10]}}
+\def\Wedge@AsSubstXPDF(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\stereo@wedgedimensionX(#1,#2)(#3,#4)[#5]%
+\PUT@@@@wedgeLINE(#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXPDF%for compatibility to PDF mode
+\def\NumR@und#1.#2#3\@nil{%shishagonyu
+\begingroup
+\XyMTeXcnta=0 \XyMTeXcntb=0\relax
+\XyMTeXcnta=#1 %%\typeout{A:\the\XyMTeXcnta;}
+\XyMTeXcntb=#2 %%\typeout{B:\the\XyMTeXcntb;}
+\ifnum\XyMTeXcnta>0\relax
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi
+\else
+\ifnum\XyMTeXcntb<5 \else
+\advance\XyMTeXcnta by-1 %%\typeout{C:\the\XyMTeXcnta;}
+\fi\fi\xdef\@yzobun{\the\XyMTeXcnta}\endgroup}
+{\catcode`\p=12 \catcode`\t=12
+\gdef\zobunGain#1pt{\gdef\@zobun{#1}}}
+
+\def\zahyozobun(#1,#2)(#3,#4)#5{%
+\@tempdima=#5\unitlength
+\@tempdimb=#3\unitlength
+\@tempcnta=\@tempdima
+\ifdim\@tempdimb<0pt
+\@tempcntb=-\@tempdimb
+\else
+\@tempcntb=\@tempdimb
+\fi
+%%
+\ifdim\@tempdimb=0pt%bugfix 2013/02/06
+\else
+%%
+\multiply\@tempcntb by10\relax
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\multiply\@tempdima by#4\relax
+\multiply\@tempdima by10 %%\typeout{D:\the\@tempdima}
+\expandafter\zobunGain\the\@tempdima%
+\expandafter\NumR@und\@zobun\@nil
+\fi%%%
+\ifnum#3<0
+\xdef\@xzobun{-#5}%
+\else
+\ifnum#3=0%bugfix 2013/02/06
+\xdef\@xzobun{#3}%
+\ifnum#4<0
+\xdef\@yzobun{-#5}%
+\else
+\xdef\@yzobun{#5}%
+\fi%bugfix 2013/02/06
+\else
+\xdef\@xzobun{#5}%
+\fi
+\fi
+}
+\def\bond@sh@rten(#1,#2)(#3,#4)#5{%%%%%%%/(#6,#7)(#8,#9){%
+\zahyozobun(#1,#2)(#3,#4){#5}%
+\@tempcntXb=\@xzobun\relax%%\typeout{SSS:\@xzobun}
+\@tempcntYb=\@yzobun\relax%%\typeout{TTT:\@yzobun}
+\divide\@tempcntXb by\@tempcntzz\relax
+\divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#1\relax
+\advance\@tempcntYb by#2\relax
+\@tempcntXc=\@xzobun\relax%%\typeout{KKKK:\@xzobun}
+\@tempcntYc=\@yzobun\relax%%\typeout{LLLL:\@yzobun}
+\divide\@tempcntXc by\@tempcntzzz\relax
+\divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#1\relax
+\advance\@tempcntXc by\@xzobun\relax%%\typeout{AAAA:\the\@tempcntXc}
+\advance\@tempcntYc by#2\relax
+\advance\@tempcntYc by\@yzobun\relax%%\typeout{BBBB:\the\@tempcntYc}
+}%%end of \bondshorten
+
+\def\HashWedgeAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\zahyozobun(#1,#2)(#3,#4){#5}%
+\@tempcntXa=\@xzobun\relax
+\advance\@tempcntXa by#1\relax
+\@tempcntYa=\@yzobun\relax
+\advance\@tempcntYa by#2\relax
+\stereo@wedgedimension(#3,#4){10}%
+\XyMTeXnumf=\@tempcntXb%%\typeout{CCCCF:\the\XyMTeXnumf}
+\XyMTeXnumg=\@tempcntYb%%\typeout{CCCCG:\the\XyMTeXnumg}
+\XyMTeXnumh=\@tempcntXc%%\typeout{CCCCH:\the\XyMTeXnumh}
+\XyMTeXnumi=\@tempcntYc%%\typeout{CCCCI:\the\XyMTeXnumi}
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@sh@rten(#1,#2)(#3,#4){#5}%
+\tikznodimension{%
+\filldraw%
+(#1\unitlength,#2\unitlength) coordinate (X) --%
+(\XyMTeXnumf\unitlength,\XyMTeXnumg\unitlength) --%
+(\XyMTeXnumh\unitlength,\XyMTeXnumi\unitlength) -- (#1\unitlength,#2\unitlength);%
+\draw[dashed,line width=4pt,dash pattern=on 1pt off 1.2pt,color=white]%
+(\@tempcntXb\unitlength,\@tempcntYb\unitlength) --%
+(\@tempcntXc\unitlength,\@tempcntYc\unitlength);}%
+\endgroup
+}%%end of \HashWedgeAsSubstPDF
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPDF%For compatibility to PS mode
+\def\HashWedgeAsSubstXPDF(#1,#2)(#3,#4){%
+\@ifnextchar[{\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)}%
+{\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@AsSubstXPDF(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\WedgeAsSubstXPDF(#1,#2)(#3,#4)[#5]%
+\@tempdima=#5\unitlength \multiply\@tempdima by3\relax
+\advance\@tempdima by1pt%adjustment
+\tikznodimension{%
+\draw[dashed,line width=\@tempdima,
+dash pattern=on 1pt off 1.2pt,color=white]%
+(#1\unitlength,#2\unitlength) --%
+(#3\unitlength,#4\unitlength);}%
+\endgroup
+}%%end of \HashWedgeAsSubstXPDF
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPDF%For compatibility to PDF mode
+\def\WavyAsSubstPDF(#1,#2)(#3,#4)#5{%
+\begingroup
+\wavebondtrue
+\Put@@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WavyAsSubst=\WavyAsSubstPDF%for compatibility to PS mode
+\let\WavyAsSubstXPDF=\PUT@@@@wavyLINE
+\let\WavyAsSubstX=\WavyAsSubstXPDF%for compatibility to PS mode
+\def\downnobond#1#2{%
+\hbox{\smash{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}}
+\def\PUT@@@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\tikznodimension{%
+\draw[dashed,line width=#5,dash pattern=on 1pt off 1.2pt]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\else
+\tikznodimension{%
+\draw[dashed,line width=#5,dash pattern=on 0.8pt off 1pt]%
+(#1\unitlength,#2\unitlength) -- (#3\unitlength,#4\unitlength);}%
+\fi
+\endgroup
+}
+\let\PutPDFdashed=\PUT@@@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@@@dashedLINE%for compatibility to PS mode
+\newtoks\Temp@ArCords \Temp@ArCords={}
+\def\set@xy@PDFcoords(#1,#2){%
+\ifnum\@tempcnta=1\relax
+\Temp@ArCords={(#1\unitlength,#2\unitlength) }\else
+\expandafter\Temp@ArCords\expandafter{\the\Temp@ArCords -- %
+(#1\unitlength,#2\unitlength)}\fi}
+\def\RoundedCornersWidth{4pt}
+\def\setRoundArrPDF#1{%
+\ifnum\@tempcnta>5\relax
+\def\RoundedCornersWidth{4pt}%
+\else
+\def\RoundedCornersWidth{8pt}\fi
+\tikznodimension{%
+\draw[\RoundArrowHead,line width=0.4pt,%
+rounded corners=\RoundedCornersWidth]#1;}}%
+\def\putRoundArrowPDF{%
+\@ifnextchar[{\putRound@rrowPDF}{\putRound@rrowPDF[->]}}
+\def\putRound@rrowPDF[#1]#2{%
+\edef\RoundArrowHead{#1}%
+\Temp@ArCords={}\@tempcnta=\@ne\relax
+\@forendparenthesis\member:=#2\do{%
+\ifx\member\empty\else
+\expandafter\set@xy@PDFcoords\member)\fi
+\advance\@tempcnta\@ne}%
+\expandafter\setRoundArrPDF\expandafter{\the\Temp@ArCords}%
+}
+\let\putRoundArrow=\putRoundArrowPDF
+%%added 2010/08/17
+{\catcode`\p=12 \catcode`\t=12
+\gdef\UScaleGain#1pt{\gdef\@UScale{#1}}}
+\def\setUnitScale#1{%
+\@tempdima=#1 \dimen0=1cm
+\@tempcnta=\@tempdima
+\@tempcntb=\dimen0
+\divide\@tempcntb by65536%
+\divide\@tempdima by \@tempcntb
+\expandafter\UScaleGain\the\@tempdima}
+\setUnitScale{0.1pt}%standard setting
+%%%
+\newif\ifsizereduction\sizereductionfalse
+\def\@@@changeunitlength#1{\unitlength=#1\relax
+\setUnitScale{#1}%%% scale=\@UScale
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else \let\substfontsize=\normalsize\fi}
+\def\red{\color{red}}
+\def\green{\color{green}}
+\def\blue{\color{blue}}
+\def\cyan{\color{cyan}}
+\def\magenta{\color{magenta}}
+\def\yellow{\color{yellow}}
+\def\black{\color{black}}
+\def\white{\color{white}}
+\def\xymcolor#1#2{\mbox{\color{#1}#2}}
+\def\Color@@@@Line{%
+\@ifnextchar[{\C@lor@@@@Line}{\C@lor@@@@Line[0.4pt]}}
+\def\C@lor@@@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\SlopetoXY(#2,#3)(#4,#5){#6}%%
+\@tempdime=\unitlength \multiply\@tempdime by#2\relax
+\@tempdimb=\unitlength \multiply\@tempdimb by#3\relax
+\@tempdimc=\unitlength \multiply\@tempdimc by\@tempcntXa\relax
+\@tempdimd=\unitlength \multiply\@tempdimd by\@tempcntYa\relax
+\tikznodimension{%
+\draw[line width=#1,color=#7]%
+(\@tempdime,\@tempdimb) --(\@tempdimc,\@tempdimd);}%
+\endgroup}%end of \Color@@@@Line
+\let\Color@Line=\Color@@@@Line%for PDF mode
+\def\setxymtxpdf{%
+\@ifnextchar[{\@setxymtxpdf}{\@setxymtxpdf[0.1pt]}}
+\def\@setxymtxpdf[#1]{%
+\PDFmodetrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\thicklines=\Thick@Lines
+\let\thinlines=\Thin@Lines
+\let\Put@Line=\Put@@@@Line
+\let\Color@Line=\Color@@@@Line%for PDF mode
+\let\Put@Direct=\Put@@@@Direct
+\let\Put@oCircle=\Put@@@@oCircle
+\let\Put@sCircle=\Put@@@@sCircle
+\let\dotorline=\d@@t@@rline
+\let\WedgeAsSubst=\WedgeAsSubstPDF%for compatibility to PS mode
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPDF%For compatibility to PS mode
+\let\WedgeAsSubstX=\WedgeAsSubstXPDF%for compatibility to PDF mode
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPDF%For compatibility to PDF mode
+\let\PutBondLine=\PUT@@@@bondLINE%for user's use
+\let\PutDashedBond=\PUT@@@@dashedLINE%for compatibility to PS mode
+\let\putRoundArrow=\putRoundArrowPDF%for compatibility to PS mode
+\let\changeunitlength=\@@@changeunitlength
+\changeunitlength{#1}%
+\wedgehasheddash%
+}
+\setxymtxpdf
+\endinput
+%%
+%% End of file `xymtx-pdf.sty'.
diff --git a/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx
new file mode 100644
index 0000000000..58ee50a903
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx
@@ -0,0 +1,1681 @@
+% \iffalse
+%
+% chmst-ps.dtx
+%
+% Copyright (C) 2002, 2004, 2010 by Shinsaku Fujita All rights reserved.
+%
+% ========================================
+%
+% Modified from the following previous package:
+%
+% chemist.dtx
+% Copyright (C) 1996, 1999, 2000 by Shinsaku Fujita All rights reserved.
+%
+% in order to utilize pstricks.
+%
+% This file is part of the ChemSci system
+% ========================================
+%
+% This style file is created for submitting a manuscript to
+% scientific journals. This style file is to be contained in the
+% ``chemist'' directory which is an input directory for TeX.
+%
+% For using this file, see
+% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% The Current Maintainer of this work is Shinsaku Fujita.
+%
+% This work consists of the files chmst-ps.dtx and chmst-ps.ins
+% and the derived file chmst-ps.sty.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Shonan Institute of Chemoinformatics and
+% Mathematical Chemistry
+% fujita-sicimc@nifmail.jp
+%
+%=======================================
+%
+% This file is a successor to:
+%
+% *********************************************************************
+% * chemist.sty <Sept 29 1991> by Shinsaku Fujita *
+% * counters and related matters for compounds. *
+% * ffboxit: November 2 1991 by S. Fujita *
+% * bslskipchange: November 6 1991 by S. Fujita (deleted) *
+% * chapinitial: 1991 November 7 by S. Fujita *
+% * variable arrows: 1992 May 24 by S. Fujita *
+% * reaction and scheme arrows (revised): 1992 May 24 by S. Fujita *
+% * changespace <=== bslskipchange: Dec 31 1992 by S. Fujita *
+% * (g)rshfboxit and (g)lshfboxit: January 3, 1993 by S. Fujita *
+% *********************************************************************
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Released on January 3, 1993
+% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
+% This style file is created for making manuscripts of chemical fields.
+% This option style file is to be contained in the ``chemist'' directory
+% which is an input directory for TeX.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{January 03, 1993}
+% \def\versi@nno{ver1.00}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Version 1.01
+% --- added the end commands of the \verbatim environment and the
+% \verb command contained in LaTeX 2.09
+% --- \LaTeX, \BibTeX logos etc improved
+% \typeout{verbatim for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \typeout{logos for LaTeX2.09 (and LaTeX2e) in chemist.sty}
+% \def\versi@ndate{April 20, 1996}
+% \def\j@urnalname{chemist}
+% \def\versi@ndate{April 20, 1996}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{June 15, 1996}
+% \def\versi@nno{ver1.01a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% \typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+% [\copyrighth@lder]}
+% \typeout{chemist.sty ver1.01a (for LaTeX2e) 1996/06/15[SF]}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{March 16, 1999}
+% \def\versi@nno{ver2.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chemist} \def\journalID{chemist}
+% \def\versi@ndate{November 3, 2000}
+% \def\versi@nno{ver2.00a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver1.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{November 08, 2009}
+% \def\versi@nno{ver1.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+% \def\versi@ndate{November 26, 2009}
+% \def\versi@nno{ver1.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% \fi
+% \CheckSum{1615}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%%
+%% `chmst-ps.dtx' ver1.00 (for LaTeX2e) 2002/05/30
+%% `chmst-ps.dtx' ver1.01 (for LaTeX2e) 2004/08/30
+%% `chmst-ps.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chmst-ps.dtx' ver1.03 (for LaTeX2e) 2009/11/26
+%% `chmst-ps.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% by Shinsaku Fujita
+%%
+%
+% \section{Initial declaration}
+%
+% \changes{v1.00}{2002/05/30}{First Version}
+% \changes{v1.01}{2004/08/30}{2nd Version}
+% \changes{v1.02}{2009/11/08}{3rd Version}
+% \changes{v1.03}{2009/11/26}{4th Version, harpoons}
+% \changes{v5.00}{2010/10/01}{For LaTeX Project Public License}
+%
+% \begin{macrocode}
+% \NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+%
+% \begin{macrocode}
+% <chmstps>\ProvidesFile{chmst-ps.sty}
+%<driver>\ProvidesFile{chmst-ps.drv}
+%<driver> [2010/10/01 v5.00
+% <chmstps> ChemSci package ]
+%<driver> ChemSci package driver (English)
+% \end{macrocode}
+%
+%\setcounter{StandardModuleDepth}{1}
+%
+% \section{Driver file for this dtx file}
+%
+% \begin{macrocode}
+%<*driver>
+ ]
+\documentclass{ltxdoc}
+\GetFileInfo{chmst-ps.drv}
+\title{The chmst-ps Package \space\fileversion \\
+(Part of the XyMTeX/ChemSci package v5.00)}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics and
+Mathematical Chemistry \\
+Ashigara-Kami-Gun, Kanagawa, 258-0019 Japan
+%% Department of Chemistry and Materials Technology \\
+%% Kyoto Institute of Technology \\
+%% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+%% (old address)
+%% Ashigara Research Laboratories \\
+%% Fuji Photo Film Co. Ltd.
+}
+\date{\filedate}
+\begin{document}
+\maketitle
+\tableofcontents
+\DocInput{chmst-ps.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \StopEventually{}
+%
+% \section{{\sc docstrip} options}
+%
+% This dtx file provides the {\sffamily chmst-ps} package
+% by docstrip processing.
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% argument & package name \\
+% \hline
+% chmstps & chmst-ps.sty \\
+% driver & a documentation driver file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \section{Version information}
+%
+% The old process for typing out version information remains active.
+% \begin{macrocode}
+%<chmstps>\def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+%<*chmstps>
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chmst-ps.sty ver5.00 (for LaTeX2e) 2010/10/01[SF]}
+%</chmstps>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*chmstps>
+\@ifundefined{if@@@chemtimes}{\newif\if@@@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@@@chemtimestrue}
+\@@@chemtimesfalse
+\ProcessOptions
+\if@@@chemtimes\if@@chemtimes\else
+ \PackageError{chmst-ps}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded.}
+\fi\fi
+\if@@@chemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\RequirePackage{chemist}%
+\fi
+\RequirePackage{xymtx-ps}%
+% \end{macrocode}
+%
+% \section{Cross-references of compounds}
+% (Deleted)
+% \section{Boxes for placing compounds}
+% (Deleted)
+% \section{Arrows}
+% \subsection{Arrows with variable length}
+% (Deleted)
+% \subsection{Reaction arrows with variable length}
+%
+% The {\sffamily chmst-ps} package defines arrows with variable length
+% for drawing chemical equations, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v1.00}{2002/05/30}{First Version}
+%
+% Several elements for drawing horizontal reaction arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\rArrow@Element}
+% \begin{macro}{\lArrow@Element}
+% \begin{macro}{\lrArrow@Element}
+% \begin{macro}{\eqArrow@Element}
+% \begin{macrocode}
+\newdimen\@tempdimX
+\newdimen\@tempdimY
+\def\rArrow@Element#1{\begingroup\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}\endgroup}
+\let\Arrow@Element=\rArrow@Element
+\def\lArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{<-}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\lrArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{<->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\eqArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0.13em)(#1,0.13em)%
+\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several harpoons are created by means of the mechanism of the \textsf{PStricks}
+% package.
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+%
+% \begin{macro}{\past@arrowtable}
+% Arow types (Hru, Hrd, Hlu, and Hld) are added to the existing arrow table
+% for a right upward harpoon, a right downward harpoon, a left upward harpoon,
+% and a left downward harpoon.
+% \begin{macrocode}
+\RequirePackage{pstricks}%
+\edef\past@arrowtable{\pst@arrowtable,Hru-Hru,Hrd-Hrd,Hlu-Hlu,Hld-Hld}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tx@HarpoonrUp}
+% \begin{macro}{\psas@Hru}
+% A right upward harpoon (arow type Hru) is typeset by \verb/\tx@HarpoonrUp/
+% (/HarpoonrUp as a PostScript name), where its arrowhead is typeset by an
+% internal macro name (\verb/\psas@Hru/). The PostScript commands (/CLW, /ED, and /L)
+% are defined in pstricks.pro.
+% \begin{macrocode}
+%rightharpoonup
+%\edef\past@arrowtable{\pst@arrowtable,Hru-Hru}
+\def\tx@HarpoonrUp{ \tx@setStrokeTransparency HarpoonrUp }%
+\@namedef{psas@Hru}{%
+ /HarpoonrUp{%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd neg Hwh L
+ Hwd neg 0 L
+ 0 0 L
+ w h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrUp
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tx@HarpoonrDown}
+% \begin{macro}{\psas@Hrd}
+% A right downward harpoon (arow type Hrd) is typeset by \verb/\tx@HarpoonrDown/
+% (/HarpoonrDown as a PostScript name), where its arrowhead is typeset by an
+% internal macro name (\verb/\psas@Hrd/).
+% \begin{macrocode}
+%rightharpoondown
+%\edef\past@arrowtable{\pst@arrowtable,Hrd-Hrd}
+\def\tx@HarpoonrDown{ \tx@setStrokeTransparency HarpoonrDown }%
+\@namedef{psas@Hrd}{%
+ /HarpoonrDown {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd Hwh L
+ Hwd 0 L
+ 0 0 L
+ w neg h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrDown
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tx@HarpoonlUp}
+% \begin{macro}{\psas@Hlu}
+% A left upward harpoon (arow type Hlu) is typeset by \verb/\tx@HarpoonlUp/
+% (/HarpoonlUp as a PostScript name), where its arrowhead is typeset by an
+% internal macro name (\verb/\psas@Hlu/).
+% \begin{macrocode}
+%leftharpoonup
+%\edef\past@arrowtable{\pst@arrowtable,Hlu-Hlu}
+\def\tx@HarpoonlUp{ \tx@setStrokeTransparency HarpoonlUp }%
+\@namedef{psas@Hlu}{%
+ /HarpoonlUp {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd Hwh L
+ Hwd 0 L
+ 0 0 L
+ w neg h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlUp
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tx@HarpoonlDown}
+% \begin{macro}{\psas@Hld}
+% A left downward harpoon (arow type Hld) is typeset by \verb/\tx@HarpoonlDown/
+% (/HarpoonlDown as a PostScript name), where its arrowhead is typeset by an
+% internal macro name (\verb/\psas@Hld/).
+% \begin{macrocode}
+%leftharpoondown
+%\edef\past@arrowtable{\pst@arrowtable,Hld-Hld}
+\def\tx@HarpoonlDown{ \tx@setStrokeTransparency HarpoonlDown }%
+\@namedef{psas@Hld}{%
+ /HarpoonlDown {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd neg Hwh L
+ Hwd neg 0 L
+ 0 0 L
+ w h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlDown
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\eqHarpoon@Element}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\eqHarpoon@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.13em)(#1,0.13em)%
+\end{pspicture}\hss}}
+%
+%\def\eqHarpoon@Element#1{\hbox to#1{\hss%
+%\begin{pspicture}(0,0)(#1,0.43em)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(0pt,0.43em)(#1,0.43em)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(0pt,0.13em)(#1,0.13em)%
+%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.29em)(#1,0.29em)%
+%\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% Equilibirum arrows with uneven lengths are defined by using the \verb/\psline/ command
+% of the pstricks package.
+% \changes{v1.02}{2009/11/08}{2nd Version}
+%
+% \begin{macro}{\reqArrow@Element}
+% \begin{macro}{\leqArrow@Element}
+% \begin{macrocode}
+\def\reqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(\dimen1,0.13em)(\dimen2,0.13em)\endgroup}
+\def\leqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(\dimen1,0.43em)(\dimen2,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0.13em)(#1,0.13em)\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reqHarpoon@Element}
+% \begin{macro}{\leqHarpoon@Element}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\reqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(\dimen1,0.13em)(\dimen2,0.13em)%
+\endgroup}
+\def\leqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(\dimen1,0.43em)(\dimen2,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.13em)(#1,0.13em)%
+\endgroup}
+%
+%\def\reqHarpoon@Element#1{\begingroup%
+%\dimen1=#1%
+%\dimen0=\eqlbarrowstretch\dimen1%
+%\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+%\dimen2=\dimen1 \advance\dimen2 by\dimen0
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(0pt,0.43em)(#1,0.43em)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(\dimen1,0.13em)(\dimen2,0.13em)%
+%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.29em)(#1,0.29em)%
+%\endgroup}
+%\def\leqHarpoon@Element#1{\begingroup%
+%\dimen1=#1%
+%\dimen0=\eqlbarrowstretch\dimen1%
+%\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+%\dimen2=\dimen1 \advance\dimen2 by\dimen0
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%\{->}(\dimen1,0.43em)(\dimen2,0.43em)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(0pt,0.13em)(#1,0.13em)%
+%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.287em)(#1,0.287em)%
+%\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% Each arrow element is used in the following common command for drawing
+% horizontal reaction arrows.
+% \changes{v1.02}{2009/11/08}{changed definition;
+% added \cs{reactarrowsep} and \cs{reactarrowseprate}}
+%
+% \begin{verbatim}
+% \reactarrowsep (dimension) for adjusting the two vertical spaces (default value 0pt)
+% \reactarrowseprate (string) for adjusting the lower vertical space (default 1.0)
+% \end{verbatim}
+%
+% \begin{macro}{\react@@rlarrow}
+% \begin{macrocode}
+\def\react@@rlarrow[#1]#2#3#4#5{\ensuremath{\mathrel{%
+\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par%
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep%
+ \begin{pspicture}(0,0)(\@tempdimX,0.6em)%
+% \Arrow@Element{\@tempdimX}%
+ \put(0,0){\Arrow@Element{\@tempdimX}}%
+ \end{pspicture}%
+ \par%
+ \vskip\reactarrowseprate\reactarrowsep%
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}\endgroup}}}}
+%(old definition)
+%\def\react@@rlarrow[#1]#2#3#4#5{%
+%\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax%
+% \begin{pspicture}(\@tempdimX,0)%
+% \rput[bl](0,0.86em){\hbox to\@tempdimX{\hss
+% \begin{tabular}{c}#4%
+% \end{tabular}\hss}}%
+% \Arrow@Element{\@tempdimX}%
+% \rput[tl](0,-0.3em){\hbox to\@tempdimX{\hss
+% \begin{tabular}{c}%
+% #5\end{tabular}\hss}}%
+% \end{pspicture}\endgroup}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactrarrow}
+% \begin{macro}{\reactlarrow}
+% \begin{macro}{\reactlrarrow}
+% \begin{macro}{\reactEqarrow}%2009/11/19 renamed from \verb/\reacteqarrow/
+% \begin{macro}{\reacteqarrow}%2009/11/19
+% \begin{macrocode}
+% ******************* 1991 Oct 4 S. Fujita
+% * reaction arrows * Revised 1992 May 24 S.Fujita%1999/02/02 SF
+% ******************* Redifined 2002 May 30 S. Fujita for pstricks
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+%
+% #1 yoko #2 ue, #3 haba, #4 ya no ue, #5 ya no shita
+%
+\def\newreactrarrow{%
+\@ifnextchar[{\newreact@rarrow}{\newreact@rarrow[0pt]}}
+\def\newreact@rarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\rArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlarrow{%
+\@ifnextchar[{\newreact@larrow}{\newreact@larrow[0pt]}}
+\def\newreact@larrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlrarrow{%
+\@ifnextchar[{\newreact@lrarrow}{\newreact@lrarrow[0pt]}}
+\def\newreact@lrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lrArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactEqarrow{%
+\@ifnextchar[{\newreact@Eqarrow}{\newreact@Eqarrow[0pt]}}
+\def\newreact@Eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreacteqarrow{%
+\@ifnextchar[{\newreact@eqarrow}{\newreact@eqarrow[0pt]}}
+\def\newreact@eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqHarpoon@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactrarrow=\newreactrarrow
+%\let\reactlarrow=\newreactlarrow
+%\let\reactlrarrow=\newreactlrarrow
+%\let\reactEqarrow=\newreactEqarrow
+%\let\reacteqarrow=\newreacteqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactREqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactLEqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactreqarrow}
+% \begin{macro}{\reactleqarrow}
+%
+% These commands have been added for the XyMTeX version 4.05.
+% The {\sffamily chemist} package additionally defines arrows with variable length
+% for drawing chemical equilibrium, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% The length of either one of arrows can be reduced by \verb/\eqlbarrowstretch/.
+%
+% \changes{v4.05}{2009/11/08}{added \cs{reactreqarrow} and \cs{reactleqarrow}}
+%
+% \begin{macrocode}
+\def\newreactREqarrow{%
+\@ifnextchar[{\newreact@REqarrow}{\newreact@REqarrow[0pt]}}
+\def\newreact@REqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactLEqarrow{%
+\@ifnextchar[{\newreact@LEqarrow}{\newreact@LEqarrow[0pt]}}
+\def\newreact@LEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactreqarrow{%
+\@ifnextchar[{\newreact@reqarrow}{\newreact@reqarrow[0pt]}}
+\def\newreact@reqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactleqarrow{%
+\@ifnextchar[{\newreact@leqarrow}{\newreact@leqarrow[0pt]}}
+\def\newreact@leqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactREqarrow=\newreactREqarrow
+%\let\reactLEqarrow=\newreactLEqarrow
+%\let\reactreqarrow=\newreactreqarrow
+%\let\reactleqarrow=\newreactleqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing vertical reaction arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\dArrow@Element}
+% \begin{macro}{\uArrow@Element}
+% \begin{macro}{\veqArrow@Element}
+% \begin{macro}{\duArrow@Element}
+% \begin{macrocode}
+\def\dArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,#1)(0pt,0pt)}
+\def\uArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,#1)(0pt,0pt)}
+\def\veqArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(-0.15em,#1)(-0.15em,0pt)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0.15em,#1)(0.15em,0pt)}
+\def\duArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,#1)(0pt,0pt)}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\veqHarpoon@Element}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\veqHarpoon@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hrd}(-0.15em,#1)(-0.15em,0pt)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hlu-}(0.15em,#1)(0.15em,0pt)%
+}
+%
+%\def\veqHarpoon@Element#1{%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(-0.15em,#1)(-0.15em,0pt)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(0.15em,#1)(0.15em,0pt)%
+%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,0em)(0,#1)%
+%}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% vertical reaction arrows.
+%
+% \begin{macro}{\react@@duarrow}
+% \begin{macrocode}
+\def\react@@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimY=#3\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt\begin{tabular}{c}%
+\begin{pspicture}(0,0)(0,\@tempdimY)%
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactdarrow}
+% \begin{macro}{\reactuarrow}
+% \begin{macro}{\reactduarrow}
+% \begin{macro}{\reactVEqarrow}%%renamed 2009/11/19
+% \begin{macro}{\reactveqarrow}%%renamed 2009/11/19
+% Vertical reaction arrows has been added.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \begin{macrocode}
+\def\newreactdarrow{%
+\@ifnextchar[{\newreact@darrow}{\newreact@darrow[0pt]}}
+\def\newreact@darrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactuarrow{%
+\@ifnextchar[{\newreact@uarrow}{\newreact@uarrow[0pt]}}
+\def\newreact@uarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\uArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactduarrow{%
+\@ifnextchar[{\newreact@duarrow}{\newreact@duarrow[0pt]}}
+\def\newreact@duarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\duArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactVEqarrow{%
+\@ifnextchar[{\newreact@VEqarrow}{\newreact@VEqarrow[0pt]}}
+\def\newreact@VEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactveqarrow{%
+\@ifnextchar[{\newreact@veqarrow}{\newreact@veqarrow[0pt]}}
+\def\newreact@veqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqHarpoon@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactdarrow=\newreactdarrow
+%\let\reactuarrow=\newreactuarrow
+%\let\reactduarrow=\newreactduarrow
+%\let\reactVEqarrow=\newreactVEqarrow
+%\let\reactveqarrow=\newreactveqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing down-sloped reaction arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\seArrow@Element}
+% \begin{macrocode}
+\def\seArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,#1)(#1,0pt)}
+\def\nwArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,#1)(#1,0pt)}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% down-sloped reaction arrows.
+%
+% \begin{macro}{\react@@decrarrow}
+% \begin{macrocode}
+\def\react@@decrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3\divide\@tempdimX by2\relax
+\@tempdimY=#3\relax\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt\begin{tabular}{c}
+\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY)
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactsearrow}
+% \begin{macro}{\reactnwrarrow}
+% Further reaction arrows have been added.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \begin{macrocode}
+\def\newreactsearrow{%
+\@ifnextchar[{\newreact@searrow}{\newreact@searrow[0pt]}}
+\def\newreact@searrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\seArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactnwarrow{%
+\@ifnextchar[{\newreact@nwarrow}{\newreact@nwarrow[0pt]}}
+\def\newreact@nwarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\nwArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactsearrow=\newreactsearrow
+%\let\reactnwarrow=\newreactnwarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Several elements for drawing up-sloped reaction arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\neArrow@Element}
+% \begin{macrocode}
+\def\neArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0pt)(#1,#1)}
+\def\swArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0pt)(#1,#1)}
+% \end{macrocode}
+% \end{macro}
+%
+% Each arrow element is used in the following common command for drawing
+% up-sloped reaction arrows.
+%
+% \begin{macro}{\react@@incrarrow}
+% \begin{macrocode}
+\def\react@@incrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3 \divide\@tempdimX by2
+\@tempdimY=#3%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt
+\begin{tabular}{c}
+\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY)
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\reactnearrow}
+% \begin{macro}{\reactswarrow}
+% \begin{macrocode}
+\def\newreactnearrow{%
+\@ifnextchar[{\newreact@nearrow}{\newreact@nearrow[0pt]}}
+\def\newreact@nearrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\neArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactswarrow{%
+\@ifnextchar[{\newreact@swarrow}{\newreact@swarrow[0pt]}}
+\def\newreact@swarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\swArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+%\let\reactnearrow=\newreactnearrow
+%\let\reactswarrow=\newreactswarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped equilibrium arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\deqArrow@Element}
+% \begin{macro}{\ueqArrow@Element}
+% \begin{macrocode}
+\def\deqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(1.2pt,\@tempdima)(\@tempdima,1.2pt)%
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(-1.2pt,\@tempdima)(\@tempdima,-1.2pt)\endgroup}
+\def\ueqArrow@Element#1{%
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped equilibrium harpoons within the scope of
+% pstricks package are defined.
+% \changes{v1.02}{2009/11/19}{Added}
+%
+% \begin{macro}{\deqHarpoon@Element}
+% \begin{macro}{\ueqHarpoon@Element}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\deqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(1.2pt,\@tempdima)(\@tempdima,1.2pt)%
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(-1.2pt,\@tempdimb)(\@tempdimb,-1.2pt)%
+\endgroup}
+\def\ueqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)%
+\endgroup}
+%
+%\def\deqHarpoon@Element#1{%
+%\begingroup
+%\@tempdima=#1 \advance\@tempdima by1.2pt
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(1.2pt,\@tempdima)(\@tempdima,1.2pt)%
+%\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(-1.2pt,\@tempdimb)(\@tempdimb,-1.2pt)%
+%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,#1)(#1,0pt)%
+%\endgroup}
+%\def\ueqHarpoon@Element#1{%
+%\begingroup
+%\@tempdima=#1 \advance\@tempdima by-1.2pt
+%\@tempdimb=#1 \advance\@tempdimb by1.2pt
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)%
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)%
+%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,0pt)(#1,#1)%
+%\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactDEqarrow}
+% \begin{macro}{\reactUEqarrow}
+% \begin{macro}{\reactdeqarrow}
+% \begin{macro}{\reactueqarrow}
+% Further reaction arrows have been added.
+% \changes{v1.00}{2002/05/30}{First Version}
+% \begin{macrocode}
+\def\newreactDEqarrow{\@ifnextchar[%]
+{\newreact@DEqarrow}{\newreact@DEqarrow[0pt]}}
+\def\newreact@DEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactUEqarrow{\@ifnextchar[%]
+{\newreact@UEqarrow}{\newreact@UEqarrow[0pt]}}
+\def\newreact@UEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactdeqarrow{\@ifnextchar[%]
+{\newreact@deqarrow}{\newreact@deqarrow[0pt]}}
+\def\newreact@deqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactueqarrow{\@ifnextchar[%]
+{\newreact@ueqarrow}{\newreact@ueqarrow[0pt]}}
+\def\newreact@ueqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+%\let\reactDEqarrow=\newreactDEqarrow
+%\let\reactUEqarrow=\newreactUEqarrow
+%\let\reactdeqarrow=\newreactdeqarrow
+%\let\reactueqarrow=\newreactueqarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Additional elements for drawing down- and up-sloped double-headed arrows
+% within the scope of pstricks package are defined first.
+%
+% \begin{macro}{\ulrArrow@Element}
+% \begin{macro}{\dlrArrow@Element}
+% \begin{macrocode}
+\def\ulrArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,0pt)(#1,#1)}
+\def\dlrArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,#1)(#1,0pt)}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\reactulrarrow}
+% \begin{macro}{\reactdlrarrow}
+% \begin{macrocode}
+\def\newreactulrarrow{\@ifnextchar[%]
+{\newreact@ulrarrow}{\newreact@ulrarrow[0pt]}}
+\def\newreact@ulrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ulrArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactdlrarrow{\@ifnextchar[%]
+{\newreact@dlrarrow}{\newreact@dlrarrow[0pt]}}
+\def\newreact@dlrarrow[#1]#2#3#4#5{
+\let\Arrow@Element=\dlrArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+%\let\reactulrarrow=\newreactulrarrow
+%\let\reactdlrarrow=\newreactdlrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% A new command \verb/\electronshiftAH/ is added to defining bent (curved) arrows
+% and harpoons.
+% \changes{v1.03}{2009/12/01}{Added}
+%
+% \begin{macro}{\electronshiftAH}
+% \begin{macrocode}
+\def\electronshiftAH#1(#2,#3)(#4,#5)(#6,#7){%
+\@ifnextchar(%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#6,#7)}%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#4,#5)(#6,#7)}}
+\def\electr@nshiftAH#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){%
+\psbezier[unit=\unitlength,linewidth=0.4pt]{#1}%
+(#2,#3)(#4,#5)(#6,#7)(#8,#9)%
+}%
+%\def\electronshiftAH#1{%
+%\pscurve[unit=\unitlength,linewidth=0.4pt,arrowsize=2pt 2,%
+%arrowlength=1.6,arrowinset=0.6]{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% Several commmands for drawing curved harpoons are defined as follows:
+% \begin{macro}{\electronshiftHru}
+% \begin{macro}{\electronshiftHrd}
+% \begin{macro}{\electronshiftHlu}
+% \begin{macro}{\electronshiftHld}
+% \begin{macrocode}
+\def\electronshiftHru{\electronshiftAH{-Hru}}
+\def\electronshiftHrd{\electronshiftAH{-Hrd}}
+\def\electronshiftHlu{\electronshiftAH{Hlu-}}
+\def\electronshiftHld{\electronshiftAH{Hld-}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Several commmands for drawing curved arrows are defined as follows:
+% \begin{macro}{\electronshiftArrowr}
+% \begin{macro}{\electronshiftArrowl}
+% \begin{macrocode}
+\def\electronshiftArrowr{\electronshiftAH{->}}
+\def\electronshiftArrowl{\electronshiftAH{<-}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The {\sffamily chmst-ps} package defines double-line arrows with variable
+% length for drawing reaction schemes, where additional information
+% can be written on the upper and/or downward sides of each arrow.
+% \changes{v1.00}{2002/05/30}{First Version}
+%
+% Several elements for drawing horizontal scheme arrows within the scope of
+% pstricks package are defined first.
+%
+% \begin{macro}{\lSchemeArrow@Element}
+% \begin{macrocode}
+\def\lSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<-}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\rSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\lrSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\schemelarrow}
+% \begin{macro}{\schemerarrow}
+% \begin{macro}{\schemelrarrow}
+%
+% \begin{macrocode}
+% ********************************
+% * scheme arrows *
+% * 1991 OCT 4 S. Fujita *
+% * Revised 1992 May 24 S.Fujita * 1999/02/02 by S. Fujita
+% ******************************** Redefined 2002/05/30 by SF
+% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita
+\def\newschemelarrow#1#2#3#4{%
+\let\Arrow@Element=\lSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemerarrow#1#2#3#4{%
+\let\Arrow@Element=\rSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemelrarrow#1#2#3#4{%
+\let\Arrow@Element=\lrSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+%%%%2009/11/19
+%\let\schemelarrow=\newschemelarrow
+%\let\schemerarrow=\newschemerarrow
+%\let\schemelrarrow=\newschemelrarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Redefinition of verbatim}
+% (Deleted)
+%
+% \section{Shadowed Boxes}
+% (Deleted)
+%
+% \section{Further boxes}
+% (Deleted)
+%
+% \section{Symbols for instant photography}
+% (Deleted)
+%
+% \section{Various arrows with fixed length}
+%
+% Because various arrows with a fixed length have been defined in the \textsf{chemist} package,
+% the corresponding codes for the \textsf{chmst-ps} package are described here.
+%
+% \changes{v1.02}{2009/11/19}{Added}
+%
+% \begin{macro}{\llongrightarrow}
+% \begin{macro}{\llongleftarrow}
+% \begin{macro}{\Equilibarrow}
+%
+% \begin{macrocode}
+\def\newllongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rArrow@Element{28pt}\hss}}}}
+\def\newllongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lArrow@Element{28pt}\hss}}}}
+\def\newllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lrArrow@Element{28pt}\hss}}}}
+\def\newEquilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqArrow@Element{28pt}\hss}}}}
+%\let\llongrightarrow=\newllongrightarrow
+%\let\llongleftarrow=\newllongleftarrow
+%\let\llongleftrightarrow=\newllongleftrightarrow
+%\let\Equilibarrow=\newEquilibarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\Llongrightarrow}
+% \begin{macro}{\Llongleftarrow}
+% \begin{macro}{\Llongleftrightarrow}
+%
+% \begin{macrocode}
+\def\newLlongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to28pt{\hss\lrSchemeArrow@Element{28pt}\hss}}}}
+%\let\Llongrightarrow=\newLlongrightarrow
+%\let\Llongleftarrow=\newLlongleftarrow
+%\let\Llongleftrightarrow\newLlongleftrightarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\lllongrightarrow}
+% \begin{macro}{\lllongleftarrow}
+% \begin{macro}{\lllongleftrightarrow}
+% \begin{macro}{\Equiliblongarrow}
+%
+% \begin{macrocode}
+\def\newlllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rArrow@Element{35pt}\hss}}}}
+\def\newlllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lArrow@Element{35pt}\hss}}}}
+\def\newlllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lrArrow@Element{35pt}\hss}}}}
+\def\newEquiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqArrow@Element{35pt}\hss}}}}
+%\let\lllongrightarrow=\newlllongrightarrow
+%\let\lllongleftarrow=\newlllongleftarrow
+%\let\lllongleftrightarrow=\newlllongleftrightarrow
+%\let\Equiliblongarrow=\newEquiliblongarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\Lllongrightarrow}
+% \begin{macro}{\Lllongleftarrow}
+% \begin{macro}{\Lllongleftrightarrow}
+%
+% \begin{macrocode}
+\def\newLllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to35pt{\hss\lrSchemeArrow@Element{35pt}\hss}}}}
+%\let\Lllongrightarrow=\newLllongrightarrow
+%\let\Lllongleftarrow=\newLllongleftarrow
+%\let\Lllongleftrightarrow\newLllongleftrightarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% Several elements for drawing horizontal harpoons within the scope of
+% pstricks package are defined first.
+% \changes{v1.02}{2009/11/19}{Added}
+%
+% \begin{macro}{\rightharpoonupElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\rightharpoonupElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+%
+%\def\rightharpoonupElement#1{%
+%\lower0.2pt\hbox to#1{\hss%
+%\begin{pspicture}(0,0)(#1,0.28em)
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(0pt,0.28em)(#1,0.28em)
+%\psline[linewidth=0.36em,linecolor=white]{-}(0pt,0.1em)(#1,0.1em)
+%\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rightharpoondownElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\rightharpoondownElement#1{%
+\raise0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hrd}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+%
+%\def\rightharpoondownElement#1{%
+%\raise0.2pt\hbox to#1{\hss%
+%\begin{pspicture}(0,0)(#1,0.28em)
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{->}(0pt,0.28em)(#1,0.28em)
+%\psline[linewidth=0.34em,linecolor=white]{-}(0pt,0.49em)(#1,0.49em)
+%\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\leftharpoonupElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\leftharpoonupElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hlu-}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+%
+%\def\leftharpoonupElement#1{%
+%\lower0.2pt\hbox to#1{\hss%
+%\begin{pspicture}(0,0)(#1,0.28em)
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(0pt,0.28em)(#1,0.28em)
+%\psline[linewidth=0.36em,linecolor=white]{-}(0pt,0.1em)(#1,0.1em)
+%\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\leftharpoondownElement}
+% \changes{v1.02}{2009/11/19}{Added}
+% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures}
+% \begin{macrocode}
+\def\leftharpoondownElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+%
+%\def\leftharpoondownElement#1{%
+%\lower0.2pt\hbox to#1{\hss%
+%\begin{pspicture}(0,0)(#1,0.28em)
+%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+%{<-}(0pt,0.28em)(#1,0.28em)
+%\psline[linewidth=0.34em,linecolor=white]{-}(0pt,0.49em)(#1,0.49em)
+%\end{pspicture}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\llongrightharpoonup}
+% \begin{macro}{\llongrightharpoondown}
+% \begin{macro}{\llongleftharpoonup}
+% \begin{macro}{\llongleftharpoondown}
+% \begin{macrocode}
+\def\newllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{28pt}}}}
+\def\newllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{28pt}}}}
+\def\newllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{28pt}}}}
+\def\newllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{28pt}}}}
+%\let\llongrightharpoonup=\newllongrightharpoonup
+%\let\llongrightharpoondown=\newllongrightharpoondown
+%\let\llongleftharpoonup=\newllongleftharpoonup
+%\let\llongleftharpoondown=\newllongleftharpoondown
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\lllongrightharpoonup}
+% \begin{macro}{\lllongrightharpoondown}
+% \begin{macro}{\lllongleftharpoonup}
+% \begin{macro}{\lllongleftharpoondown}
+% \begin{macrocode}
+\def\newlllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{35pt}}}}
+\def\newlllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{35pt}}}}
+\def\newlllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{35pt}}}}
+\def\newlllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{35pt}}}}
+%\let\lllongrightharpoonup=\newlllongrightharpoonup
+%\let\lllongrightharpoondown=\newlllongrightharpoondown
+%\let\lllongleftharpoonup=\newlllongleftharpoonup
+%\let\lllongleftharpoondown\newlllongleftharpoondown
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \changes{v1.02}{2009/11/19}{Added}
+% \begin{macro}{\equilibarrow}
+% \begin{macro}{\equiliblongarrow}
+% \begin{macrocode}
+\def\newequilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqHarpoon@Element{28pt}\hss}}}}
+\def\newequiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqHarpoon@Element{35pt}\hss}}}}
+%\let\equilibarrow=\newequilibarrow
+%\let\equiliblongarrow=\newequiliblongarrow
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \section{Chemical Corrections}
+% (Deleted)
+%
+%
+% \section{XyMcompd and XyMtab Environments}
+% (Deleted)
+%
+% \section{Useful commands}
+% (Deleted)
+%
+% \section{Double and triple bonds}
+% (Deleted)
+%
+% \section{Curved Arrows}
+%
+% To illustrate the mechanisms of organic reactions,
+% curved arrows are used to show an electron shift.
+% First, the macros for drawing them are
+% defined as follows.
+% \changes{v1.01}{2004/08/30}{Added at XyMTeX V4.01}
+%
+% \begin{macro}{\electronAHshift}
+% \changes{v5.00}{2010/10/01}{Redefined for compatibility to PDF mode}
+%
+% Arrows having a usual arrow head are defined as follows.
+% Keywords for differentiation are: r (right) and l (left),
+% which are contained in the middle of each command name.
+%
+% The |\pscurve| command of the \textsf{pstricks} package has been
+% replaced by |\psbezier|, where two control points are calculated
+% by means of |\calcontrolpoints| defined in the \textsf{chemist} package.
+%
+% \begin{macrocode}
+\def\electronAHshift{%
+\@ifnextchar[{\@electronAHshift}{\@electronAHshift[0]}}
+\def\@electronAHshift[#1](#2,#3)(#4,#5)#6{%
+\@tempcntXa=#2 \@tempcntYa=#3
+\@tempcntXb=#4 \@tempcntYb=#5
+\calcontrolpoints{#1}%defined in chemist package
+%\pscurve[unit=\unitlength,linewidth=0.4pt]{#6}%
+\psbezier[unit=\unitlength,linewidth=0.4pt]{#6}%
+(#2,#3)(\@cnttempa,\@cnttempb)(\@tempcntXc,\@tempcntYc)(#4,#5)%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronrshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined using two control points}
+% \begin{macrocode}
+\def\electronrshiftarrow{%
+\@ifnextchar[{\@electronrshiftarrow}{\@electronrshiftarrow[0]}}
+\def\@electronrshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){->}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){->}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){->}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronlshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined using two control points}
+% \begin{macrocode}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){<-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){<-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){<-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronlshiftarrow}
+% \changes{v5.00}{2010/10/01}{Redefined using two control points}
+% \begin{macrocode}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){<-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){<-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){<-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+% \end{macrocode}
+% \end{macro}
+%
+% Arrows having a harpoon-type head are defined as follows.
+% Keywords for differentiation are:
+% Hru (harpoon right upward), Hrd (harpoon right downward),
+% Hlu (harpoon left upward), and Hld (harpoon left downward).
+%
+% \begin{macro}{\electronHrushiftarrow}
+% \changes{v5.00}{2010/10/01}{Defined using two control points}
+% \begin{macrocode}
+\def\electronHrushiftarrow{%
+\@ifnextchar[{\@electronHrushiftarrow}{\@electronHrushiftarrow[0]}}
+\def\@electronHrushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-Hru}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-Hru}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-Hru}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronHrdshiftarrow}
+% \changes{v5.00}{2010/10/01}{Defined using two control points}
+% \begin{macrocode}
+\def\electronHrdshiftarrow{%
+\@ifnextchar[{\@electronHrdshiftarrow}{\@electronHrdshiftarrow[0]}}
+\def\@electronHrdshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-Hrd}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-Hrd}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-Hrd}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronHlushiftarrow}
+% \changes{v5.00}{2010/10/01}{Defined using two control points}
+% \begin{macrocode}
+%
+% \begin{macrocode}
+\def\electronHlushiftarrow{%
+\@ifnextchar[{\@electronHlushiftarrow}{\@electronHlushiftarrow[0]}}
+\def\@electronHlushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){Hlu-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){Hlu-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){Hlu-}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electronHrdshiftarrow}
+% \changes{v5.00}{2010/10/01}{Defined using two control points}
+% \begin{macrocode}
+%
+% \begin{macrocode}
+\def\electronHldshiftarrow{%
+\@ifnextchar[{\@electronHldshiftarrow}{\@electronHldshiftarrow[0]}}
+\def\@electronHldshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){Hld-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){Hld-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){Hld-}%
+\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section{Initial Setting and Switch to PostScript Arrows}
+%
+% \begin{macro}{\chmstpssw}
+% \begin{macrocode}
+\def\chmstpssw{%setting of the chmst-ps package
+\let\reactrarrow=\newreactrarrow%
+\let\reactlarrow=\newreactlarrow
+\let\reactlrarrow=\newreactlrarrow
+\let\reactEqarrow=\newreactEqarrow
+\let\reacteqarrow=\newreacteqarrow
+%%%%
+\let\reactREqarrow=\newreactREqarrow%
+\let\reactLEqarrow=\newreactLEqarrow
+\let\reactreqarrow=\newreactreqarrow
+\let\reactleqarrow=\newreactleqarrow
+%%%%
+\let\reactdarrow=\newreactdarrow%
+\let\reactuarrow=\newreactuarrow
+\let\reactduarrow=\newreactduarrow
+\let\reactVEqarrow=\newreactVEqarrow
+\let\reactveqarrow=\newreactveqarrow
+%%%%
+\let\reactnearrow=\newreactnearrow%
+\let\reactswarrow=\newreactswarrow
+%%%%
+\let\reactsearrow=\newreactsearrow%
+\let\reactnwarrow=\newreactnwarrow
+%%%%
+\let\reactDEqarrow=\newreactDEqarrow%
+\let\reactUEqarrow=\newreactUEqarrow
+\let\reactdeqarrow=\newreactdeqarrow
+\let\reactueqarrow=\newreactueqarrow
+%%%%
+\let\reactulrarrow=\newreactulrarrow%
+\let\reactdlrarrow=\newreactdlrarrow
+%%%%
+\let\schemelarrow=\newschemelarrow%
+\let\schemerarrow=\newschemerarrow
+\let\schemelrarrow=\newschemelrarrow
+%%%%
+\let\llongrightarrow=\newllongrightarrow%
+\let\llongleftarrow=\newllongleftarrow
+\let\llongleftrightarrow=\newllongleftrightarrow
+\let\Equilibarrow=\newEquilibarrow
+%%%
+\let\Llongrightarrow=\newLlongrightarrow%
+\let\Llongleftarrow=\newLlongleftarrow
+\let\Llongleftrightarrow\newLlongleftrightarrow
+%%%
+\let\lllongrightarrow=\newlllongrightarrow%
+\let\lllongleftarrow=\newlllongleftarrow
+\let\lllongleftrightarrow=\newlllongleftrightarrow
+\let\Equiliblongarrow=\newEquiliblongarrow
+%%%
+\let\Lllongrightarrow=\newLllongrightarrow%
+\let\Lllongleftarrow=\newLllongleftarrow
+\let\Lllongleftrightarrow\newLllongleftrightarrow
+%%%
+\let\llongrightharpoonup=\newllongrightharpoonup%
+\let\llongrightharpoondown=\newllongrightharpoondown
+\let\llongleftharpoonup=\newllongleftharpoonup
+\let\llongleftharpoondown=\newllongleftharpoondown
+%%%
+\let\lllongrightharpoonup=\newlllongrightharpoonup%
+\let\lllongrightharpoondown=\newlllongrightharpoondown
+\let\lllongleftharpoonup=\newlllongleftharpoonup
+\let\lllongleftharpoondown\newlllongleftharpoondown
+%%%
+\let\equilibarrow=\newequilibarrow%
+\let\equiliblongarrow=\newequiliblongarrow
+%%%
+}
+\let\chmstpspdfsw=\chmstpssw%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\chmstpssw%initial setting
+%</chmstps>
+% \end{macrocode}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins
new file mode 100644
index 0000000000..5b3025d1b9
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins
@@ -0,0 +1,50 @@
+\def\batchfile{chmst-ps.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2002, 2004, 2009, 2010 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+Previous Versions:
+Version 1.00 Released on May 30, 2002
+Version 1.01 Released on August 30, 2004
+Version 1.02 Released on November 08, 2009
+Version 1.03 Released on November 26, 2009
+
+Present version (as chmst-ps.dtx etc.):
+Version 5.00 Released on October 01, 2010
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+and the derived file xymtx-ps.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{chmst-ps.drv}{t}{%
+ \from{chmst-ps.dtx}{driver}}
+
+\generateFile{chmst-ps.sty}{t}{%
+ \from{chmst-ps.dtx}{chmstps}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty
new file mode 100644
index 0000000000..f21a0b3c4f
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty
@@ -0,0 +1,743 @@
+%%
+%% This is file `chmst-ps.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chmst-ps.dtx (with options: `chmstps')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2002, 2004, 2009, 2010 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Previous Versions:
+%% Version 1.00 Released on May 30, 2002
+%% Version 1.01 Released on August 30, 2004
+%% Version 1.02 Released on November 08, 2009
+%% Version 1.03 Released on November 26, 2009
+%%
+%% Present version (as chmst-ps.dtx etc.):
+%% Version 5.00 Released on October 01, 2010
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+%% and the derived file xymtx-ps.sty.
+%%
+%% =======================================
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% `chmst-ps.dtx' ver1.00 (for LaTeX2e) 2002/05/30
+%% `chmst-ps.dtx' ver1.01 (for LaTeX2e) 2004/08/30
+%% `chmst-ps.dtx' ver1.02 (for LaTeX2e) 2009/11/08
+%% `chmst-ps.dtx' ver1.03 (for LaTeX2e) 2009/11/26
+%% `chmst-ps.dtx' ver5.00 (for LaTeX2e) 2010/10/01
+%% by Shinsaku Fujita
+%%
+\def\j@urnalname{chmst-ps} \def\journalID{chmst-ps}
+\def\versi@ndate{October 01, 2010}
+\def\versi@nno{ver5.00}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space
+[\copyrighth@lder]}
+\typeout{chmst-ps.sty ver5.00 (for LaTeX2e) 2010/10/01[SF]}
+\@ifundefined{if@@@chemtimes}{\newif\if@@@chemtimes}{}
+\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes
+\DeclareOption{chemtimes}{\@@@chemtimestrue}
+\@@@chemtimesfalse
+\ProcessOptions
+\if@@@chemtimes\if@@chemtimes\else
+ \PackageError{chmst-ps}
+ {The option ``chemtimes'' is not permitted}
+ {You should use this option after the chemtimes package is loaded.}
+\fi\fi
+\if@@@chemtimes
+\RequirePackage[chemtimes]{chemist}%
+\else
+\RequirePackage{chemist}%
+\fi
+\RequirePackage{xymtx-ps}%
+\newdimen\@tempdimX
+\newdimen\@tempdimY
+\def\rArrow@Element#1{\begingroup\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}\endgroup}
+\let\Arrow@Element=\rArrow@Element
+\def\lArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{<-}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\lrArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,%
+arrowlength=1.6,arrowinset=0.6]{<->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\eqArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0.13em)(#1,0.13em)%
+\end{pspicture}\hss}}
+\RequirePackage{pstricks}%
+\edef\past@arrowtable{\pst@arrowtable,Hru-Hru,Hrd-Hrd,Hlu-Hlu,Hld-Hld}
+\def\tx@HarpoonrUp{ \tx@setStrokeTransparency HarpoonrUp }%
+\@namedef{psas@Hru}{%
+ /HarpoonrUp{%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd neg Hwh L
+ Hwd neg 0 L
+ 0 0 L
+ w h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrUp
+}
+\def\tx@HarpoonrDown{ \tx@setStrokeTransparency HarpoonrDown }%
+\@namedef{psas@Hrd}{%
+ /HarpoonrDown {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd Hwh L
+ Hwd 0 L
+ 0 0 L
+ w neg h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrDown
+}
+\def\tx@HarpoonlUp{ \tx@setStrokeTransparency HarpoonlUp }%
+\@namedef{psas@Hlu}{%
+ /HarpoonlUp {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd Hwh L
+ Hwd 0 L
+ 0 0 L
+ w neg h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlUp
+}
+\def\tx@HarpoonlDown{ \tx@setStrokeTransparency HarpoonlDown }%
+\@namedef{psas@Hld}{%
+ /HarpoonlDown {%PostScript Procedure
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ CLW 2 div /Hwd ED
+ h a sub /Hwh ED
+ 0 Hwh moveto
+ Hwd neg Hwh L
+ Hwd neg 0 L
+ 0 0 L
+ w h L
+ 0 Hwh L
+ gsave fill grestore
+}def
+\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlDown
+}
+\def\eqHarpoon@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.13em)(#1,0.13em)%
+\end{pspicture}\hss}}
+\def\reqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(\dimen1,0.13em)(\dimen2,0.13em)\endgroup}
+\def\leqArrow@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(\dimen1,0.43em)(\dimen2,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0.13em)(#1,0.13em)\endgroup}
+\def\reqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.43em)(#1,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(\dimen1,0.13em)(\dimen2,0.13em)%
+\endgroup}
+\def\leqHarpoon@Element#1{\begingroup%
+\dimen1=#1%
+\dimen0=\eqlbarrowstretch\dimen1%
+\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax
+\dimen2=\dimen1 \advance\dimen2 by\dimen0
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(\dimen1,0.43em)(\dimen2,0.43em)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.13em)(#1,0.13em)%
+\endgroup}
+\def\react@@rlarrow[#1]#2#3#4#5{\ensuremath{\mathrel{%
+\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax%
+ \parbox{#3}{\centering
+ \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par%
+ \vskip-0.2\normalbaselineskip\vskip\reactarrowsep%
+ \begin{pspicture}(0,0)(\@tempdimX,0.6em)%
+ \put(0,0){\Arrow@Element{\@tempdimX}}%
+ \end{pspicture}%
+ \par%
+ \vskip\reactarrowseprate\reactarrowsep%
+ \vskip-0.1\normalbaselineskip\ChemStrut{#5}}\endgroup}}}}
+\def\newreactrarrow{%
+\@ifnextchar[{\newreact@rarrow}{\newreact@rarrow[0pt]}}
+\def\newreact@rarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\rArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlarrow{%
+\@ifnextchar[{\newreact@larrow}{\newreact@larrow[0pt]}}
+\def\newreact@larrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactlrarrow{%
+\@ifnextchar[{\newreact@lrarrow}{\newreact@lrarrow[0pt]}}
+\def\newreact@lrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\lrArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactEqarrow{%
+\@ifnextchar[{\newreact@Eqarrow}{\newreact@Eqarrow[0pt]}}
+\def\newreact@Eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqArrow@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreacteqarrow{%
+\@ifnextchar[{\newreact@eqarrow}{\newreact@eqarrow[0pt]}}
+\def\newreact@eqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\eqHarpoon@Element%
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactREqarrow{%
+\@ifnextchar[{\newreact@REqarrow}{\newreact@REqarrow[0pt]}}
+\def\newreact@REqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactLEqarrow{%
+\@ifnextchar[{\newreact@LEqarrow}{\newreact@LEqarrow[0pt]}}
+\def\newreact@LEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqArrow@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactreqarrow{%
+\@ifnextchar[{\newreact@reqarrow}{\newreact@reqarrow[0pt]}}
+\def\newreact@reqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\reqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactleqarrow{%
+\@ifnextchar[{\newreact@leqarrow}{\newreact@leqarrow[0pt]}}
+\def\newreact@leqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\leqHarpoon@Element
+\react@@rlarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\dArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,#1)(0pt,0pt)}
+\def\uArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,#1)(0pt,0pt)}
+\def\veqArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(-0.15em,#1)(-0.15em,0pt)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0.15em,#1)(0.15em,0pt)}
+\def\duArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,#1)(0pt,0pt)}
+\def\veqHarpoon@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hrd}(-0.15em,#1)(-0.15em,0pt)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hlu-}(0.15em,#1)(0.15em,0pt)%
+}
+\def\react@@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimY=#3\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}%
+{\tabcolsep=0pt\begin{tabular}{c}%
+\begin{pspicture}(0,0)(0,\@tempdimY)%
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}\end{tabular}}%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactdarrow{%
+\@ifnextchar[{\newreact@darrow}{\newreact@darrow[0pt]}}
+\def\newreact@darrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\dArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactuarrow{%
+\@ifnextchar[{\newreact@uarrow}{\newreact@uarrow[0pt]}}
+\def\newreact@uarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\uArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactduarrow{%
+\@ifnextchar[{\newreact@duarrow}{\newreact@duarrow[0pt]}}
+\def\newreact@duarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\duArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\newreactVEqarrow{%
+\@ifnextchar[{\newreact@VEqarrow}{\newreact@VEqarrow[0pt]}}
+\def\newreact@VEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqArrow@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactveqarrow{%
+\@ifnextchar[{\newreact@veqarrow}{\newreact@veqarrow[0pt]}}
+\def\newreact@veqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\veqHarpoon@Element
+\react@@duarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\seArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,#1)(#1,0pt)}
+\def\nwArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,#1)(#1,0pt)}
+\def\react@@decrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3\divide\@tempdimX by2\relax
+\@tempdimY=#3\relax\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt\begin{tabular}{c}
+\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY)
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactsearrow{%
+\@ifnextchar[{\newreact@searrow}{\newreact@searrow[0pt]}}
+\def\newreact@searrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\seArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactnwarrow{%
+\@ifnextchar[{\newreact@nwarrow}{\newreact@nwarrow[0pt]}}
+\def\newreact@nwarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\nwArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\neArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(0pt,0pt)(#1,#1)}
+\def\swArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(0pt,0pt)(#1,#1)}
+\def\react@@incrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{%
+\@tempdimX=#3 \divide\@tempdimX by2
+\@tempdimY=#3%
+\def\arraystretch{0.8}%
+\begin{tabular}{l}#4\end{tabular}\kern1em%
+{\tabcolsep=0pt
+\begin{tabular}{c}
+\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY)
+\Arrow@Element{\@tempdimY}%
+\end{pspicture}%
+\end{tabular}}\kern1em%
+\begin{tabular}{l}#5\end{tabular}}}
+\def\newreactnearrow{%
+\@ifnextchar[{\newreact@nearrow}{\newreact@nearrow[0pt]}}
+\def\newreact@nearrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\neArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactswarrow{%
+\@ifnextchar[{\newreact@swarrow}{\newreact@swarrow[0pt]}}
+\def\newreact@swarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\swArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%%2009/11/19
+\def\deqArrow@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(1.2pt,\@tempdima)(\@tempdima,1.2pt)%
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(-1.2pt,\@tempdima)(\@tempdima,-1.2pt)\endgroup}
+\def\ueqArrow@Element#1{%
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{->}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)}
+\def\deqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(1.2pt,\@tempdima)(\@tempdima,1.2pt)%
+\@tempdimb=#1 \advance\@tempdimb by-1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(-1.2pt,\@tempdimb)(\@tempdimb,-1.2pt)%
+\endgroup}
+\def\ueqHarpoon@Element#1{%
+\begingroup
+\@tempdima=#1 \advance\@tempdima by-1.2pt
+\@tempdimb=#1 \advance\@tempdimb by1.2pt
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)%
+\endgroup}
+\def\newreactDEqarrow{\@ifnextchar[%]
+{\newreact@DEqarrow}{\newreact@DEqarrow[0pt]}}
+\def\newreact@DEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactUEqarrow{\@ifnextchar[%]
+{\newreact@UEqarrow}{\newreact@UEqarrow[0pt]}}
+\def\newreact@UEqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\newreactdeqarrow{\@ifnextchar[%]
+{\newreact@deqarrow}{\newreact@deqarrow[0pt]}}
+\def\newreact@deqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\deqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactueqarrow{\@ifnextchar[%]
+{\newreact@ueqarrow}{\newreact@ueqarrow[0pt]}}
+\def\newreact@ueqarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ueqHarpoon@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\ulrArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,0pt)(#1,#1)}
+\def\dlrArrow@Element#1{%
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{<->}(0pt,#1)(#1,0pt)}
+\def\newreactulrarrow{\@ifnextchar[%]
+{\newreact@ulrarrow}{\newreact@ulrarrow[0pt]}}
+\def\newreact@ulrarrow[#1]#2#3#4#5{%
+\let\Arrow@Element=\ulrArrow@Element
+\react@@incrarrow[#1]{#2}{#3}{#4}{#5}}
+\def\newreactdlrarrow{\@ifnextchar[%]
+{\newreact@dlrarrow}{\newreact@dlrarrow[0pt]}}
+\def\newreact@dlrarrow[#1]#2#3#4#5{
+\let\Arrow@Element=\dlrArrow@Element
+\react@@decrarrow[#1]{#2}{#3}{#4}{#5}}
+%%%%2009/11/19
+\def\electronshiftAH#1(#2,#3)(#4,#5)(#6,#7){%
+\@ifnextchar(%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#6,#7)}%
+{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#4,#5)(#6,#7)}}
+\def\electr@nshiftAH#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){%
+\psbezier[unit=\unitlength,linewidth=0.4pt]{#1}%
+(#2,#3)(#4,#5)(#6,#7)(#8,#9)%
+}%
+\def\electronshiftHru{\electronshiftAH{-Hru}}
+\def\electronshiftHrd{\electronshiftAH{-Hrd}}
+\def\electronshiftHlu{\electronshiftAH{Hlu-}}
+\def\electronshiftHld{\electronshiftAH{Hld-}}
+\def\electronshiftArrowr{\electronshiftAH{->}}
+\def\electronshiftArrowl{\electronshiftAH{<-}}
+\def\lSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<-}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\rSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\lrSchemeArrow@Element#1{\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)%
+\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,%
+arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<->}(0pt,0.28em)(#1,0.28em)%
+\end{pspicture}\hss}}
+\def\newschemelarrow#1#2#3#4{%
+\let\Arrow@Element=\lSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemerarrow#1#2#3#4{%
+\let\Arrow@Element=\rSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+\def\newschemelrarrow#1#2#3#4{%
+\let\Arrow@Element=\lrSchemeArrow@Element
+\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}}
+%%%%2009/11/19
+\def\newllongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rArrow@Element{28pt}\hss}}}}
+\def\newllongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lArrow@Element{28pt}\hss}}}}
+\def\newllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lrArrow@Element{28pt}\hss}}}}
+\def\newEquilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqArrow@Element{28pt}\hss}}}}
+\def\newLlongrightarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\rSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\lSchemeArrow@Element{28pt}\hss}}}}
+\def\newLlongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to28pt{\hss\lrSchemeArrow@Element{28pt}\hss}}}}
+\def\newlllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rArrow@Element{35pt}\hss}}}}
+\def\newlllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lArrow@Element{35pt}\hss}}}}
+\def\newlllongleftrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lrArrow@Element{35pt}\hss}}}}
+\def\newEquiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqArrow@Element{35pt}\hss}}}}
+\def\newLllongrightarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\rSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\lSchemeArrow@Element{35pt}\hss}}}}
+\def\newLllongleftrightarrow{\ensuremath{%
+\mathrel{\hbox to35pt{\hss\lrSchemeArrow@Element{35pt}\hss}}}}
+\def\rightharpoonupElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hru}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+\def\rightharpoondownElement#1{%
+\raise0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{-Hrd}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+\def\leftharpoonupElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hlu-}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+\def\leftharpoondownElement#1{%
+\lower0.2pt\hbox to#1{\hss%
+\begin{pspicture}(0,0)(#1,0.28em)
+\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]%
+{Hld-}(0pt,0.28em)(#1,0.28em)
+\end{pspicture}\hss}}
+\def\newllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{28pt}}}}
+\def\newllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{28pt}}}}
+\def\newllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{28pt}}}}
+\def\newllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{28pt}}}}
+\def\newlllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{35pt}}}}
+\def\newlllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{35pt}}}}
+\def\newlllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{35pt}}}}
+\def\newlllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{35pt}}}}
+\def\newequilibarrow{\ensuremath{\mathrel{%
+\hbox to28pt{\hss\eqHarpoon@Element{28pt}\hss}}}}
+\def\newequiliblongarrow{\ensuremath{\mathrel{%
+\hbox to35pt{\hss\eqHarpoon@Element{35pt}\hss}}}}
+\def\electronAHshift{%
+\@ifnextchar[{\@electronAHshift}{\@electronAHshift[0]}}
+\def\@electronAHshift[#1](#2,#3)(#4,#5)#6{%
+\@tempcntXa=#2 \@tempcntYa=#3
+\@tempcntXb=#4 \@tempcntYb=#5
+\calcontrolpoints{#1}%defined in chemist package
+\psbezier[unit=\unitlength,linewidth=0.4pt]{#6}%
+(#2,#3)(\@cnttempa,\@cnttempb)(\@tempcntXc,\@tempcntYc)(#4,#5)%
+}
+\def\electronrshiftarrow{%
+\@ifnextchar[{\@electronrshiftarrow}{\@electronrshiftarrow[0]}}
+\def\@electronrshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){->}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){->}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){->}%
+\fi\fi}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){<-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){<-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){<-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+\def\electronlshiftarrow{%
+\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}}
+\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){<-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){<-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){<-}%
+\fi\fi}
+\def\futuresubst#1{\kern140\unitlength #1}
+\def\electronHrushiftarrow{%
+\@ifnextchar[{\@electronHrushiftarrow}{\@electronHrushiftarrow[0]}}
+\def\@electronHrushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-Hru}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-Hru}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-Hru}%
+\fi\fi}
+\def\electronHrdshiftarrow{%
+\@ifnextchar[{\@electronHrdshiftarrow}{\@electronHrdshiftarrow[0]}}
+\def\@electronHrdshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){-Hrd}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){-Hrd}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){-Hrd}%
+\fi\fi}
+\def\electronHlushiftarrow{%
+\@ifnextchar[{\@electronHlushiftarrow}{\@electronHlushiftarrow[0]}}
+\def\@electronHlushiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){Hlu-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){Hlu-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){Hlu-}%
+\fi\fi}
+\def\electronHldshiftarrow{%
+\@ifnextchar[{\@electronHldshiftarrow}{\@electronHldshiftarrow[0]}}
+\def\@electronHldshiftarrow[#1](#2,#3)(#4,#5){%
+\ifnum#2<#4\relax
+\electronAHshift[#1](#2,#3)(#4,#5){Hld-}%
+\else
+\ifcase#1\relax
+\electronAHshift[1](#2,#3)(#4,#5){Hld-}%
+\or
+\electronAHshift[0](#2,#3)(#4,#5){Hld-}%
+\fi\fi}
+\def\chmstpssw{%setting of the chmst-ps package
+\let\reactrarrow=\newreactrarrow%
+\let\reactlarrow=\newreactlarrow
+\let\reactlrarrow=\newreactlrarrow
+\let\reactEqarrow=\newreactEqarrow
+\let\reacteqarrow=\newreacteqarrow
+%%%%
+\let\reactREqarrow=\newreactREqarrow%
+\let\reactLEqarrow=\newreactLEqarrow
+\let\reactreqarrow=\newreactreqarrow
+\let\reactleqarrow=\newreactleqarrow
+%%%%
+\let\reactdarrow=\newreactdarrow%
+\let\reactuarrow=\newreactuarrow
+\let\reactduarrow=\newreactduarrow
+\let\reactVEqarrow=\newreactVEqarrow
+\let\reactveqarrow=\newreactveqarrow
+%%%%
+\let\reactnearrow=\newreactnearrow%
+\let\reactswarrow=\newreactswarrow
+%%%%
+\let\reactsearrow=\newreactsearrow%
+\let\reactnwarrow=\newreactnwarrow
+%%%%
+\let\reactDEqarrow=\newreactDEqarrow%
+\let\reactUEqarrow=\newreactUEqarrow
+\let\reactdeqarrow=\newreactdeqarrow
+\let\reactueqarrow=\newreactueqarrow
+%%%%
+\let\reactulrarrow=\newreactulrarrow%
+\let\reactdlrarrow=\newreactdlrarrow
+%%%%
+\let\schemelarrow=\newschemelarrow%
+\let\schemerarrow=\newschemerarrow
+\let\schemelrarrow=\newschemelrarrow
+%%%%
+\let\llongrightarrow=\newllongrightarrow%
+\let\llongleftarrow=\newllongleftarrow
+\let\llongleftrightarrow=\newllongleftrightarrow
+\let\Equilibarrow=\newEquilibarrow
+%%%
+\let\Llongrightarrow=\newLlongrightarrow%
+\let\Llongleftarrow=\newLlongleftarrow
+\let\Llongleftrightarrow\newLlongleftrightarrow
+%%%
+\let\lllongrightarrow=\newlllongrightarrow%
+\let\lllongleftarrow=\newlllongleftarrow
+\let\lllongleftrightarrow=\newlllongleftrightarrow
+\let\Equiliblongarrow=\newEquiliblongarrow
+%%%
+\let\Lllongrightarrow=\newLllongrightarrow%
+\let\Lllongleftarrow=\newLllongleftarrow
+\let\Lllongleftrightarrow\newLllongleftrightarrow
+%%%
+\let\llongrightharpoonup=\newllongrightharpoonup%
+\let\llongrightharpoondown=\newllongrightharpoondown
+\let\llongleftharpoonup=\newllongleftharpoonup
+\let\llongleftharpoondown=\newllongleftharpoondown
+%%%
+\let\lllongrightharpoonup=\newlllongrightharpoonup%
+\let\lllongrightharpoondown=\newlllongrightharpoondown
+\let\lllongleftharpoonup=\newlllongleftharpoonup
+\let\lllongleftharpoondown\newlllongleftharpoondown
+%%%
+\let\equilibarrow=\newequilibarrow%
+\let\equiliblongarrow=\newequiliblongarrow
+%%%
+}
+\let\chmstpspdfsw=\chmstpssw%for compatibility to PDF mode
+\chmstpssw%initial setting
+\endinput
+%%
+%% End of file `chmst-ps.sty'.
diff --git a/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv
new file mode 100644
index 0000000000..d139e363e1
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv
@@ -0,0 +1,87 @@
+%%
+%% This is file `xymtx-ps.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtx-ps.dtx (with options: `driver')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2002,2004,2005,2009,2010,2011,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Version 1.00 Released on April 30, 2002
+%% Version 4.01 Released on August 30, 2004 (adjust for XyMTeX version 4.01)
+%% Version 4.02 Released on December 20, 2004 (wedged bonds for stereochemistry)
+%% Version 4.03 Released on July 20, 2005 (wave line for stereochemistry)
+%% Version 4.03a Released on August 02, 2005 (Bug fix)
+%% Version 4.04a Released on June 15, 2009 (Bug fix)
+%% Version 4.05 Released on November 05, 2009 (Bug fix)
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on February 24, 2011
+%%
+%% Present version (as xymtx-ps.dtx etc.):
+%% Version 5.01 Released on May 27, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+%% and the derived file xymtx-ps.sty.
+%%
+%% =======================================
+%%
+%% File: xymtx-ps.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesFile{xymtx-ps.dtx}[2013/05/27 v5.01 xymtx-ps package file]
+\documentclass{ltxdoc}
+\GetFileInfo{xymtx-ps.dtx}
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+\title{Chemistry Conventions by {\sffamily xymtx-ps.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+}
+\date{\filedate}
+\begin{document}
+ \maketitle
+ \DocInput{xymtx-ps.dtx}
+\end{document}
+\endinput
+%%
+%% End of file `xymtx-ps.drv'.
diff --git a/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx
new file mode 100644
index 0000000000..10ab845f20
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx
@@ -0,0 +1,899 @@
+% \iffalse meta-comment
+%% File: xymtx-ps.dtx
+%
+% Copyright 2002,2004,2005,2009,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% xymtx-ps.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 4.00}
+% \typeout{ -- Released May 30, 2002 by Shinsaku Fujita}
+% Copyright (C) 2002 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (1) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+% (2) Shinsaku Fujita, ``XyMTeX. Typesetting Chemical Structural
+% Formulas'' Addison-Wesley, New York (1997).
+%
+% Copying of this file is authorized only if either
+% (1) you make absolutely no changes to your copy, including name and
+% directory name; or
+% (2) if you do make changes,
+% (a) you name it something other than the names included in the
+% ``xymtex'' directory and
+% (b) you are requested to leave this notice intact.
+% This restriction ensures that all standard styles are identical.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology,
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 02, 2005}
+% \def\versi@nno{ver4.03a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver4.04a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{November 05, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{February 24, 2011}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 27, 2013}
+% \def\versi@nno{ver5.01bb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 21, 2013}
+% \def\versi@nno{ver5.01bbb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1000}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2002/05/30}{first edition for LaTeX2e}
+% \changes{v4.01}{2004/08/30}{Adjust for XyMTeX version 4.01}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/06/20}{Wave bonds for stereochemistry}
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% \changes{v4.04a}{2009/06/15}{Bug fix for \cs{\Put@@@Direct}}
+% \changes{v4.05}{2009/11/05}{Bug fix for \cs{\Put@@@Direct}; pLaTeXe vs. LaTeXe}
+% \changes{v5.01b}{2011/02/24}{Coloring bonds and atoms}
+% \changes{v5.01bb}{2013/05/27}{\cs{WedgeAsSubstX} etc.}
+% \changes{v5.01bbb}{2013/06/21}{\cs{WavyAsSubst} etc.}
+% \changes{v5.01}{2013/08/16}{\cs{BackGroundBond} etc.}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{xymtx-ps.dtx}[2013/08/16 v5.01 xymtx-ps package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{xymtx-ps.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Chemistry Conventions by {\sffamily xymtx-ps.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+% Department of Chemistry and Materials Technology, \\
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{xymtx-ps.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{xymtx-ps:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% xymtxps & xymtx-ps.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*xymtxps>
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{xymtx-ps}
+\def\versi@ndate{August 16, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf ccycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+% The global setting of unit by |\psset| has caused imcompatibility
+% with the prosper package and so has been changed into a local setting.
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% the prosper package}
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\RequirePackage{chemstr}%added 2010/10/01
+\RequirePackage{pstricks}
+\RequirePackage{pst-coil}
+\unitlength=0.1pt
+%%\psset{xunit=\the\unitlength,yunit=\the\unitlength}%delete August 2, 2005
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+% \end{macrocode}
+%
+% The macro |\Put@@@Line| can draw dashed bonds or wedged bonds for supporting
+% stereochemistry. Two switches are available as follows:
+%
+% \begin{macro}{changedashtowedge}
+% \begin{macro}{changewedgetodash}
+% \changes{v4.02}{2004/12/20}{Switch for wedged bonds}
+% \begin{macrocode}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{Put@@@Line}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/07/20}{Switch for wave bonds}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+%\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz%deleted 2010/10/01
+%\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz%deleted 2010/10/01
+%\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz%deleted 2010/10/01
+\long\gdef\Put@@@Line(#1,#2)(#3,#4)#5{%
+\begingroup
+\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
+\if@thicklinesw
+\if@wedgesw
+\ifmolfront%bold dash bond for skeletal bond for pyranose etc.
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\if@skbondlist%bold dash bond skeletal bond for general cases
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else%wedged bond
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+%,linecolor=\psbondsubstcolor,%added 2011/02/24
+](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)
+\fi\fi
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\else
+\ifwavebond
+\pszigzag[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(\the\@tempcntXa,\the\@tempcntYa)(#1,#2)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thinLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\fi
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of Put@@@Line
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimension| calculates the coordinates of three positions
+% for drawing a wedged bond, which is drawn by the |\pspolygon| command of the PSTricks package.
+%
+% \begin{macro}{stereo@wedgedimension}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \begin{macrocode}
+\newif\if@wedgeadjust
+\def\stereo@wedgedimension(#1,#2)#3{%
+\@tempcntXb=0\relax
+\@tempcntYb=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=0\relax
+%%
+\@wedgeadjustfalse
+\ifnum#1<0 \@tempcntzz=-#1\else\@tempcntzz=#1\fi
+\ifnum#2<0 \@tempcntzzz=-#2\else\@tempcntzzz=#2\fi
+\ifnum#1=0\else
+\multiply\@tempcntzzz by10\relax \divide\@tempcntzzz by\@tempcntzz\fi%% (3/5)x10=6
+\ifnum\@tempcntzzz>7\relax\else\@wedgeadjusttrue\fi
+%%one point of wedge
+\ifnum#1=0\relax
+\@tempcntXb=#3 \advance\@tempcntXb by8\relax
+\@tempcntYb=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXb=0\relax
+\@tempcntYb=#3 \advance\@tempcntYb by8\relax
+\else
+\@tempcntXb=#3\relax
+\@tempcntYb=-#3\relax
+\if@wedgeadjust
+\advance\@tempcntXb by8\relax
+\advance\@tempcntYb by-8\relax
+\fi
+\multiply\@tempcntXb by#2\relax\multiply\@tempcntXb by10\relax
+\divide\@tempcntXb by#1\relax\divide\@tempcntXb by10\relax\fi\fi
+\advance\@tempcntXb by\@tempcntXa\relax
+\advance\@tempcntYb by\@tempcntYa\relax
+%%other point of wedge
+\ifnum#1=0\relax
+\@tempcntXc=-#3 \advance\@tempcntXc by-8\relax
+\@tempcntYc=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=-#3 \advance\@tempcntYc by-8\relax
+\else
+\@tempcntXc=-#3\relax
+\@tempcntYc=#3\relax
+\if@wedgeadjust
+\advance\@tempcntXc by-6\relax
+\advance\@tempcntYc by6\relax
+\fi
+\multiply\@tempcntXc by#2\relax\multiply\@tempcntXc by10\relax
+\divide\@tempcntXc by#1\relax\divide\@tempcntXc by10\relax\fi\fi
+\advance\@tempcntXc by\@tempcntXa\relax
+\advance\@tempcntYc by\@tempcntYa\relax
+}%%end of \stereo@wedgedimension
+% \end{macrocode}
+% \end{macro}
+%
+% The optional argument [Bl] of |\Put@@@Direct| is corrected
+% to be [bl]. This effect appears in the use of tbook.cls etc.
+% \changes{v4.04a}{2009/06/15}{Bug fix for tategumi}
+% \changes{v4.05}{2009/11/05}{Bug fix for tategumi and yokogumi;
+% pLaTeXe vs. LaTeXe}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+%
+% \begin{macro}{Put@@@Direct}
+% \begin{macrocode}
+% \def\Put@@@Direct(#1,#2)#3{\begingroup\psset{unit=\unitlength}%
+% \rput[Bl]{0}(#1,#2){#3}\endgroup}%2009/06/15 2009/11/05bugfix as follows
+\@ifundefined{iftdir}{\newif\iftdir \tdirfalse}{}%pLaTeXe vs. LaTeXe
+\def\Put@@@Direct(#1,#2)#3{\begingroup\psset{unit=\unitlength}%
+\iftdir
+\rput[bl]{0}(#1,#2){#3}\else\rput[Bl]{0}(#1,#2){#3}\fi
+\endgroup}
+\def\Put@@@oCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=.4pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+\def\Put@@@sCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=2pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Dotted lines by the old macro |\d@@t@rline| are changed into hashed dash bonds
+% in the new macro |\d@@t@rline| (|\@wedgeswfalse|). If |\@wedgeswtrue| is
+% declared (default), the new macro draws a hashed wedged bonds.
+%
+% \begin{macro}{d@@t@rline}
+% \changes{v4.02}{2004/12/20}{Hashed wedged bonds for stereochemistry}
+% \begin{macrocode}
+\def\d@@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\if@hasheddashsw
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+\if@skbondlist%hashed dash bond skeletal bond for general cases
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+ \hashedwedgebond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\fi\fi
+}%end of \d@@t@rline
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\hasheddashbond| works in the macro |\d@@t@rline| for
+% drawing a hased dash bond.
+%
+% \begin{macro}{hasheddashbond}
+% \changes{v4.02}{2004/12/20}{Hashed dash bonds for stereochemistry}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\hasheddashbond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntzz=12\relax
+\@tempcntzzz=-30\relax%almost no shortening
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\hashedwedgebond| works in the macro |\d@@t@rline| for
+% drawing a hashed wedged bond.
+%
+% \begin{macro}{hashedwedgebond}
+% \changes{v4.02}{2004/12/20}{Hashed wedged bonds for stereochemistry}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\hashedwedgebond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntXa=#8\relax
+\@tempcntYa=#9\relax
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+%,linecolor=\psbondsubstcolor%added 2011/02/24
+](#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=3.8pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup
+}%%end of \hashedwedgebond
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\bond@shorten| works in the macros |\hasheddashbond| and |\hashedwedgebond| for
+% shortening the resulting hashed bonds. This macro calculates the coordinates of the staring
+% point and the end point.
+%
+% \begin{macro}{bond@shorten}
+% \changes{v4.02}{2004/12/20}{Hashed forms for dash and wedged bonds}
+% \begin{macrocode}
+\def\bond@shorten(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\@tempcntXb=#8\relax
+\@tempcntYb=#9\relax
+\advance\@tempcntXb by-#6\relax \divide\@tempcntXb by\@tempcntzz\relax
+\advance\@tempcntYb by-#7\relax \divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#6\relax
+\advance\@tempcntYb by#7\relax
+\@tempcntXc=#8\relax
+\@tempcntYc=#9\relax
+\advance\@tempcntXc by-#6\relax \divide\@tempcntXc by\@tempcntzzz\relax
+\advance\@tempcntYc by-#7\relax \divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#8\relax
+\advance\@tempcntYc by#9\relax
+}%%end of \bondshorten
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wedges, where
+% |\WedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{WedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{Wedged skeletal bonds}
+% \begin{macrocode}
+\def\WedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimensionX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\stereo@wedgedimension|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{stereo@wedgedimensionX}
+% \changes{v5.01}{2013/05/27}{dimension of wedge}
+% \begin{macrocode}
+\def\stereo@wedgedimensionX(#1,#2)(#3,#4){%
+\@ifnextchar[{\stereo@@wedgedimensionX(#1,#2)(#3,#4)}%
+{\stereo@@wedgedimensionX(#1,#2)(#3,#4)[10]}}
+\def\stereo@@wedgedimensionX(#1,#2)(#3,#4)[#5]{%
+\@tempcnta=-#1\relax
+\advance\@tempcnta by#3\relax
+%%\typeout{KKK:\the\@tempcnta}%
+\@tempcntb=-#2\relax
+\advance\@tempcntb by#4\relax
+%%%\typeout{LLL:\the\@tempcntb}%
+\stereo@wedgedimension(\the\@tempcnta,\the\@tempcntb){#5}%
+%%%\typeout{MMM; (\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)}
+\advance\@tempcntXb by#3\relax
+\advance\@tempcntYb by#4\relax
+\advance\@tempcntXc by#3\relax
+\advance\@tempcntYc by#4\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{Wedged skeletal bonds}
+% \begin{macrocode}
+\def\WedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXPS(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXPS(#1,#2)(#3,#4)[10]}}%
+\def\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\stereo@wedgedimensionX(#1,#2)(#3,#4)[#5]%
+\pspolygon*[unit=\unitlength](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal hashed dash bonds can be changed into hashed wedges, where
+% |\HashWedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{HashWedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{Hashed Wedged skeletal bonds}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\HashWedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\advance\@tempcntXa by-10\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\advance\@tempcntYa by-10\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=5pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstPS
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\HashWedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\HashWedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{HashWedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{Hashed Wedged skeletal bonds}
+% \begin{macrocode}
+\def\HashWedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{
+\HashWedge@sSubstXPS(#1,#2)(#3,#4)}%
+{\HashWedge@sSubstXPS(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@sSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]%
+\ifdim\unitlength>0.08pt
+\@tempdima=#5\unitlength \multiply\@tempdima by3\relax
+\advance\@tempdima by1pt%adjustment
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\else
+\@tempdima=#5\unitlength \multiply\@tempdima by3
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstXPS
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wavy bonds, where
+% |\WavyAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{\WavyAsSubst}
+% \changes{v5.01}{2004/06/21}{For PDF mode: Wavy skeletal bonds}
+% \begin{macrocode}
+\def\WavyAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\wavebondtrue
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WavyAsSubst=\WavyAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WavyAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WavyAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/06/21}{For PDF mode: Checked OK}
+% \begin{macrocode}
+\def\WavyAsSubstXPS(#1,#2)(#3,#4){%
+\pszigzag[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(#3,#4)(#1,#2)%
+}
+\let\WavyAsSubstX=\WavyAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@@bondLINE| is used to draw a bond line.
+% This macro relies on the pstricks package.
+%
+% \begin{macro}{\PUT@@@bondLINE}
+% \begin{macro}{\PutPSLine}
+% \changes{v5.00}{2010/10/01}{For compatibility to PDF mode: macro for
+% drawing a straight-line bond after adjusting its joint position}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\PUT@@@bondLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5](#1,#2)(#3,#4)%
+\endgroup
+}
+\let\PutPSLine=\PUT@@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\PUT@@@dashedLINE| is used to draw a dashed bond line,
+% which usually links two non-adjacent atoms of a cyclic compound.
+% This macro relies on the pstrick package.
+%
+% \begin{macro}{\PUT@@@dashedLINE}
+% \begin{macro}{\PutPSdashed}
+% \begin{macro}{\PutDashedBond}
+% \changes{v5.00}{2010/10/01}{For PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\PUT@@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5,linestyle=dashed,dash=1pt 1.2pt]%
+(#1,#2)(#3,#4)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5,linestyle=dashed,dash=0.8pt 1pt]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}
+\let\PutPSdashed=\PUT@@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command \cs{downnobond} is redefined for pstricks.
+% \begin{macro}{\upnobond}
+% \begin{macro}{\downnobond}
+% \begin{macrocode}
+%\def\upnobond#1#2{%nochange
+%\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\smash{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The macro |\putRoundArrowPS| throws its main task to its inner
+% macro |\putRound@rrowPS|, which treats an optional argument
+% for specifying the direction of an arrow head.
+% The macro |\putRoundArrow| is defined as a user command to
+% assure the compatibility to the PostScript mode.
+%
+% \begin{macro}{\putRoundArrowPS}
+% \begin{macro}{\putRound@rrowPS}
+% \begin{macro}{\putRoundArrow}
+% \changes{v5.00}{2010/10/01}{For PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\putRoundArrowPS{%
+\@ifnextchar[{\putRound@rrowPS}{\putRound@rrowPS[->]}}
+\def\putRound@rrowPS[#1]#2{%
+\pscurve[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=0.4pt]{#1}#2}
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\red etc.}
+% \changes{v5.00}{2010/10/01}{Colors for PS mode}
+% \begin{macrocode}
+\def\red{\color{red}\psset{linecolor=red}}
+\def\blue{\color{blue}\psset{linecolor=blue}}
+\def\green{\color{green}\psset{linecolor=green}}
+\def\black{\color{black}\psset{linecolor=black}}
+\def\cyan{\color{cyan}\psset{linecolor=cyan}}
+\def\yellow{\color{yellow}\psset{linecolor=yellow}}
+\def\magenta{\color{magenta}\psset{linecolor=magenta}}
+\def\white{\color{white}\psset{linecolor=white}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xymcolor}
+% \begin{macro}{\redx etc.}
+% These macros are defined to avoid \texttt{**Warning** color stack underflow}
+% during processing by the dvipdfmx converter.
+% \changes{v5.00}{2010/10/01}{Added: Colors for TeX/LaTeX mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\xymcolor#1#2{\mbox{\color{#1}\psset{linecolor=#1}#2}}
+%defined in the bondcolor packag
+%\def\redx#1{\xymcolor{red}{#1}}
+%\def\bluex#1{\xymcolor{blue}{#1}}
+%\def\greenx#1{\xymcolor{green}{#1}}
+%\def\blackx#1{\xymcolor{black}{#1}}
+%\def\cyanx#1{\xymcolor{cyan}{#1}}
+%\def\yellowx#1{\xymcolor{yellow}{#1}}
+%\def\magentax#1{\xymcolor{magenta}{#1}}
+%\def\whitex#1{\xymcolor{white}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Color@@@Line}
+% \changes{v5.00}{2010/10/01}{For coloring skeletal bond in PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% The last argument (\#7) specifies a line color.
+% This command is used in the definition of |\replaceSKbond|
+% of the \textsf{bondcolor} package by putting \verb/#7=white/.
+% \begin{macro}{\Color@Line}
+% \begin{macrocode}
+\def\Color@@@Line{%
+\@ifnextchar[{\C@lor@@@Line}{\C@lor@@@Line[0.4pt]}}
+\def\C@lor@@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\SlopetoXY(#2,#3)(#4,#5){#6}%common to \Put@@@Line command
+\psline[unit=\unitlength,%
+linewidth=#1,linecolor=#7]
+(#2,#3)(\the\@tempcntXa,\the\@tempcntYa)%
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of \Color@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BackGroundColor}
+% \changes{v5.01}{2013/08/16}{For coloring skeletal bond in PS mode}
+% This macro is redefined for the PostSript mode.
+% \begin{macrocode}
+\def\BackGroundColor{%
+\definecolor{TempColor}{cmyk}{0,0,0,0}%
+\psset{linecolor=TempColor}}
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\changeunitlength| is redefined for using pstricks.
+% \begin{macro}{\changeunitlength}
+% \begin{macrocode}
+\newif\ifsizereduction\sizereductionfalse
+\def\@@changeunitlength#1{\unitlength=#1\relax
+%%\psset{unit=\unitlength}%delete August 02, 2005
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else \let\substfontsize=\normalsize\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{setxymtxps}
+% \changes{v4.02}{2004/12/20}{Added: a switch for wedged bonds}
+% \begin{macrocode}
+\def\setxymtxps{%
+\@ifnextchar[{\@setxymtxps}{\@setxymtxps[0.1pt]}}
+\def\@setxymtxps[#1]{%
+\PSmodetrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\thicklines=\Thick@Lines
+\let\thinlines=\Thin@Lines
+\let\Put@Line=\Put@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+\let\Put@Direct=\Put@@@Direct
+\let\Put@oCircle=\Put@@@oCircle
+\let\Put@sCircle=\Put@@@sCircle
+\let\dotorline=\d@@t@rline
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+\let\changeunitlength=\@@changeunitlength
+\changeunitlength{#1}%
+\wedgehasheddash%
+}
+\setxymtxps
+%</xymtxps>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins
new file mode 100644
index 0000000000..1a958d572c
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins
@@ -0,0 +1,57 @@
+\def\batchfile{xymtx-ps.ins}
+\input docstrip.tex
+\preamble
+
+This is a generated file.
+
+Copyright 2002,2004,2005,2009,2010,2011,2013 by Shinsaku Fujita
+all rights reserved.
+This style file is created for drawing chemical structural formulas
+This style file is to be contained in the ``xymtex'' directory which
+is an input directory for TeX.
+
+This file is part of the XyMTeX system.
+=======================================
+
+Version 1.00 Released on April 30, 2002
+Version 4.01 Released on August 30, 2004 (adjust for XyMTeX version 4.01)
+Version 4.02 Released on December 20, 2004 (wedged bonds for stereochemistry)
+Version 4.03 Released on July 20, 2005 (wave line for stereochemistry)
+Version 4.03a Released on August 02, 2005 (Bug fix)
+Version 4.04a Released on June 15, 2009 (Bug fix)
+Version 4.05 Released on November 05, 2009 (Bug fix)
+Version 5.00 Released on October 01, 2010
+Version 5.01b Released on February 24, 2011
+Version 5.01bb Released on May 27, 2013
+Version 5.01bbb Released on June 21, 2013
+
+Present version (as xymtx-ps.dtx etc.):
+Version 5.01 Released on August 16, 2013
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+The Current Maintainer of this work is Shinsaku Fujita.
+
+This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+and the derived file xymtx-ps.sty.
+
+=======================================
+
+\endpreamble
+
+\keepsilent
+
+\generateFile{xymtx-ps.drv}{t}{%
+ \from{xymtx-ps.dtx}{driver}}
+
+\generateFile{xymtx-ps.sty}{t}{%
+ \from{xymtx-ps.dtx}{xymtxps}}
+
+\endinput
diff --git a/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty
new file mode 100644
index 0000000000..a6a75c3942
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty
@@ -0,0 +1,452 @@
+%%
+%% This is file `xymtx-ps.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xymtx-ps.dtx (with options: `xymtxps')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2002,2004,2005,2009,2010,2011,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%%
+%% Version 1.00 Released on April 30, 2002
+%% Version 4.01 Released on August 30, 2004 (adjust for XyMTeX version 4.01)
+%% Version 4.02 Released on December 20, 2004 (wedged bonds for stereochemistry)
+%% Version 4.03 Released on July 20, 2005 (wave line for stereochemistry)
+%% Version 4.03a Released on August 02, 2005 (Bug fix)
+%% Version 4.04a Released on June 15, 2009 (Bug fix)
+%% Version 4.05 Released on November 05, 2009 (Bug fix)
+%% Version 5.00 Released on October 01, 2010
+%% Version 5.01b Released on February 24, 2011
+%% Version 5.01bb Released on May 27, 2013
+%% Version 5.01bbb Released on June 21, 2013
+%%
+%% Present version (as xymtx-ps.dtx etc.):
+%% Version 5.01 Released on August 16, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files xymtx-ps.dtx and xymtx-ps.ins
+%% and the derived file xymtx-ps.sty.
+%%
+%% =======================================
+%%
+%% File: xymtx-ps.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\def\j@urnalname{xymtx-ps}
+\def\versi@ndate{August 16, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\RequirePackage{chemstr}%added 2010/10/01
+\RequirePackage{pstricks}
+\RequirePackage{pst-coil}
+\unitlength=0.1pt
+%%\psset{xunit=\the\unitlength,yunit=\the\unitlength}%delete August 2, 2005
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+\long\gdef\Put@@@Line(#1,#2)(#3,#4)#5{%
+\begingroup
+\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
+\if@thicklinesw
+\if@wedgesw
+\ifmolfront%bold dash bond for skeletal bond for pyranose etc.
+\psline[unit=\unitlength,%
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\if@skbondlist%bold dash bond skeletal bond for general cases
+\psline[unit=\unitlength,%
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else%wedged bond
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)
+\fi\fi
+\else
+\psline[unit=\unitlength,%
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\else
+\ifwavebond
+\pszigzag[unit=\unitlength,%
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(\the\@tempcntXa,\the\@tempcntYa)(#1,#2)%
+\else
+\psline[unit=\unitlength,%
+linewidth=\thinLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\fi
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of Put@@@Line
+\newif\if@wedgeadjust
+\def\stereo@wedgedimension(#1,#2)#3{%
+\@tempcntXb=0\relax
+\@tempcntYb=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=0\relax
+%%
+\@wedgeadjustfalse
+\ifnum#1<0 \@tempcntzz=-#1\else\@tempcntzz=#1\fi
+\ifnum#2<0 \@tempcntzzz=-#2\else\@tempcntzzz=#2\fi
+\ifnum#1=0\else
+\multiply\@tempcntzzz by10\relax \divide\@tempcntzzz by\@tempcntzz\fi%% (3/5)x10=6
+\ifnum\@tempcntzzz>7\relax\else\@wedgeadjusttrue\fi
+%%one point of wedge
+\ifnum#1=0\relax
+\@tempcntXb=#3 \advance\@tempcntXb by8\relax
+\@tempcntYb=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXb=0\relax
+\@tempcntYb=#3 \advance\@tempcntYb by8\relax
+\else
+\@tempcntXb=#3\relax
+\@tempcntYb=-#3\relax
+\if@wedgeadjust
+\advance\@tempcntXb by8\relax
+\advance\@tempcntYb by-8\relax
+\fi
+\multiply\@tempcntXb by#2\relax\multiply\@tempcntXb by10\relax
+\divide\@tempcntXb by#1\relax\divide\@tempcntXb by10\relax\fi\fi
+\advance\@tempcntXb by\@tempcntXa\relax
+\advance\@tempcntYb by\@tempcntYa\relax
+%%other point of wedge
+\ifnum#1=0\relax
+\@tempcntXc=-#3 \advance\@tempcntXc by-8\relax
+\@tempcntYc=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=-#3 \advance\@tempcntYc by-8\relax
+\else
+\@tempcntXc=-#3\relax
+\@tempcntYc=#3\relax
+\if@wedgeadjust
+\advance\@tempcntXc by-6\relax
+\advance\@tempcntYc by6\relax
+\fi
+\multiply\@tempcntXc by#2\relax\multiply\@tempcntXc by10\relax
+\divide\@tempcntXc by#1\relax\divide\@tempcntXc by10\relax\fi\fi
+\advance\@tempcntXc by\@tempcntXa\relax
+\advance\@tempcntYc by\@tempcntYa\relax
+}%%end of \stereo@wedgedimension
+\@ifundefined{iftdir}{\newif\iftdir \tdirfalse}{}%pLaTeXe vs. LaTeXe
+\def\Put@@@Direct(#1,#2)#3{\begingroup\psset{unit=\unitlength}%
+\iftdir
+\rput[bl]{0}(#1,#2){#3}\else\rput[Bl]{0}(#1,#2){#3}\fi
+\endgroup}
+\def\Put@@@oCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=.4pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+\def\Put@@@sCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=2pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+\def\d@@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\if@hasheddashsw
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+\if@skbondlist%hashed dash bond skeletal bond for general cases
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+ \hashedwedgebond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\fi\fi
+}%end of \d@@t@rline
+\def\hasheddashbond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntzz=12\relax
+\@tempcntzzz=-30\relax%almost no shortening
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup}
+\def\hashedwedgebond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntXa=#8\relax
+\@tempcntYa=#9\relax
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+](#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=3.8pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup
+}%%end of \hashedwedgebond
+\def\bond@shorten(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\@tempcntXb=#8\relax
+\@tempcntYb=#9\relax
+\advance\@tempcntXb by-#6\relax \divide\@tempcntXb by\@tempcntzz\relax
+\advance\@tempcntYb by-#7\relax \divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#6\relax
+\advance\@tempcntYb by#7\relax
+\@tempcntXc=#8\relax
+\@tempcntYc=#9\relax
+\advance\@tempcntXc by-#6\relax \divide\@tempcntXc by\@tempcntzzz\relax
+\advance\@tempcntYc by-#7\relax \divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#8\relax
+\advance\@tempcntYc by#9\relax
+}%%end of \bondshorten
+\def\WedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+\def\stereo@wedgedimensionX(#1,#2)(#3,#4){%
+\@ifnextchar[{\stereo@@wedgedimensionX(#1,#2)(#3,#4)}%
+{\stereo@@wedgedimensionX(#1,#2)(#3,#4)[10]}}
+\def\stereo@@wedgedimensionX(#1,#2)(#3,#4)[#5]{%
+\@tempcnta=-#1\relax
+\advance\@tempcnta by#3\relax
+%%\typeout{KKK:\the\@tempcnta}%
+\@tempcntb=-#2\relax
+\advance\@tempcntb by#4\relax
+%%%\typeout{LLL:\the\@tempcntb}%
+\stereo@wedgedimension(\the\@tempcnta,\the\@tempcntb){#5}%
+%%%\typeout{MMM; (\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)}
+\advance\@tempcntXb by#3\relax
+\advance\@tempcntYb by#4\relax
+\advance\@tempcntXc by#3\relax
+\advance\@tempcntYc by#4\relax}
+\def\WedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXPS(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXPS(#1,#2)(#3,#4)[10]}}%
+\def\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\stereo@wedgedimensionX(#1,#2)(#3,#4)[#5]%
+\pspolygon*[unit=\unitlength](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXPS%for compatibility to PDF mode
+\def\HashWedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\advance\@tempcntXa by-10\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\advance\@tempcntYa by-10\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=5pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstPS
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+\def\HashWedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{
+\HashWedge@sSubstXPS(#1,#2)(#3,#4)}%
+{\HashWedge@sSubstXPS(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@sSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]%
+\ifdim\unitlength>0.08pt
+\@tempdima=#5\unitlength \multiply\@tempdima by3\relax
+\advance\@tempdima by1pt%adjustment
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\else
+\@tempdima=#5\unitlength \multiply\@tempdima by3
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstXPS
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPS%for compatibility to PDF mode
+\def\WavyAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\wavebondtrue
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WavyAsSubst=\WavyAsSubstPS%for compatibility to PDF mode
+\def\WavyAsSubstXPS(#1,#2)(#3,#4){%
+\pszigzag[unit=\unitlength,%
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(#3,#4)(#1,#2)%
+}
+\let\WavyAsSubstX=\WavyAsSubstXPS%for compatibility to PDF mode
+\def\PUT@@@bondLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\psline[unit=\unitlength,%
+linewidth=#5](#1,#2)(#3,#4)%
+\endgroup
+}
+\let\PutPSLine=\PUT@@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+\def\PUT@@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=#5,linestyle=dashed,dash=1pt 1.2pt]%
+(#1,#2)(#3,#4)%
+\else
+\psline[unit=\unitlength,%
+linewidth=#5,linestyle=dashed,dash=0.8pt 1pt]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}
+\let\PutPSdashed=\PUT@@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+\def\downnobond#1#2{%
+\hbox{\smash{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}}
+\def\putRoundArrowPS{%
+\@ifnextchar[{\putRound@rrowPS}{\putRound@rrowPS[->]}}
+\def\putRound@rrowPS[#1]#2{%
+\pscurve[unit=\unitlength,%
+linewidth=0.4pt]{#1}#2}
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+\def\red{\color{red}\psset{linecolor=red}}
+\def\blue{\color{blue}\psset{linecolor=blue}}
+\def\green{\color{green}\psset{linecolor=green}}
+\def\black{\color{black}\psset{linecolor=black}}
+\def\cyan{\color{cyan}\psset{linecolor=cyan}}
+\def\yellow{\color{yellow}\psset{linecolor=yellow}}
+\def\magenta{\color{magenta}\psset{linecolor=magenta}}
+\def\white{\color{white}\psset{linecolor=white}}
+\def\xymcolor#1#2{\mbox{\color{#1}\psset{linecolor=#1}#2}}
+\def\Color@@@Line{%
+\@ifnextchar[{\C@lor@@@Line}{\C@lor@@@Line[0.4pt]}}
+\def\C@lor@@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\SlopetoXY(#2,#3)(#4,#5){#6}%common to \Put@@@Line command
+\psline[unit=\unitlength,%
+linewidth=#1,linecolor=#7]
+(#2,#3)(\the\@tempcntXa,\the\@tempcntYa)%
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of \Color@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+\def\BackGroundColor{%
+\definecolor{TempColor}{cmyk}{0,0,0,0}%
+\psset{linecolor=TempColor}}
+\newif\ifsizereduction\sizereductionfalse
+\def\@@changeunitlength#1{\unitlength=#1\relax
+%%\psset{unit=\unitlength}%delete August 02, 2005
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else \let\substfontsize=\normalsize\fi}
+\def\setxymtxps{%
+\@ifnextchar[{\@setxymtxps}{\@setxymtxps[0.1pt]}}
+\def\@setxymtxps[#1]{%
+\PSmodetrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\thicklines=\Thick@Lines
+\let\thinlines=\Thin@Lines
+\let\Put@Line=\Put@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+\let\Put@Direct=\Put@@@Direct
+\let\Put@oCircle=\Put@@@oCircle
+\let\Put@sCircle=\Put@@@sCircle
+\let\dotorline=\d@@t@rline
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+\let\changeunitlength=\@@changeunitlength
+\changeunitlength{#1}%
+\wedgehasheddash%
+}
+\setxymtxps
+\endinput
+%%
+%% End of file `xymtx-ps.sty'.