From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/xymtex/README | 1 + macros/latex/contrib/xymtex/base/aliphat.dtx | 4767 ++++++++++ macros/latex/contrib/xymtex/base/aliphat.ins | 61 + macros/latex/contrib/xymtex/base/aliphat.sty | 2477 +++++ .../latex/contrib/xymtex/base/assurelatexmode.dtx | 340 + .../latex/contrib/xymtex/base/assurelatexmode.ins | 45 + .../latex/contrib/xymtex/base/assurelatexmode.sty | 138 + macros/latex/contrib/xymtex/base/bondcolor.dtx | 738 ++ macros/latex/contrib/xymtex/base/bondcolor.ins | 43 + macros/latex/contrib/xymtex/base/bondcolor.sty | 323 + macros/latex/contrib/xymtex/base/carom.BAK | 4172 +++++++++ macros/latex/contrib/xymtex/base/carom.dtx | 4172 +++++++++ macros/latex/contrib/xymtex/base/carom.ins | 55 + macros/latex/contrib/xymtex/base/carom.sty | 1378 +++ macros/latex/contrib/xymtex/base/ccycle.dtx | 3481 +++++++ macros/latex/contrib/xymtex/base/ccycle.ins | 59 + macros/latex/contrib/xymtex/base/ccycle.sty | 2007 +++++ macros/latex/contrib/xymtex/base/chemstr.dtx | 9531 ++++++++++++++++++++ macros/latex/contrib/xymtex/base/chemstr.ins | 62 + macros/latex/contrib/xymtex/base/chemstr.sty | 6716 ++++++++++++++ macros/latex/contrib/xymtex/base/doins.bat | 14 + macros/latex/contrib/xymtex/base/fusering.dtx | 4597 ++++++++++ macros/latex/contrib/xymtex/base/fusering.ins | 53 + macros/latex/contrib/xymtex/base/fusering.sty | 1910 ++++ macros/latex/contrib/xymtex/base/hcycle.dtx | 3897 ++++++++ macros/latex/contrib/xymtex/base/hcycle.ins | 55 + macros/latex/contrib/xymtex/base/hcycle.sty | 1798 ++++ macros/latex/contrib/xymtex/base/hetarom.dtx | 8620 ++++++++++++++++++ macros/latex/contrib/xymtex/base/hetarom.ins | 58 + macros/latex/contrib/xymtex/base/hetarom.sty | 3638 ++++++++ macros/latex/contrib/xymtex/base/hetaromh.dtx | 6287 +++++++++++++ macros/latex/contrib/xymtex/base/hetaromh.ins | 58 + macros/latex/contrib/xymtex/base/hetaromh.sty | 2323 +++++ macros/latex/contrib/xymtex/base/lewisstruc.dtx | 1242 +++ macros/latex/contrib/xymtex/base/lewisstruc.ins | 48 + macros/latex/contrib/xymtex/base/lewisstruc.sty | 629 ++ macros/latex/contrib/xymtex/base/locant.dtx | 343 + macros/latex/contrib/xymtex/base/locant.ins | 52 + macros/latex/contrib/xymtex/base/locant.sty | 123 + macros/latex/contrib/xymtex/base/lowcycle.dtx | 892 ++ macros/latex/contrib/xymtex/base/lowcycle.ins | 53 + macros/latex/contrib/xymtex/base/lowcycle.sty | 145 + macros/latex/contrib/xymtex/base/methylen.dtx | 6419 +++++++++++++ macros/latex/contrib/xymtex/base/methylen.ins | 57 + macros/latex/contrib/xymtex/base/methylen.sty | 3484 +++++++ macros/latex/contrib/xymtex/base/polymers.dtx | 750 ++ macros/latex/contrib/xymtex/base/polymers.ins | 53 + macros/latex/contrib/xymtex/base/polymers.sty | 229 + macros/latex/contrib/xymtex/base/putline.sed | 10 + macros/latex/contrib/xymtex/base/putput.bat | 1 + macros/latex/contrib/xymtex/base/sizeredc.dtx | 351 + macros/latex/contrib/xymtex/base/sizeredc.ins | 49 + macros/latex/contrib/xymtex/base/sizeredc.sty | 171 + macros/latex/contrib/xymtex/base/steroid.BAK | 775 ++ macros/latex/contrib/xymtex/base/steroid.dtx | 1317 +++ macros/latex/contrib/xymtex/base/steroid.ins | 47 + macros/latex/contrib/xymtex/base/steroid.sty | 775 ++ macros/latex/contrib/xymtex/base/xymtex.dtx | 308 + macros/latex/contrib/xymtex/base/xymtex.ins | 72 + macros/latex/contrib/xymtex/base/xymtex.sty | 108 + macros/latex/contrib/xymtex/base/xymtexpdf.sty | 116 + macros/latex/contrib/xymtex/base/xymtexps.sty | 108 + .../latex/contrib/xymtex/chemist/assurechemist.dtx | 279 + .../latex/contrib/xymtex/chemist/assurechemist.ins | 43 + .../latex/contrib/xymtex/chemist/assurechemist.sty | 92 + macros/latex/contrib/xymtex/chemist/chemist.dtx | 3349 +++++++ macros/latex/contrib/xymtex/chemist/chemist.ins | 63 + macros/latex/contrib/xymtex/chemist/chemist.sty | 1492 +++ macros/latex/contrib/xymtex/chemist/chemtimes.dtx | 839 ++ macros/latex/contrib/xymtex/chemist/chemtimes.ins | 42 + macros/latex/contrib/xymtex/chemist/chemtimes.sty | 515 ++ macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf | Bin 0 -> 6813073 bytes macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf | Bin 0 -> 494597 bytes .../latex/contrib/xymtex/old-doc/doc101/xymtex.pdf | Bin 0 -> 662816 bytes .../contrib/xymtex/old-doc/doc200/xymtx200.pdf | Bin 0 -> 392923 bytes .../contrib/xymtex/old-doc/doc200/xymtx200PS.pdf | Bin 0 -> 397021 bytes .../contrib/xymtex/old-doc/doc300/xymtx300.pdf | Bin 0 -> 115667 bytes .../contrib/xymtex/old-doc/doc300/xymtx300PS.pdf | Bin 0 -> 99861 bytes .../contrib/xymtex/old-doc/doc401/xymtx401.pdf | Bin 0 -> 193265 bytes .../xymtex/old-doc/doc402403/xymtx402403.pdf | Bin 0 -> 248847 bytes .../contrib/xymtex/old-doc/doc404/xymtx404.pdf | Bin 0 -> 384723 bytes .../xymtex/old-doc/doc405406/xymtx405406B.pdf | Bin 0 -> 462953 bytes .../xymtex/old-doc/doc405406/xymtx405406C.pdf | Bin 0 -> 494597 bytes .../contrib/xymtex/old-doc/doc405406/xymtx405A.pdf | Bin 0 -> 201129 bytes .../contrib/xymtex/old-doc/doc500/xymtx500.pdf | Bin 0 -> 3786889 bytes .../contrib/xymtex/old-doc/doc500/xymtx500PS.pdf | Bin 0 -> 1072669 bytes .../contrib/xymtex/readmes/oldreadme/readme402.doc | 41 + .../contrib/xymtex/readmes/oldreadme/readme402.jpn | 110 + .../contrib/xymtex/readmes/oldreadme/readme403.doc | 46 + .../contrib/xymtex/readmes/oldreadme/readme403.jpn | 115 + .../contrib/xymtex/readmes/oldreadme/readme404.doc | 52 + .../contrib/xymtex/readmes/oldreadme/readme404.jpn | 132 + .../contrib/xymtex/readmes/oldreadme/readme405.doc | 59 + .../contrib/xymtex/readmes/oldreadme/readme405.jpn | 164 + .../contrib/xymtex/readmes/oldreadme/readme406.doc | 64 + .../contrib/xymtex/readmes/oldreadme/readme406.jpn | 173 + .../contrib/xymtex/readmes/oldreadme/readme500.doc | 68 + .../contrib/xymtex/readmes/oldreadme/readme500.jpn | 184 + .../xymtex/readmes/oldreadme/readme500a.doc | 73 + .../xymtex/readmes/oldreadme/readme500a.jpn | 195 + .../contrib/xymtex/readmes/oldreadme/xymtx402.doc | 171 + .../contrib/xymtex/readmes/oldreadme/xymtx402.jpn | 141 + .../contrib/xymtex/readmes/oldreadme/xymtx403.doc | 176 + .../contrib/xymtex/readmes/oldreadme/xymtx403.jpn | 146 + .../contrib/xymtex/readmes/oldreadme/xymtx404.doc | 199 + .../contrib/xymtex/readmes/oldreadme/xymtx404.jpn | 166 + .../contrib/xymtex/readmes/oldreadme/xymtx405.doc | 229 + .../contrib/xymtex/readmes/oldreadme/xymtx405.jpn | 196 + .../contrib/xymtex/readmes/oldreadme/xymtx406.doc | 255 + .../contrib/xymtex/readmes/oldreadme/xymtx406.jpn | 207 + .../contrib/xymtex/readmes/oldreadme/xymtx500.doc | 196 + .../contrib/xymtex/readmes/oldreadme/xymtx500.jpn | 214 + .../contrib/xymtex/readmes/oldreadme/xymtx500a.doc | 208 + .../contrib/xymtex/readmes/oldreadme/xymtx500a.jpn | 219 + macros/latex/contrib/xymtex/readmes/readme501.doc | 74 + macros/latex/contrib/xymtex/readmes/readme501.jpn | 153 + macros/latex/contrib/xymtex/readmes/xymtx501.doc | 197 + macros/latex/contrib/xymtex/readmes/xymtx501.jpn | 181 + macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx | 1493 +++ macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins | 44 + macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty | 691 ++ macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx | 1362 +++ macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins | 58 + macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty | 687 ++ macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx | 1681 ++++ macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins | 50 + macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty | 743 ++ macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv | 87 + macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx | 899 ++ macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins | 57 + macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty | 452 + 131 files changed, 112423 insertions(+) create mode 120000 macros/latex/contrib/xymtex/README create mode 100644 macros/latex/contrib/xymtex/base/aliphat.dtx create mode 100644 macros/latex/contrib/xymtex/base/aliphat.ins create mode 100644 macros/latex/contrib/xymtex/base/aliphat.sty create mode 100644 macros/latex/contrib/xymtex/base/assurelatexmode.dtx create mode 100644 macros/latex/contrib/xymtex/base/assurelatexmode.ins create mode 100644 macros/latex/contrib/xymtex/base/assurelatexmode.sty create mode 100644 macros/latex/contrib/xymtex/base/bondcolor.dtx create mode 100644 macros/latex/contrib/xymtex/base/bondcolor.ins create mode 100644 macros/latex/contrib/xymtex/base/bondcolor.sty create mode 100644 macros/latex/contrib/xymtex/base/carom.BAK create mode 100644 macros/latex/contrib/xymtex/base/carom.dtx create mode 100644 macros/latex/contrib/xymtex/base/carom.ins create mode 100644 macros/latex/contrib/xymtex/base/carom.sty create mode 100644 macros/latex/contrib/xymtex/base/ccycle.dtx create mode 100644 macros/latex/contrib/xymtex/base/ccycle.ins create mode 100644 macros/latex/contrib/xymtex/base/ccycle.sty create mode 100644 macros/latex/contrib/xymtex/base/chemstr.dtx create mode 100644 macros/latex/contrib/xymtex/base/chemstr.ins create mode 100644 macros/latex/contrib/xymtex/base/chemstr.sty create mode 100644 macros/latex/contrib/xymtex/base/doins.bat create mode 100644 macros/latex/contrib/xymtex/base/fusering.dtx create mode 100644 macros/latex/contrib/xymtex/base/fusering.ins create mode 100644 macros/latex/contrib/xymtex/base/fusering.sty create mode 100644 macros/latex/contrib/xymtex/base/hcycle.dtx create mode 100644 macros/latex/contrib/xymtex/base/hcycle.ins create mode 100644 macros/latex/contrib/xymtex/base/hcycle.sty create mode 100644 macros/latex/contrib/xymtex/base/hetarom.dtx create mode 100644 macros/latex/contrib/xymtex/base/hetarom.ins create mode 100644 macros/latex/contrib/xymtex/base/hetarom.sty create mode 100644 macros/latex/contrib/xymtex/base/hetaromh.dtx create mode 100644 macros/latex/contrib/xymtex/base/hetaromh.ins create mode 100644 macros/latex/contrib/xymtex/base/hetaromh.sty create mode 100644 macros/latex/contrib/xymtex/base/lewisstruc.dtx create mode 100644 macros/latex/contrib/xymtex/base/lewisstruc.ins create mode 100644 macros/latex/contrib/xymtex/base/lewisstruc.sty create mode 100644 macros/latex/contrib/xymtex/base/locant.dtx create mode 100644 macros/latex/contrib/xymtex/base/locant.ins create mode 100644 macros/latex/contrib/xymtex/base/locant.sty create mode 100644 macros/latex/contrib/xymtex/base/lowcycle.dtx create mode 100644 macros/latex/contrib/xymtex/base/lowcycle.ins create mode 100644 macros/latex/contrib/xymtex/base/lowcycle.sty create mode 100644 macros/latex/contrib/xymtex/base/methylen.dtx create mode 100644 macros/latex/contrib/xymtex/base/methylen.ins create mode 100644 macros/latex/contrib/xymtex/base/methylen.sty create mode 100644 macros/latex/contrib/xymtex/base/polymers.dtx create mode 100644 macros/latex/contrib/xymtex/base/polymers.ins create mode 100644 macros/latex/contrib/xymtex/base/polymers.sty create mode 100644 macros/latex/contrib/xymtex/base/putline.sed create mode 100644 macros/latex/contrib/xymtex/base/putput.bat create mode 100644 macros/latex/contrib/xymtex/base/sizeredc.dtx create mode 100644 macros/latex/contrib/xymtex/base/sizeredc.ins create mode 100644 macros/latex/contrib/xymtex/base/sizeredc.sty create mode 100644 macros/latex/contrib/xymtex/base/steroid.BAK create mode 100644 macros/latex/contrib/xymtex/base/steroid.dtx create mode 100644 macros/latex/contrib/xymtex/base/steroid.ins create mode 100644 macros/latex/contrib/xymtex/base/steroid.sty create mode 100644 macros/latex/contrib/xymtex/base/xymtex.dtx create mode 100644 macros/latex/contrib/xymtex/base/xymtex.ins create mode 100644 macros/latex/contrib/xymtex/base/xymtex.sty create mode 100644 macros/latex/contrib/xymtex/base/xymtexpdf.sty create mode 100644 macros/latex/contrib/xymtex/base/xymtexps.sty create mode 100644 macros/latex/contrib/xymtex/chemist/assurechemist.dtx create mode 100644 macros/latex/contrib/xymtex/chemist/assurechemist.ins create mode 100644 macros/latex/contrib/xymtex/chemist/assurechemist.sty create mode 100644 macros/latex/contrib/xymtex/chemist/chemist.dtx create mode 100644 macros/latex/contrib/xymtex/chemist/chemist.ins create mode 100644 macros/latex/contrib/xymtex/chemist/chemist.sty create mode 100644 macros/latex/contrib/xymtex/chemist/chemtimes.dtx create mode 100644 macros/latex/contrib/xymtex/chemist/chemtimes.ins create mode 100644 macros/latex/contrib/xymtex/chemist/chemtimes.sty create mode 100644 macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf create mode 100644 macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdf create mode 100644 macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdf create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme402.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme402.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme403.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme403.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme404.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme404.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme405.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme405.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme406.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme406.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme500.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme500.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/readme500a.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx402.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx403.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx404.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx405.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx406.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.doc create mode 100644 macros/latex/contrib/xymtex/readmes/oldreadme/xymtx500a.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/readme501.doc create mode 100644 macros/latex/contrib/xymtex/readmes/readme501.jpn create mode 100644 macros/latex/contrib/xymtex/readmes/xymtx501.doc create mode 100644 macros/latex/contrib/xymtex/readmes/xymtx501.jpn create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.dtx create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.ins create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/chmst-pdf.sty create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.dtx create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.ins create mode 100644 macros/latex/contrib/xymtex/xymtxpdf/xymtx-pdf.sty create mode 100644 macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx create mode 100644 macros/latex/contrib/xymtex/xymtxps/chmst-ps.ins create mode 100644 macros/latex/contrib/xymtex/xymtxps/chmst-ps.sty create mode 100644 macros/latex/contrib/xymtex/xymtxps/xymtx-ps.drv create mode 100644 macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx create mode 100644 macros/latex/contrib/xymtex/xymtxps/xymtx-ps.ins create mode 100644 macros/latex/contrib/xymtex/xymtxps/xymtx-ps.sty (limited to 'macros/latex/contrib/xymtex') 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} +% +% \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 * +% ********************************* +% +% +% +% \Northbond +% \Eastbond +% \Southbond +% \Westbond +% \NEBond +% \NEbond +% \SEBond +% \SEbond +% \NWBond +% \NWbond +% \SWBond +% \SWbond +% +% \NEBOND +% \NWBOND +% \SEBOND +% \SWBOND +% +% +% \ylrtrigonalposition +% \ylRtrigonalposition +% \ylltrigonalposition +% \ylLtrigonalposition +% \ylutrigonalposition +% \ylUtrigonalposition +% \yldtrigonalposition +% \ylDtrigonalposition +% +% \yltethedralposition +% \ylsquareposition +% +% \ylethylenepositiona +% \ylethylenepositionb +% \ylethylenevpositiona +% \ylethylenevpositionb +% +% +% +% \tetrahedral \@tetrahedral +% \square ---> \squarplanar \@square ---> \@squareplanar +% +% +% +% \rtrigonal \@rtrigonal +% \Rtrigonal \@Rtrigonal +% \ltrigonal \@ltrigonal +% \Ltrigonal \@Ltrigonal +% \utrigonal \@utrigonal +% \Utrigonal \@Utrigonal +% \dtrigonal \@dtrigonal +% \Dtrigonal \@Dtrigonal +% +% +% +% \ethylene \@ethylene +% \ethyleneh +% \Ethylene \@Ethylene +% \Ethyleneh +% \ethylenev \@ethylenev +% \Ethylenev \@Ethylenev +% +% +% +% \tetrastereo \@tetrastereo +% \dtetrastereo \@dtetrastereo +% \ethanestereo \@ethanestereo +% +% +% +% \rtetrahedralS \RtetrahedralS +% \ltetrahedralS \LtetrahedralS +% \utetrahedralS \UtetrahedralS +% \dtetrahedralS \DtetrahedralS +% \htetrahedralS +% +% +% +% \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} +% \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 +% +% \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}}% +% +% \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} +% +% \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 +% +% \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} +% +% \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]{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 accomodates \verb// 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]{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 accomodates \verb// 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 +% +% \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} +% +% \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 * +% ******************************* +% +% +% +% \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} +% +% +% \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% +% +% \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} +% +% \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 * +% ******************************* +% +% +% +% \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} +% +% +% \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% +% +% \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} +% +% \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}% +% +% \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} +% +% \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 * +% ********************************* +% +% +% +% \@forsemicol +% \@forl@@p +% \@iforl@@p +% \@m@mb@r +% \twoch@r +% \twoCH@R (terminater //) +% \twoch@@r +% \twoCH@@R (terminater //) +% \threech@r +% +% +% +% \@forendparenthesis +% \end{verbatim} +% +% \begin{verbatim} +% +% +% \rmoiety +% \lmoiety +% \putlatom +% \putratom +% \putlratom +% \Putlratom +% +% \dotorline +% +% \end{verbatim} +% +% \begin{verbatim} +% +% +% \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 +% +% +% \@yl +% \yl@xdiff \yl@ydiff +% \yl@shiftii +% \yl@shifti +% \@ylii +% \@yli +% \@@ylii +% \@@yli +% +% +% \fuseAx \fuseAy +% \fuseBx \fuseBy +% +% \end{verbatim} +% +% \begin{verbatim} +% +% 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} +% +% 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} +% +% +% \ryl (right linking unit) +% \lyl (left linking unit) + + +% +% +% \ayl +% +% \upnobond +% \downnobond +% +% \BiFunc +% +% +% +% \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} +% +% +% \let\Put@Direct=\put +% \let\Multiput@Direct=\multiput +% \Put@@@Line +% \Put@@@sCircle +% \Put@@@oCircle +% +% +% +% ShiftPicEnv +% ShiftPicEnvB +% \let\sfpicture=\picture +% \let\endsfpicture=\endpicture +% +% +% \ifwavebond, \WaveBonds +% +% +% \addbscolor, +% \setbscolor, \setBScolor +% \bscolorswON, \bscolorswOFF +% \defineXyMcolor +% \XyMcolor +% +% +% \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 +% +% \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} +% +% \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 * +% ********************************** +% +% +% \sixfusev \@sixfusev \sixfuseposv +% \sixfusevi \@sixfusevi \sixfuseposvi +% \sixfuseh \@sixfuseh \sixfuseposh +% \sixfusehi \@sixfusehi \sixfuseposhi +% +% +% \fivefusev \@fivefusev \fivefuseposv +% \fivefusevi \@fivefusevi \fivefuseposvi +% \fivefuseh \@fivefuseh \fivefuseposh +% \fivefusehi \@fivefusehi \fivefuseposhi +% +% +% \fourfuse \@fourfuse \fourfusepos +% +% +% \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 +% +% \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} +% +% \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 * +% ******************************** +% +% +% +% \@pyrana +% \@pyranb +% \@pyranbb +% \@pyranbB +% \@pyranbC +% \@pyranc +% +% +% +% construction: +% \pyranose \@pyranose +% \Pyranose \@Pyranose +% \furanose \@furanose +% \Furanose \@Furanose +% +% \pyranosew \@pyranosew +% \Pyranosew \@Pyranosew +% \furanosew \@furanosew +% \Furanosew \@Furanosew +% +% adjustment: +% \ylpyranoseposition +% \ylfuranoseposition +% +% +% 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 +% +% +% +% 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 +% +% +% \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 +}% +% +% \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 +% +% \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]} +% +% \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 +% +% \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}% +% +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput +% 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} +% +% \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 * +% ********************************* +% +% +% +% \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} +% +% +% 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} +% +% +% 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} +% +% +% 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} +% +% +% 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} +% +% +% Setting bonds +% \bondshoriz \bondshorizi +% \skbondshoriz \skbondshorizi +% +% Basic Macros +% +% \fourhetero \@fourhetero +% +% Application Macros +% +% \oxetane +% \azetidine +% +% \end{verbatim} +% +% \begin{verbatim} +% +% +% Setting inner double bonds +% +% \bondtria \bondtrib +% \skbondtria \skbondtrib +% \Bondtria \Bondtrib +% \skBondtria \skBondtrib +% +% Basic Macros +% +% (\fourhetero) (\@fourhetero) +% \set@fusionadd@fourv \set@fusion@fourv +% +% +% +% \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} +% +% +% +% \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 +% +% \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} +% +% \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 * +% ********************************** +% +% +% +% \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} +% +% +% +% 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} +% +% +% +% 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} +% +% +% +% 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} +% +% +% +% 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} +% +% +% +% \sixunith \@sixunith +% \fiveunith \@fiveunith +% \fiveunithi \@fiveunithi +% \end{verbatim} +% +% \begin{verbatim} +% +% +% +% \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 +% +% \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} +% +% \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 +% +% \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} +% +% \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}} +% +% \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} +% +% \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}} +% +% \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} +% +% \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 * +% ********************************** +% +% +% +% \if@adoublebond \if@bdoublebond +% \if@Adoublebond \if@adoublebond} +% \reset@double +% \if@linterchainsw \if@rinterchainsw} +% \reset@interchainsw +% +% +% +% \@methsubsta \@methsubstd \@methsubstdL +% \SKbondA \SKbondB +% \bondA \bondAA +% \bondB \bondBB +% +% +% +% \@@trimethylene +% \@@dimethylene +% +% +% +% \yltrimethyleneposition +% \yldimethyleneposition +% +% +% +% \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} +% +% +% 0: all positions +% 1: positions bbb and ccc +% 2: positions aaa and bbb +% +% bbb +% 2 +% a / ` b +% 1 3 +% aaa ccc +% +% +% 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} +% +% +% 0: all positions +% 1: positions bbb and ccc +% 2: positions aaa and bbb +% +% bbb +% 2 +% a / ` b +% 1 3 +% aaa ccc +% +% +% 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} +% +% +% 0: all positions +% 1: positions bbb and ccc +% 2: positions aaa and bbb +% +% aaa ccc +% 1 3 +% a ` / b +% ` / +% 2 +% bbb +% +% +% 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} +% +% +% 0: all positions +% 1: positions bbb and ccc +% 2: positions aaa and bbb +% +% aaa ccc +% 1 3 +% a ` / b +% ` / +% 2 +% bbb +% +% +% 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} +% +% +% 0: all positions +% 1: position bbb +% 2: position aaa +% +% bbb +% 2 +% a / +% 1 +% aaa +% +% +% 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} +% +% +% 0: all positions +% 1: position bbb +% 2: position aaa +% +% bbb +% 2 +% a / +% 1 +% aaa +% +% +% 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} +% +% +% 0: all positions +% 1: position bbb +% 2: positions aaa +% +% aaa +% 1 +% a ` +% ` +% 2 +% bbb +% +% +% 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} +% +% +% 0: all positions +% 1: position bbb +% 2: position aaa +% +% aaa +% 1 +% a ` +% ` +% 2 +% bbb +% +% +% 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 +% 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))) +% +% 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 ` i +% ` / ` / ` / ` / ` +% 2 4 6 8 10 +% bbb ddd fff hhh +% (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 +% +% \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} +% +% \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 * +% ********************************** +% +% +% +% \leftPMdelim \rightPMdelim +% \leftpmdelim \rightpmdelim +% +% \leftPolymer \leftpolymer +% \rightPolymer \rightpolymer +% +% \leftsqrPolymer \leftSqrpolymer +% \lsqrdelimiter \leftsqrpolymer +% +% \rightsqrPolymer \rightSqrpolymer +% \rsqrdelimiter \rightsqrpolymer +% +% \@sqrpolymer +% \sqrpolymer \Sqrpolymer +% \mpolymer +% +% +% +% \WestPbond \EastPbond +% \sbond +% +% +% +% \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 +% +% \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} +% +% \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} +% +% \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} +% +% \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 * +% ********************************* +% +% +% +% \gonane +% \gonanealpha +% \gonanebeta +% +% \estrane +% \estranealpha +% \estranebeta +% +% \steroidnochainandrostane +% \androstane +% \androstanealpha +% \androstanebeta +% +% \steroidethylchain +% \steroidethylchainpregnane +% \pregnane +% \pregnanealpha +% \pregnanebeta +% +% +% C22-C23: transoid +% +% \steroidChain +% \steroidChaindiMe +% \cholestaneAlpha +% \cholestaneBeta +% \cholestane +% +% \ergostaneAlpha +% \ergostaneBeta +% \ergostane +% +% \campestaneAlpha +% \campestaneBeta +% \campestane +% +% \poriferastaneAlpha +% \poriferastaneBeta +% \poriferastane +% +% \stigmastaneAlpha +% \stigmastaneBeta +% \stigmastane +% +% +% C22-C23: transoid +% +% \steroidShortChain +% \steroidShortChainMe +% \cholaneAlpha +% \cholaneBeta +% +% +% C22-C23: transoid +% +% \steroidshortchain +% \steroidshortchainMe +% \cholanealpha +% \cholanebeta +% \cholanE +% +% +% C22-C23: cisoid +% +% \steroidchaindiMe +% \cholestanealpha +% \cholestanebeta +% \cholestanE +% +% \ergostanealpha +% \ergostanebeta +% \ergostanE +% +% \campestanealpha +% \campestanebeta +% \campestanE +% +% \poriferastanealpha +% \poriferastanebeta +% \poriferastanE +% +% \stigmastanealpha +% \stigmastanebeta +% \stigmastanE +% +% +% +% \steroidspiro +% \steroidspirotriMe +% \spirostanalpha +% \spirostanbeta +% \spirostan +% \spirostannor +% +% +% +% \steroidfuros +% \steroidspirotriMe +% \furostanalpha +% \furostanbeta +% \furostan +% +% +% +% \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}} +% +% \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 +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% \def\versi@ndate{July 20, 2005} +% \def\versi@nno{ver4.02} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% \def\versi@ndate{June 15, 2009} +% \def\versi@nno{ver4.04} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% \def\versi@ndate{November 25, 2009} +% \def\versi@nno{ver4.05} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% \def\versi@ndate{December 01, 2009} +% \def\versi@nno{ver4.06} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% %\def\j@urnalname{xymtexpdf} \def\journalID{xymtexpdf} +% \def\versi@ndate{October 01, 2010} +% \def\versi@nno{ver5.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %\def\j@urnalname{xymtex} \def\journalID{xymtex} +% %\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +% %\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]} +% % \typeout{xymtex.sty ver5.01beta (for LaTeX2e) 2011/02/24[SF]} +% % \typeout{xymtexps.sty ver5.01beta (for LaTeX2e) 2011/02/24[SF]} +% % \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} +% \ProvidesFile{xymtex.sty} +% \ProvidesFile{xymtexps.sty} +%\ProvidesFile{xymtex.drv} +% [2013/03/10 v5.01 +% ChemSci package ] +% ChemSci package ] +% ChemSci package ] +% 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} +% +% \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} +%\def\j@urnalname{xymtex} \def\journalID{xymtex} +%\def\j@urnalname{xymtexps} \def\journalID{xymtexps} +%\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{xymtex.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]} +% \typeout{xymtexps.sty ver5.01 (for LaTeX2e) 2013/03/10[SF]} +% \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 +% +\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{xymtx-pdf} +%\usepackage{chemist} +%\usepackage{xcolor} +%\usepackage{chmst-ps} +%\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} +% +% \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 +% +% \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 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} +% \ProvidesFile{chemist.sty} +%\ProvidesFile{chemist.drv} +% [2013/06/06 v5.01 +% ChemSci package ] +% 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} +% +% \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} +% +%%%%%%%% +\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]} +% +% \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} +% +% <> +% \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\\} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% <> +% \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 +% +% <> See above +% \begin{fr@meboxit}{LWIDTH}{SPACE}{BWIDTH} +% LWIDTH: line thickness +% SPACE: spacing around the text +% BWIDTH: box width +% \end{fr@meboxit} +% +% <> +% \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} +% +% <> +% \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} +% <> +% \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} +% +% <> +% \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 +% +% <> +% \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} +% +% <> +% \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} +% <> +% \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} +% +% <> +% \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} +% •–³‚µ‚ðAˆóŽšˆÊ’u‚Í‚»‚Ì‚Ü‚Ü‚É‚µ‚ÄA‚¾‚¯ˆÚ“®‚³‚¹‚éB‚±‚ÌŽž +% ˆø‚«‘±‚­•¶Žš‚̈󎚈ʒu‚Í‚ª‚È‚©‚Á‚½‚Æ‚µ‚½Žž‚̈ʒ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} +% +% \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} +% +% \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 +% +% \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 Binary files /dev/null and b/macros/latex/contrib/xymtex/doc/XyMTeX-manual.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/doc/chemtimes-doc.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc101/xymtex.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc200/xymtx200PS.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc300/xymtx300PS.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc401/xymtx401.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc402403/xymtx402403.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc404/xymtx404.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406B.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405406C.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc405406/xymtx405A.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500.pdf 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 Binary files /dev/null and b/macros/latex/contrib/xymtex/old-doc/doc500/xymtx500PS.pdf 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 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} +% \ProvidesFile{chmst-ps.sty} +%\ProvidesFile{chmst-ps.drv} +% [2010/10/01 v5.00 +% ChemSci package ] +% 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} +% +% \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} +%\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]} +% +% \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 +% +% \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} +% +% \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 +% +% \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 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} +% \ProvidesFile{chmst-ps.sty} +%\ProvidesFile{chmst-ps.drv} +% [2010/10/01 v5.00 +% ChemSci package ] +% 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} +% +% \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} +%\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]} +% +% \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 +% +% \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} +% +% \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 +% +% \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'. -- cgit v1.2.3