summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx')
-rw-r--r--macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx899
1 files changed, 899 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx
new file mode 100644
index 0000000000..10ab845f20
--- /dev/null
+++ b/macros/latex/contrib/xymtex/xymtxps/xymtx-ps.dtx
@@ -0,0 +1,899 @@
+% \iffalse meta-comment
+%% File: xymtx-ps.dtx
+%
+% Copyright 2002,2004,2005,2009,2013 by Shinsaku Fujita
+%
+% This file is part of XyMTeX system.
+% -------------------------------------
+%
+% This file is a successor to:
+%
+% xymtx-ps.sty
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 4.00}
+% \typeout{ -- Released May 30, 2002 by Shinsaku Fujita}
+% Copyright (C) 2002 by Shinsaku Fujita, all rights reserved.
+%
+% This file is a part of the macro package ``XyMTeX'' which has been
+% designed for typesetting chemical structural formulas.
+%
+% This file is to be contained in the ``xymtex'' directory which is
+% an input directory for TeX. It is a LaTeX optional style file and
+% should be used only within LaTeX, because several macros of the file
+% are based on LaTeX commands.
+%
+% The following book deals with an application of TeX/LaTeX to
+% preparation of manuscripts of chemical fields:
+% (1) Shinsaku Fujita, ``LaTeX for Chemists and Biochemists''
+% Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].
+% (2) Shinsaku Fujita, ``XyMTeX. Typesetting Chemical Structural
+% Formulas'' Addison-Wesley, New York (1997).
+%
+% Copying of this file is authorized only if either
+% (1) you make absolutely no changes to your copy, including name and
+% directory name; or
+% (2) if you do make changes,
+% (a) you name it something other than the names included in the
+% ``xymtex'' directory and
+% (b) you are requested to leave this notice intact.
+% This restriction ensures that all standard styles are identical.
+%
+% Please report any bugs, comments, suggestions, etc. to:
+% Shinsaku Fujita,
+% Department of Chemistry and Materials Technology,
+% Kyoto Institute of Technology,
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 30, 2002}
+% \def\versi@nno{ver1.00}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 30, 2004}
+% \def\versi@nno{ver4.01}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{December 20, 2004}
+% \def\versi@nno{ver4.02}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 20, 2005}
+% \def\versi@nno{ver4.03}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{August 02, 2005}
+% \def\versi@nno{ver4.03a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 15, 2009}
+% \def\versi@nno{ver4.04a}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{November 05, 2009}
+% \def\versi@nno{ver4.05}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{February 24, 2011}
+% \def\versi@nno{ver5.01b}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{May 27, 2013}
+% \def\versi@nno{ver5.01bb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \def\j@urnalname{xymtx-ps}
+% \def\versi@ndate{June 21, 2013}
+% \def\versi@nno{ver5.01bbb}
+% \def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
+%
+% \CheckSum{1000}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \setcounter{StandardModuleDepth}{1}
+%
+% \StopEventually{}
+% \MakeShortVerb{\|}
+%
+% \iffalse
+% \changes{v1.00}{2002/05/30}{first edition for LaTeX2e}
+% \changes{v4.01}{2004/08/30}{Adjust for XyMTeX version 4.01}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/06/20}{Wave bonds for stereochemistry}
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% \changes{v4.04a}{2009/06/15}{Bug fix for \cs{\Put@@@Direct}}
+% \changes{v4.05}{2009/11/05}{Bug fix for \cs{\Put@@@Direct}; pLaTeXe vs. LaTeXe}
+% \changes{v5.01b}{2011/02/24}{Coloring bonds and atoms}
+% \changes{v5.01bb}{2013/05/27}{\cs{WedgeAsSubstX} etc.}
+% \changes{v5.01bbb}{2013/06/21}{\cs{WavyAsSubst} etc.}
+% \changes{v5.01}{2013/08/16}{\cs{BackGroundBond} etc.}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{xymtx-ps.dtx}[2013/08/16 v5.01 xymtx-ps package file]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{xymtx-ps.dtx}
+%
+% %%XyMTeX Logo: Definition 2%%%
+\def\UPSILON{\char'7}
+\def\XyM{X\kern-.30em\smash{%
+\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
+\def\XyMTeX{\XyM\kern-.1em\TeX}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Chemistry Conventions by {\sffamily xymtx-ps.sty}
+(\fileversion) of \XyMTeX{}}
+\author{Shinsaku Fujita \\
+Shonan Institute of Chemoinformatics Mathematical Chemistry, \\
+Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun,
+Kanagawa-Ken, 258-0019 Japan
+% Department of Chemistry and Materials Technology, \\
+% Kyoto Institute of Technology, \\
+% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan
+}
+\date{\filedate}
+%
+\begin{document}
+ \maketitle
+ \DocInput{xymtx-ps.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Introduction}\label{xymtx-ps:intro}
+%
+% \subsection{Options for {\sffamily docstrip}}
+%
+% \DeleteShortVerb{\|}
+% \begin{center}
+% \begin{tabular}{|l|l|}
+% \hline
+% \emph{option} & \emph{function}\\ \hline
+% xymtxps & xymtx-ps.sty \\
+% driver & driver for this dtx file \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \MakeShortVerb{\|}
+%
+% \subsection{Version Information}
+%
+% \begin{macrocode}
+%<*xymtxps>
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\j@urnalname{xymtx-ps}
+\def\versi@ndate{August 16, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+% \end{macrocode}
+%
+% \section{Input of basic macros}
+%
+% To assure the compatibility to \LaTeX{}2.09 (the native mode),
+% the commands added by \LaTeXe{} have not been used in the resulting sty
+% files ({\sf ccycle.sty} for the present case). Hence, the combination
+% of |\input| and |\@ifundefined| is used to crossload sty
+% files ({\sf chemstr.sty} for the present case) in place of the
+% |\RequirePackage| command of \LaTeXe{}.
+% The global setting of unit by |\psset| has caused imcompatibility
+% with the prosper package and so has been changed into a local setting.
+% \changes{v4.03a}{2005/08/02}{Bug fix for the compatibility with
+% the prosper package}
+%
+% \begin{macrocode}
+% *************************
+% * input of basic macros *
+% *************************
+\@ifundefined{setsixringv}{\input chemstr.sty\relax}{}
+\RequirePackage{chemstr}%added 2010/10/01
+\RequirePackage{pstricks}
+\RequirePackage{pst-coil}
+\unitlength=0.1pt
+%%\psset{xunit=\the\unitlength,yunit=\the\unitlength}%delete August 2, 2005
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newif\if@thicklinesw \@thicklineswfalse
+\def\Thick@Lines{\@thicklineswtrue}%redefinition
+\def\Thin@Lines{\@thicklineswfalse}%redefinition
+\def\thickLineWidth{1.6pt}
+\def\thinLineWidth{0.4pt}
+% \end{macrocode}
+%
+% The macro |\Put@@@Line| can draw dashed bonds or wedged bonds for supporting
+% stereochemistry. Two switches are available as follows:
+%
+% \begin{macro}{changedashtowedge}
+% \begin{macro}{changewedgetodash}
+% \changes{v4.02}{2004/12/20}{Switch for wedged bonds}
+% \begin{macrocode}
+\newif\if@wedgesw \@wedgeswtrue
+\newif\if@hasheddashsw \@hasheddashswtrue
+\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
+\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
+\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
+\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
+\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{Put@@@Line}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \changes{v4.03}{2005/07/20}{Switch for wave bonds}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+%\newcount\@tempcntXa \newcount\@tempcntYa \newcount\@tempcntz%deleted 2010/10/01
+%\newcount\@tempcntXb \newcount\@tempcntYb \newcount\@tempcntzz%deleted 2010/10/01
+%\newcount\@tempcntXc \newcount\@tempcntYc \newcount\@tempcntzzz%deleted 2010/10/01
+\long\gdef\Put@@@Line(#1,#2)(#3,#4)#5{%
+\begingroup
+\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
+\if@thicklinesw
+\if@wedgesw
+\ifmolfront%bold dash bond for skeletal bond for pyranose etc.
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\if@skbondlist%bold dash bond skeletal bond for general cases
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else%wedged bond
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+%,linecolor=\psbondsubstcolor,%added 2011/02/24
+](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)
+\fi\fi
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\else
+\ifwavebond
+\pszigzag[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(\the\@tempcntXa,\the\@tempcntYa)(#1,#2)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thinLineWidth](#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\fi
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of Put@@@Line
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimension| calculates the coordinates of three positions
+% for drawing a wedged bond, which is drawn by the |\pspolygon| command of the PSTricks package.
+%
+% \begin{macro}{stereo@wedgedimension}
+% \changes{v4.02}{2004/12/20}{Wedged bonds for stereochemistry}
+% \begin{macrocode}
+\newif\if@wedgeadjust
+\def\stereo@wedgedimension(#1,#2)#3{%
+\@tempcntXb=0\relax
+\@tempcntYb=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=0\relax
+%%
+\@wedgeadjustfalse
+\ifnum#1<0 \@tempcntzz=-#1\else\@tempcntzz=#1\fi
+\ifnum#2<0 \@tempcntzzz=-#2\else\@tempcntzzz=#2\fi
+\ifnum#1=0\else
+\multiply\@tempcntzzz by10\relax \divide\@tempcntzzz by\@tempcntzz\fi%% (3/5)x10=6
+\ifnum\@tempcntzzz>7\relax\else\@wedgeadjusttrue\fi
+%%one point of wedge
+\ifnum#1=0\relax
+\@tempcntXb=#3 \advance\@tempcntXb by8\relax
+\@tempcntYb=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXb=0\relax
+\@tempcntYb=#3 \advance\@tempcntYb by8\relax
+\else
+\@tempcntXb=#3\relax
+\@tempcntYb=-#3\relax
+\if@wedgeadjust
+\advance\@tempcntXb by8\relax
+\advance\@tempcntYb by-8\relax
+\fi
+\multiply\@tempcntXb by#2\relax\multiply\@tempcntXb by10\relax
+\divide\@tempcntXb by#1\relax\divide\@tempcntXb by10\relax\fi\fi
+\advance\@tempcntXb by\@tempcntXa\relax
+\advance\@tempcntYb by\@tempcntYa\relax
+%%other point of wedge
+\ifnum#1=0\relax
+\@tempcntXc=-#3 \advance\@tempcntXc by-8\relax
+\@tempcntYc=0\relax
+\else
+\ifnum#2=0\relax
+\@tempcntXc=0\relax
+\@tempcntYc=-#3 \advance\@tempcntYc by-8\relax
+\else
+\@tempcntXc=-#3\relax
+\@tempcntYc=#3\relax
+\if@wedgeadjust
+\advance\@tempcntXc by-6\relax
+\advance\@tempcntYc by6\relax
+\fi
+\multiply\@tempcntXc by#2\relax\multiply\@tempcntXc by10\relax
+\divide\@tempcntXc by#1\relax\divide\@tempcntXc by10\relax\fi\fi
+\advance\@tempcntXc by\@tempcntXa\relax
+\advance\@tempcntYc by\@tempcntYa\relax
+}%%end of \stereo@wedgedimension
+% \end{macrocode}
+% \end{macro}
+%
+% The optional argument [Bl] of |\Put@@@Direct| is corrected
+% to be [bl]. This effect appears in the use of tbook.cls etc.
+% \changes{v4.04a}{2009/06/15}{Bug fix for tategumi}
+% \changes{v4.05}{2009/11/05}{Bug fix for tategumi and yokogumi;
+% pLaTeXe vs. LaTeXe}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+%
+% \begin{macro}{Put@@@Direct}
+% \begin{macrocode}
+% \def\Put@@@Direct(#1,#2)#3{\begingroup\psset{unit=\unitlength}%
+% \rput[Bl]{0}(#1,#2){#3}\endgroup}%2009/06/15 2009/11/05bugfix as follows
+\@ifundefined{iftdir}{\newif\iftdir \tdirfalse}{}%pLaTeXe vs. LaTeXe
+\def\Put@@@Direct(#1,#2)#3{\begingroup\psset{unit=\unitlength}%
+\iftdir
+\rput[bl]{0}(#1,#2){#3}\else\rput[Bl]{0}(#1,#2){#3}\fi
+\endgroup}
+\def\Put@@@oCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=.4pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+\def\Put@@@sCircle(#1,#2)#3{%
+ \begingroup \@tempcntz=#3 \divide\@tempcntz by2\relax
+ \pscircle[linewidth=2pt,unit=\unitlength](#1,#2){\@tempcntz}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% Dotted lines by the old macro |\d@@t@rline| are changed into hashed dash bonds
+% in the new macro |\d@@t@rline| (|\@wedgeswfalse|). If |\@wedgeswtrue| is
+% declared (default), the new macro draws a hashed wedged bonds.
+%
+% \begin{macro}{d@@t@rline}
+% \changes{v4.02}{2004/12/20}{Hashed wedged bonds for stereochemistry}
+% \begin{macrocode}
+\def\d@@t@rline(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\if@hasheddashsw
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+\if@skbondlist%hashed dash bond skeletal bond for general cases
+ \@ifundefined{psline}{%
+ \XyMTeXWarning{A dottedline is replaced by a solid line.}%
+ \Put@Line(#1,#2)(#3,#4){#5}%
+ }{{\thicklines%
+ \hasheddashbond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)}}%
+\else
+ \hashedwedgebond(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\fi\fi
+}%end of \d@@t@rline
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\hasheddashbond| works in the macro |\d@@t@rline| for
+% drawing a hased dash bond.
+%
+% \begin{macro}{hasheddashbond}
+% \changes{v4.02}{2004/12/20}{Hashed dash bonds for stereochemistry}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\hasheddashbond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntzz=12\relax
+\@tempcntzzz=-30\relax%almost no shortening
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=\thickLineWidth,linestyle=dashed,dash=1pt 1.2pt]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\hashedwedgebond| works in the macro |\d@@t@rline| for
+% drawing a hashed wedged bond.
+%
+% \begin{macro}{hashedwedgebond}
+% \changes{v4.02}{2004/12/20}{Hashed wedged bonds for stereochemistry}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\hashedwedgebond(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\begingroup
+\@tempcntXa=#8\relax
+\@tempcntYa=#9\relax
+\stereo@wedgedimension(#3,#4){10}%
+\pspolygon*[unit=\unitlength%
+%,linecolor=\psbondsubstcolor%added 2011/02/24
+](#1,#2)(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\@tempcntzz=5\relax
+\@tempcntzzz=-12\relax
+\bond@shorten(#1,#2)(#3,#4){#5}/(#6,#7)(#8,#9)%
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=3.8pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\fi
+\endgroup
+}%%end of \hashedwedgebond
+% \end{macrocode}
+% \end{macro}
+%
+% The inner macro |\bond@shorten| works in the macros |\hasheddashbond| and |\hashedwedgebond| for
+% shortening the resulting hashed bonds. This macro calculates the coordinates of the staring
+% point and the end point.
+%
+% \begin{macro}{bond@shorten}
+% \changes{v4.02}{2004/12/20}{Hashed forms for dash and wedged bonds}
+% \begin{macrocode}
+\def\bond@shorten(#1,#2)(#3,#4)#5/(#6,#7)(#8,#9){%
+\@tempcntXb=#8\relax
+\@tempcntYb=#9\relax
+\advance\@tempcntXb by-#6\relax \divide\@tempcntXb by\@tempcntzz\relax
+\advance\@tempcntYb by-#7\relax \divide\@tempcntYb by\@tempcntzz\relax
+\advance\@tempcntXb by#6\relax
+\advance\@tempcntYb by#7\relax
+\@tempcntXc=#8\relax
+\@tempcntYc=#9\relax
+\advance\@tempcntXc by-#6\relax \divide\@tempcntXc by\@tempcntzzz\relax
+\advance\@tempcntYc by-#7\relax \divide\@tempcntYc by\@tempcntzzz\relax
+\advance\@tempcntXc by#8\relax
+\advance\@tempcntYc by#9\relax
+}%%end of \bondshorten
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wedges, where
+% |\WedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{WedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{Wedged skeletal bonds}
+% \begin{macrocode}
+\def\WedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\stereo@wedgedimensionX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\stereo@wedgedimension|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{stereo@wedgedimensionX}
+% \changes{v5.01}{2013/05/27}{dimension of wedge}
+% \begin{macrocode}
+\def\stereo@wedgedimensionX(#1,#2)(#3,#4){%
+\@ifnextchar[{\stereo@@wedgedimensionX(#1,#2)(#3,#4)}%
+{\stereo@@wedgedimensionX(#1,#2)(#3,#4)[10]}}
+\def\stereo@@wedgedimensionX(#1,#2)(#3,#4)[#5]{%
+\@tempcnta=-#1\relax
+\advance\@tempcnta by#3\relax
+%%\typeout{KKK:\the\@tempcnta}%
+\@tempcntb=-#2\relax
+\advance\@tempcntb by#4\relax
+%%%\typeout{LLL:\the\@tempcntb}%
+\stereo@wedgedimension(\the\@tempcnta,\the\@tempcntb){#5}%
+%%%\typeout{MMM; (\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)}
+\advance\@tempcntXb by#3\relax
+\advance\@tempcntYb by#4\relax
+\advance\@tempcntXc by#3\relax
+\advance\@tempcntYc by#4\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{Wedged skeletal bonds}
+% \begin{macrocode}
+\def\WedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{\Wedge@AsSubstXPS(#1,#2)(#3,#4)}%
+{\Wedge@AsSubstXPS(#1,#2)(#3,#4)[10]}}%
+\def\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\stereo@wedgedimensionX(#1,#2)(#3,#4)[#5]%
+\pspolygon*[unit=\unitlength](#1,#2)%
+(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+\endgroup}
+\let\WedgeAsSubstX=\WedgeAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal hashed dash bonds can be changed into hashed wedges, where
+% |\HashWedgeAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{HashWedgeAsSubst}
+% \changes{v4.02}{2004/12/20}{Hashed Wedged skeletal bonds}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\HashWedgeAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\@thicklineswtrue \@wedgeswtrue
+\molfrontfalse \@skbondlistfalse
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+%%x-coordinate
+\@tempcntXa=0\relax
+\ifnum#3>0\relax \@tempcntXa=#5\relax
+\advance\@tempcntXa by-10\relax
+\else\ifnum#3<0\relax\@tempcntXa=-#5\relax\fi\fi
+\advance\@tempcntXa by#1\relax
+%%y-coordinate
+\@tempcntYa=#5\relax
+\advance\@tempcntYa by-10\relax
+\ifnum#3=0\relax\else
+\multiply\@tempcntYa by#4\relax\multiply\@tempcntYa by10\relax
+\divide\@tempcntYa by#3\relax\divide\@tempcntYa by10\relax\fi
+\ifnum\@tempcntYa<0\relax
+\ifnum#4>0\relax\@tempcntYa=-\@tempcntYa\fi
+\else
+\ifnum\@tempcntYa>0\relax
+\ifnum#4<0\relax\@tempcntYa=-\@tempcntYa\fi\fi
+\fi
+\advance\@tempcntYa by#2\relax
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+linewidth=5pt,linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\else
+\psline[unit=\unitlength,%
+linewidth=3pt,linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+%%(\the\@tempcntXb,\the\@tempcntYb)(\the\@tempcntXc,\the\@tempcntYc)%
+(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstPS
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\HashWedgeAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\HashWedgeAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{HashWedgeAsSubstX}
+% \changes{v5.01}{2013/05/27}{Hashed Wedged skeletal bonds}
+% \begin{macrocode}
+\def\HashWedgeAsSubstXPS(#1,#2)(#3,#4){%
+\@ifnextchar[{
+\HashWedge@sSubstXPS(#1,#2)(#3,#4)}%
+{\HashWedge@sSubstXPS(#1,#2)(#3,#4)[10]}}
+\def\HashWedge@sSubstXPS(#1,#2)(#3,#4)[#5]{%
+\begingroup
+\Wedge@AsSubstXPS(#1,#2)(#3,#4)[#5]%
+\ifdim\unitlength>0.08pt
+\@tempdima=#5\unitlength \multiply\@tempdima by3\relax
+\advance\@tempdima by1pt%adjustment
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.8pt 1pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\else
+\@tempdima=#5\unitlength \multiply\@tempdima by3
+\psline[unit=\unitlength,%
+linewidth=\@tempdima,%
+linestyle=dashed,dash=0.6pt 0.8pt,linecolor=white]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}%%end of \HashWedgeAsSubstXPS
+\let\HashWedgeAsSubstX=\HashWedgeAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% Skeletal bold bonds can be changed into wavy bonds, where
+% |\WavyAsSubst| is described in an ATOMLIST as a kind of
+% spiro substituent.
+%
+% \begin{macro}{\WavyAsSubst}
+% \changes{v5.01}{2004/06/21}{For PDF mode: Wavy skeletal bonds}
+% \begin{macrocode}
+\def\WavyAsSubstPS(#1,#2)(#3,#4)#5{%
+\begingroup
+\wavebondtrue
+\Put@@@Line(#1,#2)(#3,#4){#5}%
+\endgroup}
+\let\WavyAsSubst=\WavyAsSubstPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\WavyAsSubstX| has a starting point,
+% an endpoint, and the width of a wedge as its arguments.
+% Compare this command with |\WavyAsSubst|, which has
+% a starting point, a slope, and the width of a wedge
+% as its arguments.
+%
+% \begin{macro}{WedgeAsSubstX}
+% \changes{v5.01}{2013/06/21}{For PDF mode: Checked OK}
+% \begin{macrocode}
+\def\WavyAsSubstXPS(#1,#2)(#3,#4){%
+\pszigzag[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+coilheight=1,coilwidth=.13cm,linewidth=\thinLineWidth,linearc=5,%
+coilarm=0]{-}(#3,#4)(#1,#2)%
+}
+\let\WavyAsSubstX=\WavyAsSubstXPS%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\PUT@@@bondLINE| is used to draw a bond line.
+% This macro relies on the pstricks package.
+%
+% \begin{macro}{\PUT@@@bondLINE}
+% \begin{macro}{\PutPSLine}
+% \changes{v5.00}{2010/10/01}{For compatibility to PDF mode: macro for
+% drawing a straight-line bond after adjusting its joint position}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\PUT@@@bondLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5](#1,#2)(#3,#4)%
+\endgroup
+}
+\let\PutPSLine=\PUT@@@bondLINE%for user's use
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\PUT@@@dashedLINE| is used to draw a dashed bond line,
+% which usually links two non-adjacent atoms of a cyclic compound.
+% This macro relies on the pstrick package.
+%
+% \begin{macro}{\PUT@@@dashedLINE}
+% \begin{macro}{\PutPSdashed}
+% \begin{macro}{\PutDashedBond}
+% \changes{v5.00}{2010/10/01}{For PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\PUT@@@dashedLINE(#1,#2)(#3,#4)#5{%
+\begingroup
+\ifdim\unitlength>0.08pt
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5,linestyle=dashed,dash=1pt 1.2pt]%
+(#1,#2)(#3,#4)%
+\else
+\psline[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=#5,linestyle=dashed,dash=0.8pt 1pt]%
+(#1,#2)(#3,#4)%
+\fi
+\endgroup
+}
+\let\PutPSdashed=\PUT@@@dashedLINE%for user's use
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The command \cs{downnobond} is redefined for pstricks.
+% \begin{macro}{\upnobond}
+% \begin{macro}{\downnobond}
+% \begin{macrocode}
+%\def\upnobond#1#2{%nochange
+%\hbox{\hbox to0.72em{\hss#1\hss}\kern-0.72em\raise2.2ex\hbox{#2}}}
+\def\downnobond#1#2{%
+\hbox{\smash{\hbox to0.72em{\hss#1\hss}\kern-0.72em\lower2.2ex\hbox{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% The macro |\putRoundArrowPS| throws its main task to its inner
+% macro |\putRound@rrowPS|, which treats an optional argument
+% for specifying the direction of an arrow head.
+% The macro |\putRoundArrow| is defined as a user command to
+% assure the compatibility to the PostScript mode.
+%
+% \begin{macro}{\putRoundArrowPS}
+% \begin{macro}{\putRound@rrowPS}
+% \begin{macro}{\putRoundArrow}
+% \changes{v5.00}{2010/10/01}{For PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\putRoundArrowPS{%
+\@ifnextchar[{\putRound@rrowPS}{\putRound@rrowPS[->]}}
+\def\putRound@rrowPS[#1]#2{%
+\pscurve[unit=\unitlength,%
+%linecolor=\psbondsubstcolor,%added 2011/02/24
+linewidth=0.4pt]{#1}#2}
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\red etc.}
+% \changes{v5.00}{2010/10/01}{Colors for PS mode}
+% \begin{macrocode}
+\def\red{\color{red}\psset{linecolor=red}}
+\def\blue{\color{blue}\psset{linecolor=blue}}
+\def\green{\color{green}\psset{linecolor=green}}
+\def\black{\color{black}\psset{linecolor=black}}
+\def\cyan{\color{cyan}\psset{linecolor=cyan}}
+\def\yellow{\color{yellow}\psset{linecolor=yellow}}
+\def\magenta{\color{magenta}\psset{linecolor=magenta}}
+\def\white{\color{white}\psset{linecolor=white}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xymcolor}
+% \begin{macro}{\redx etc.}
+% These macros are defined to avoid \texttt{**Warning** color stack underflow}
+% during processing by the dvipdfmx converter.
+% \changes{v5.00}{2010/10/01}{Added: Colors for TeX/LaTeX mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% \begin{macrocode}
+\def\xymcolor#1#2{\mbox{\color{#1}\psset{linecolor=#1}#2}}
+%defined in the bondcolor packag
+%\def\redx#1{\xymcolor{red}{#1}}
+%\def\bluex#1{\xymcolor{blue}{#1}}
+%\def\greenx#1{\xymcolor{green}{#1}}
+%\def\blackx#1{\xymcolor{black}{#1}}
+%\def\cyanx#1{\xymcolor{cyan}{#1}}
+%\def\yellowx#1{\xymcolor{yellow}{#1}}
+%\def\magentax#1{\xymcolor{magenta}{#1}}
+%\def\whitex#1{\xymcolor{white}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Color@@@Line}
+% \changes{v5.00}{2010/10/01}{For coloring skeletal bond in PS mode}
+% \changes{v5.01}{2011/02/24}{Coloring atoms and bonds}
+% The last argument (\#7) specifies a line color.
+% This command is used in the definition of |\replaceSKbond|
+% of the \textsf{bondcolor} package by putting \verb/#7=white/.
+% \begin{macro}{\Color@Line}
+% \begin{macrocode}
+\def\Color@@@Line{%
+\@ifnextchar[{\C@lor@@@Line}{\C@lor@@@Line[0.4pt]}}
+\def\C@lor@@@Line[#1](#2,#3)(#4,#5)#6#7{%
+\begingroup
+\SlopetoXY(#2,#3)(#4,#5){#6}%common to \Put@@@Line command
+\psline[unit=\unitlength,%
+linewidth=#1,linecolor=#7]
+(#2,#3)(\the\@tempcntXa,\the\@tempcntYa)%
+\@tempcntXa=0\relax \@tempcntYa=0\relax
+\endgroup}%end of \Color@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BackGroundColor}
+% \changes{v5.01}{2013/08/16}{For coloring skeletal bond in PS mode}
+% This macro is redefined for the PostSript mode.
+% \begin{macrocode}
+\def\BackGroundColor{%
+\definecolor{TempColor}{cmyk}{0,0,0,0}%
+\psset{linecolor=TempColor}}
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\changeunitlength| is redefined for using pstricks.
+% \begin{macro}{\changeunitlength}
+% \begin{macrocode}
+\newif\ifsizereduction\sizereductionfalse
+\def\@@changeunitlength#1{\unitlength=#1\relax
+%%\psset{unit=\unitlength}%delete August 02, 2005
+\ifdim\unitlength<0.1pt \sizereductiontrue
+\ifdim\unitlength<0.062pt \let\substfontsize=\tiny \else
+\ifdim\unitlength<0.072pt \let\substfontsize=\scriptsize \else
+\ifdim\unitlength<0.082pt \let\substfontsize=\footnotesize
+\fi\fi\fi
+\else \let\substfontsize=\normalsize\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{setxymtxps}
+% \changes{v4.02}{2004/12/20}{Added: a switch for wedged bonds}
+% \begin{macrocode}
+\def\setxymtxps{%
+\@ifnextchar[{\@setxymtxps}{\@setxymtxps[0.1pt]}}
+\def\@setxymtxps[#1]{%
+\PSmodetrue
+\let\sfpicture=\picture
+\let\endsfpicture=\endpicture
+\let\thicklines=\Thick@Lines
+\let\thinlines=\Thin@Lines
+\let\Put@Line=\Put@@@Line
+\let\Color@Line=\Color@@@Line%for compatibility to PDF mode
+\let\Put@Direct=\Put@@@Direct
+\let\Put@oCircle=\Put@@@oCircle
+\let\Put@sCircle=\Put@@@sCircle
+\let\dotorline=\d@@t@rline
+\let\WedgeAsSubst=\WedgeAsSubstPS%for compatibility to PDF mode
+\let\HashWedgeAsSubst=\HashWedgeAsSubstPS%for compatibility to PDF mode
+\let\PutBondLine=\PUT@@@bondLINE%for compatibility to PDF
+\let\PutDashedBond=\PUT@@@dashedLINE%for compatibility to PDF mode
+\let\putRoundArrow=\putRoundArrowPS%for the compatibility to PDF mode
+\let\changeunitlength=\@@changeunitlength
+\changeunitlength{#1}%
+\wedgehasheddash%
+}
+\setxymtxps
+%</xymtxps>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput