diff options
Diffstat (limited to 'macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx')
-rw-r--r-- | macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx | 1681 |
1 files changed, 1681 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx new file mode 100644 index 0000000000..58ee50a903 --- /dev/null +++ b/macros/latex/contrib/xymtex/xymtxps/chmst-ps.dtx @@ -0,0 +1,1681 @@ +% \iffalse +% +% chmst-ps.dtx +% +% Copyright (C) 2002, 2004, 2010 by Shinsaku Fujita All rights reserved. +% +% ======================================== +% +% Modified from the following previous package: +% +% chemist.dtx +% Copyright (C) 1996, 1999, 2000 by Shinsaku Fujita All rights reserved. +% +% in order to utilize pstricks. +% +% This file is part of the ChemSci system +% ======================================== +% +% This style file is created for submitting a manuscript to +% scientific journals. This style file is to be contained in the +% ``chemist'' directory which is an input directory for TeX. +% +% For using this file, see +% Shinsaku Fujita, ``LaTeX for Chemists and Biochemists'' +% Tokyo Kagaku Dojin, Tokyo (1993), Chapter 16. +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% The Current Maintainer of this work is Shinsaku Fujita. +% +% This work consists of the files chmst-ps.dtx and chmst-ps.ins +% and the derived file chmst-ps.sty. +% +% Please report any bugs, comments, suggestions, etc. to: +% Shinsaku Fujita, +% Shonan Institute of Chemoinformatics and +% Mathematical Chemistry +% fujita-sicimc@nifmail.jp +% +%======================================= +% +% This file is a successor to: +% +% ********************************************************************* +% * chemist.sty <Sept 29 1991> by Shinsaku Fujita * +% * counters and related matters for compounds. * +% * ffboxit: November 2 1991 by S. Fujita * +% * bslskipchange: November 6 1991 by S. Fujita (deleted) * +% * chapinitial: 1991 November 7 by S. Fujita * +% * variable arrows: 1992 May 24 by S. Fujita * +% * reaction and scheme arrows (revised): 1992 May 24 by S. Fujita * +% * changespace <=== bslskipchange: Dec 31 1992 by S. Fujita * +% * (g)rshfboxit and (g)lshfboxit: January 3, 1993 by S. Fujita * +% ********************************************************************* +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Released on January 3, 1993 +% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved. +% This style file is created for making manuscripts of chemical fields. +% This option style file is to be contained in the ``chemist'' directory +% which is an input directory for TeX. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chemist} +% \def\versi@ndate{January 03, 1993} +% \def\versi@nno{ver1.00} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Version 1.01 +% --- added the end commands of the \verbatim environment and the +% \verb command contained in LaTeX 2.09 +% --- \LaTeX, \BibTeX logos etc improved +% \typeout{verbatim for LaTeX2.09 (and LaTeX2e) in chemist.sty} +% \typeout{logos for LaTeX2.09 (and LaTeX2e) in chemist.sty} +% \def\versi@ndate{April 20, 1996} +% \def\j@urnalname{chemist} +% \def\versi@ndate{April 20, 1996} +% \def\versi@nno{ver1.01} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chemist} \def\journalID{chemist} +% \def\versi@ndate{June 15, 1996} +% \def\versi@nno{ver1.01a} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% \typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space +% [\copyrighth@lder]} +% \typeout{chemist.sty ver1.01a (for LaTeX2e) 1996/06/15[SF]} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chemist} \def\journalID{chemist} +% \def\versi@ndate{March 16, 1999} +% \def\versi@nno{ver2.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chemist} \def\journalID{chemist} +% \def\versi@ndate{November 3, 2000} +% \def\versi@nno{ver2.00a} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps} +% \def\versi@ndate{May 30, 2002} +% \def\versi@nno{ver1.00} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps} +% \def\versi@ndate{August 30, 2004} +% \def\versi@nno{ver1.01} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps} +% \def\versi@ndate{November 08, 2009} +% \def\versi@nno{ver1.02} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \def\j@urnalname{chmst-ps} \def\journalID{chmst-ps} +% \def\versi@ndate{November 26, 2009} +% \def\versi@nno{ver1.03} +% \def\copyrighth@lder{SF} % Shinsaku Fujita +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% \fi +% \CheckSum{1615} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +% +% \iffalse +%% +%% `chmst-ps.dtx' ver1.00 (for LaTeX2e) 2002/05/30 +%% `chmst-ps.dtx' ver1.01 (for LaTeX2e) 2004/08/30 +%% `chmst-ps.dtx' ver1.02 (for LaTeX2e) 2009/11/08 +%% `chmst-ps.dtx' ver1.03 (for LaTeX2e) 2009/11/26 +%% `chmst-ps.dtx' ver5.00 (for LaTeX2e) 2010/10/01 +%% by Shinsaku Fujita +%% +% +% \section{Initial declaration} +% +% \changes{v1.00}{2002/05/30}{First Version} +% \changes{v1.01}{2004/08/30}{2nd Version} +% \changes{v1.02}{2009/11/08}{3rd Version} +% \changes{v1.03}{2009/11/26}{4th Version, harpoons} +% \changes{v5.00}{2010/10/01}{For LaTeX Project Public License} +% +% \begin{macrocode} +% \NeedsTeXFormat{LaTeX2e} +% \end{macrocode} +% +% \begin{macrocode} +% <chmstps>\ProvidesFile{chmst-ps.sty} +%<driver>\ProvidesFile{chmst-ps.drv} +%<driver> [2010/10/01 v5.00 +% <chmstps> ChemSci package ] +%<driver> ChemSci package driver (English) +% \end{macrocode} +% +%\setcounter{StandardModuleDepth}{1} +% +% \section{Driver file for this dtx file} +% +% \begin{macrocode} +%<*driver> + ] +\documentclass{ltxdoc} +\GetFileInfo{chmst-ps.drv} +\title{The chmst-ps Package \space\fileversion \\ +(Part of the XyMTeX/ChemSci package v5.00)} +\author{Shinsaku Fujita \\ +Shonan Institute of Chemoinformatics and +Mathematical Chemistry \\ +Ashigara-Kami-Gun, Kanagawa, 258-0019 Japan +%% Department of Chemistry and Materials Technology \\ +%% Kyoto Institute of Technology \\ +%% Matsugasaki, Sakyoku, Kyoto, 606-8585 Japan +%% (old address) +%% Ashigara Research Laboratories \\ +%% Fuji Photo Film Co. Ltd. +} +\date{\filedate} +\begin{document} +\maketitle +\tableofcontents +\DocInput{chmst-ps.dtx} +\end{document} +%</driver> +% \end{macrocode} +% +% \fi +% +% \StopEventually{} +% +% \section{{\sc docstrip} options} +% +% This dtx file provides the {\sffamily chmst-ps} package +% by docstrip processing. +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{|l|l|} +% \hline +% argument & package name \\ +% \hline +% chmstps & chmst-ps.sty \\ +% driver & a documentation driver file \\ +% \hline +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% \section{Version information} +% +% The old process for typing out version information remains active. +% \begin{macrocode} +%<chmstps>\def\j@urnalname{chmst-ps} \def\journalID{chmst-ps} +\def\versi@ndate{October 01, 2010} +\def\versi@nno{ver5.00} +\def\copyrighth@lder{SF} % Shinsaku Fujita +%<*chmstps> +\typeout{Package `\j@urnalname' (\versi@nno) <\versi@ndate>\space +[\copyrighth@lder]} +\typeout{chmst-ps.sty ver5.00 (for LaTeX2e) 2010/10/01[SF]} +%</chmstps> +% \end{macrocode} +% +% \begin{macrocode} +%<*chmstps> +\@ifundefined{if@@@chemtimes}{\newif\if@@@chemtimes}{} +\@ifundefined{if@@chemtimes}{\newif\if@@chemtimes}{}%from chemtimes +\DeclareOption{chemtimes}{\@@@chemtimestrue} +\@@@chemtimesfalse +\ProcessOptions +\if@@@chemtimes\if@@chemtimes\else + \PackageError{chmst-ps} + {The option ``chemtimes'' is not permitted} + {You should use this option after the chemtimes package is loaded.} +\fi\fi +\if@@@chemtimes +\RequirePackage[chemtimes]{chemist}% +\else +\RequirePackage{chemist}% +\fi +\RequirePackage{xymtx-ps}% +% \end{macrocode} +% +% \section{Cross-references of compounds} +% (Deleted) +% \section{Boxes for placing compounds} +% (Deleted) +% \section{Arrows} +% \subsection{Arrows with variable length} +% (Deleted) +% \subsection{Reaction arrows with variable length} +% +% The {\sffamily chmst-ps} package defines arrows with variable length +% for drawing chemical equations, where additional information +% can be written on the upper and/or downward sides of each arrow. +% \changes{v1.00}{2002/05/30}{First Version} +% +% Several elements for drawing horizontal reaction arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\rArrow@Element} +% \begin{macro}{\lArrow@Element} +% \begin{macro}{\lrArrow@Element} +% \begin{macro}{\eqArrow@Element} +% \begin{macrocode} +\newdimen\@tempdimX +\newdimen\@tempdimY +\def\rArrow@Element#1{\begingroup\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,% +arrowlength=1.6,arrowinset=0.6]{->}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}\endgroup} +\let\Arrow@Element=\rArrow@Element +\def\lArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,% +arrowlength=1.6,arrowinset=0.6]{<-}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}} +\def\lrArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,% +arrowlength=1.6,arrowinset=0.6]{<->}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}} +\def\eqArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(0pt,0.43em)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0pt,0.13em)(#1,0.13em)% +\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Several harpoons are created by means of the mechanism of the \textsf{PStricks} +% package. +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% +% \begin{macro}{\past@arrowtable} +% Arow types (Hru, Hrd, Hlu, and Hld) are added to the existing arrow table +% for a right upward harpoon, a right downward harpoon, a left upward harpoon, +% and a left downward harpoon. +% \begin{macrocode} +\RequirePackage{pstricks}% +\edef\past@arrowtable{\pst@arrowtable,Hru-Hru,Hrd-Hrd,Hlu-Hlu,Hld-Hld} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tx@HarpoonrUp} +% \begin{macro}{\psas@Hru} +% A right upward harpoon (arow type Hru) is typeset by \verb/\tx@HarpoonrUp/ +% (/HarpoonrUp as a PostScript name), where its arrowhead is typeset by an +% internal macro name (\verb/\psas@Hru/). The PostScript commands (/CLW, /ED, and /L) +% are defined in pstricks.pro. +% \begin{macrocode} +%rightharpoonup +%\edef\past@arrowtable{\pst@arrowtable,Hru-Hru} +\def\tx@HarpoonrUp{ \tx@setStrokeTransparency HarpoonrUp }% +\@namedef{psas@Hru}{% + /HarpoonrUp{%PostScript Procedure + CLW mul add dup + 2 div /w ED + mul dup /h ED + mul /a ED + CLW 2 div /Hwd ED + h a sub /Hwh ED + 0 Hwh moveto + Hwd neg Hwh L + Hwd neg 0 L + 0 0 L + w h L + 0 Hwh L + gsave fill grestore +}def +\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrUp +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\tx@HarpoonrDown} +% \begin{macro}{\psas@Hrd} +% A right downward harpoon (arow type Hrd) is typeset by \verb/\tx@HarpoonrDown/ +% (/HarpoonrDown as a PostScript name), where its arrowhead is typeset by an +% internal macro name (\verb/\psas@Hrd/). +% \begin{macrocode} +%rightharpoondown +%\edef\past@arrowtable{\pst@arrowtable,Hrd-Hrd} +\def\tx@HarpoonrDown{ \tx@setStrokeTransparency HarpoonrDown }% +\@namedef{psas@Hrd}{% + /HarpoonrDown {%PostScript Procedure + CLW mul add dup + 2 div /w ED + mul dup /h ED + mul /a ED + CLW 2 div /Hwd ED + h a sub /Hwh ED + 0 Hwh moveto + Hwd Hwh L + Hwd 0 L + 0 0 L + w neg h L + 0 Hwh L + gsave fill grestore +}def +\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonrDown +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\tx@HarpoonlUp} +% \begin{macro}{\psas@Hlu} +% A left upward harpoon (arow type Hlu) is typeset by \verb/\tx@HarpoonlUp/ +% (/HarpoonlUp as a PostScript name), where its arrowhead is typeset by an +% internal macro name (\verb/\psas@Hlu/). +% \begin{macrocode} +%leftharpoonup +%\edef\past@arrowtable{\pst@arrowtable,Hlu-Hlu} +\def\tx@HarpoonlUp{ \tx@setStrokeTransparency HarpoonlUp }% +\@namedef{psas@Hlu}{% + /HarpoonlUp {%PostScript Procedure + CLW mul add dup + 2 div /w ED + mul dup /h ED + mul /a ED + CLW 2 div /Hwd ED + h a sub /Hwh ED + 0 Hwh moveto + Hwd Hwh L + Hwd 0 L + 0 0 L + w neg h L + 0 Hwh L + gsave fill grestore +}def +\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlUp +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\tx@HarpoonlDown} +% \begin{macro}{\psas@Hld} +% A left downward harpoon (arow type Hld) is typeset by \verb/\tx@HarpoonlDown/ +% (/HarpoonlDown as a PostScript name), where its arrowhead is typeset by an +% internal macro name (\verb/\psas@Hld/). +% \begin{macrocode} +%leftharpoondown +%\edef\past@arrowtable{\pst@arrowtable,Hld-Hld} +\def\tx@HarpoonlDown{ \tx@setStrokeTransparency HarpoonlDown }% +\@namedef{psas@Hld}{% + /HarpoonlDown {%PostScript Procedure + CLW mul add dup + 2 div /w ED + mul dup /h ED + mul /a ED + CLW 2 div /Hwd ED + h a sub /Hwh ED + 0 Hwh moveto + Hwd neg Hwh L + Hwd neg 0 L + 0 0 L + w h L + 0 Hwh L + gsave fill grestore +}def +\psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@HarpoonlDown +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\eqHarpoon@Element} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\eqHarpoon@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(0pt,0.43em)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(0pt,0.13em)(#1,0.13em)% +\end{pspicture}\hss}} +% +%\def\eqHarpoon@Element#1{\hbox to#1{\hss% +%\begin{pspicture}(0,0)(#1,0.43em)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(0pt,0.43em)(#1,0.43em)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(0pt,0.13em)(#1,0.13em)% +%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.29em)(#1,0.29em)% +%\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% Equilibirum arrows with uneven lengths are defined by using the \verb/\psline/ command +% of the pstricks package. +% \changes{v1.02}{2009/11/08}{2nd Version} +% +% \begin{macro}{\reqArrow@Element} +% \begin{macro}{\leqArrow@Element} +% \begin{macrocode} +\def\reqArrow@Element#1{\begingroup% +\dimen1=#1% +\dimen0=\eqlbarrowstretch\dimen1% +\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +\dimen2=\dimen1 \advance\dimen2 by\dimen0 +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(0pt,0.43em)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(\dimen1,0.13em)(\dimen2,0.13em)\endgroup} +\def\leqArrow@Element#1{\begingroup% +\dimen1=#1% +\dimen0=\eqlbarrowstretch\dimen1% +\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +\dimen2=\dimen1 \advance\dimen2 by\dimen0 +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(\dimen1,0.43em)(\dimen2,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0pt,0.13em)(#1,0.13em)\endgroup} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\reqHarpoon@Element} +% \begin{macro}{\leqHarpoon@Element} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\reqHarpoon@Element#1{\begingroup% +\dimen1=#1% +\dimen0=\eqlbarrowstretch\dimen1% +\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +\dimen2=\dimen1 \advance\dimen2 by\dimen0 +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(0pt,0.43em)(#1,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(\dimen1,0.13em)(\dimen2,0.13em)% +\endgroup} +\def\leqHarpoon@Element#1{\begingroup% +\dimen1=#1% +\dimen0=\eqlbarrowstretch\dimen1% +\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +\dimen2=\dimen1 \advance\dimen2 by\dimen0 +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(\dimen1,0.43em)(\dimen2,0.43em)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(0pt,0.13em)(#1,0.13em)% +\endgroup} +% +%\def\reqHarpoon@Element#1{\begingroup% +%\dimen1=#1% +%\dimen0=\eqlbarrowstretch\dimen1% +%\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +%\dimen2=\dimen1 \advance\dimen2 by\dimen0 +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(0pt,0.43em)(#1,0.43em)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(\dimen1,0.13em)(\dimen2,0.13em)% +%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.29em)(#1,0.29em)% +%\endgroup} +%\def\leqHarpoon@Element#1{\begingroup% +%\dimen1=#1% +%\dimen0=\eqlbarrowstretch\dimen1% +%\dimen1=#1 \advance\dimen1 by-\dimen0 \divide\dimen1 by2\relax +%\dimen2=\dimen1 \advance\dimen2 by\dimen0 +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%\{->}(\dimen1,0.43em)(\dimen2,0.43em)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(0pt,0.13em)(#1,0.13em)% +%\psline[linewidth=0.277em,linecolor=white]{-}(0pt,0.287em)(#1,0.287em)% +%\endgroup} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% Each arrow element is used in the following common command for drawing +% horizontal reaction arrows. +% \changes{v1.02}{2009/11/08}{changed definition; +% added \cs{reactarrowsep} and \cs{reactarrowseprate}} +% +% \begin{verbatim} +% \reactarrowsep (dimension) for adjusting the two vertical spaces (default value 0pt) +% \reactarrowseprate (string) for adjusting the lower vertical space (default 1.0) +% \end{verbatim} +% +% \begin{macro}{\react@@rlarrow} +% \begin{macrocode} +\def\react@@rlarrow[#1]#2#3#4#5{\ensuremath{\mathrel{% +\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax% + \parbox{#3}{\centering + \baselineskip=.8\normalbaselineskip \ChemStrut{#4}\par% + \vskip-0.2\normalbaselineskip\vskip\reactarrowsep% + \begin{pspicture}(0,0)(\@tempdimX,0.6em)% +% \Arrow@Element{\@tempdimX}% + \put(0,0){\Arrow@Element{\@tempdimX}}% + \end{pspicture}% + \par% + \vskip\reactarrowseprate\reactarrowsep% + \vskip-0.1\normalbaselineskip\ChemStrut{#5}}\endgroup}}}} +%(old definition) +%\def\react@@rlarrow[#1]#2#3#4#5{% +%\hskip#1\raisebox{#2}{\begingroup\@tempdimX=#3\relax% +% \begin{pspicture}(\@tempdimX,0)% +% \rput[bl](0,0.86em){\hbox to\@tempdimX{\hss +% \begin{tabular}{c}#4% +% \end{tabular}\hss}}% +% \Arrow@Element{\@tempdimX}% +% \rput[tl](0,-0.3em){\hbox to\@tempdimX{\hss +% \begin{tabular}{c}% +% #5\end{tabular}\hss}}% +% \end{pspicture}\endgroup}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\reactrarrow} +% \begin{macro}{\reactlarrow} +% \begin{macro}{\reactlrarrow} +% \begin{macro}{\reactEqarrow}%2009/11/19 renamed from \verb/\reacteqarrow/ +% \begin{macro}{\reacteqarrow}%2009/11/19 +% \begin{macrocode} +% ******************* 1991 Oct 4 S. Fujita +% * reaction arrows * Revised 1992 May 24 S.Fujita%1999/02/02 SF +% ******************* Redifined 2002 May 30 S. Fujita for pstricks +% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita +% +% #1 yoko #2 ue, #3 haba, #4 ya no ue, #5 ya no shita +% +\def\newreactrarrow{% +\@ifnextchar[{\newreact@rarrow}{\newreact@rarrow[0pt]}} +\def\newreact@rarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\rArrow@Element% +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactlarrow{% +\@ifnextchar[{\newreact@larrow}{\newreact@larrow[0pt]}} +\def\newreact@larrow[#1]#2#3#4#5{% +\let\Arrow@Element=\lArrow@Element% +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactlrarrow{% +\@ifnextchar[{\newreact@lrarrow}{\newreact@lrarrow[0pt]}} +\def\newreact@lrarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\lrArrow@Element% +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +%%%%2009/11/19 +\def\newreactEqarrow{% +\@ifnextchar[{\newreact@Eqarrow}{\newreact@Eqarrow[0pt]}} +\def\newreact@Eqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\eqArrow@Element% +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreacteqarrow{% +\@ifnextchar[{\newreact@eqarrow}{\newreact@eqarrow[0pt]}} +\def\newreact@eqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\eqHarpoon@Element% +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +%\let\reactrarrow=\newreactrarrow +%\let\reactlarrow=\newreactlarrow +%\let\reactlrarrow=\newreactlrarrow +%\let\reactEqarrow=\newreactEqarrow +%\let\reacteqarrow=\newreacteqarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\reactREqarrow}%%renamed 2009/11/19 +% \begin{macro}{\reactLEqarrow}%%renamed 2009/11/19 +% \begin{macro}{\reactreqarrow} +% \begin{macro}{\reactleqarrow} +% +% These commands have been added for the XyMTeX version 4.05. +% The {\sffamily chemist} package additionally defines arrows with variable length +% for drawing chemical equilibrium, where additional information +% can be written on the upper and/or downward sides of each arrow. +% The length of either one of arrows can be reduced by \verb/\eqlbarrowstretch/. +% +% \changes{v4.05}{2009/11/08}{added \cs{reactreqarrow} and \cs{reactleqarrow}} +% +% \begin{macrocode} +\def\newreactREqarrow{% +\@ifnextchar[{\newreact@REqarrow}{\newreact@REqarrow[0pt]}} +\def\newreact@REqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\reqArrow@Element +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactLEqarrow{% +\@ifnextchar[{\newreact@LEqarrow}{\newreact@LEqarrow[0pt]}} +\def\newreact@LEqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\leqArrow@Element +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +\def\newreactreqarrow{% +\@ifnextchar[{\newreact@reqarrow}{\newreact@reqarrow[0pt]}} +\def\newreact@reqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\reqHarpoon@Element +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactleqarrow{% +\@ifnextchar[{\newreact@leqarrow}{\newreact@leqarrow[0pt]}} +\def\newreact@leqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\leqHarpoon@Element +\react@@rlarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +%\let\reactREqarrow=\newreactREqarrow +%\let\reactLEqarrow=\newreactLEqarrow +%\let\reactreqarrow=\newreactreqarrow +%\let\reactleqarrow=\newreactleqarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Several elements for drawing vertical reaction arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\dArrow@Element} +% \begin{macro}{\uArrow@Element} +% \begin{macro}{\veqArrow@Element} +% \begin{macro}{\duArrow@Element} +% \begin{macrocode} +\def\dArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(0pt,#1)(0pt,0pt)} +\def\uArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0pt,#1)(0pt,0pt)} +\def\veqArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(-0.15em,#1)(-0.15em,0pt)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0.15em,#1)(0.15em,0pt)} +\def\duArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<->}(0pt,#1)(0pt,0pt)} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\veqHarpoon@Element} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\veqHarpoon@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hrd}(-0.15em,#1)(-0.15em,0pt)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hlu-}(0.15em,#1)(0.15em,0pt)% +} +% +%\def\veqHarpoon@Element#1{% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(-0.15em,#1)(-0.15em,0pt)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(0.15em,#1)(0.15em,0pt)% +%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,0em)(0,#1)% +%} +% \end{macrocode} +% \end{macro} +% +% Each arrow element is used in the following common command for drawing +% vertical reaction arrows. +% +% \begin{macro}{\react@@duarrow} +% \begin{macrocode} +\def\react@@duarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{% +\@tempdimY=#3\def\arraystretch{0.8}% +\begin{tabular}{l}#4\end{tabular}% +{\tabcolsep=0pt\begin{tabular}{c}% +\begin{pspicture}(0,0)(0,\@tempdimY)% +\Arrow@Element{\@tempdimY}% +\end{pspicture}\end{tabular}}% +\begin{tabular}{l}#5\end{tabular}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\reactdarrow} +% \begin{macro}{\reactuarrow} +% \begin{macro}{\reactduarrow} +% \begin{macro}{\reactVEqarrow}%%renamed 2009/11/19 +% \begin{macro}{\reactveqarrow}%%renamed 2009/11/19 +% Vertical reaction arrows has been added. +% \changes{v1.00}{2002/05/30}{First Version} +% \begin{macrocode} +\def\newreactdarrow{% +\@ifnextchar[{\newreact@darrow}{\newreact@darrow[0pt]}} +\def\newreact@darrow[#1]#2#3#4#5{% +\let\Arrow@Element=\dArrow@Element +\react@@duarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactuarrow{% +\@ifnextchar[{\newreact@uarrow}{\newreact@uarrow[0pt]}} +\def\newreact@uarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\uArrow@Element +\react@@duarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactduarrow{% +\@ifnextchar[{\newreact@duarrow}{\newreact@duarrow[0pt]}} +\def\newreact@duarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\duArrow@Element +\react@@duarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +\def\newreactVEqarrow{% +\@ifnextchar[{\newreact@VEqarrow}{\newreact@VEqarrow[0pt]}} +\def\newreact@VEqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\veqArrow@Element +\react@@duarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactveqarrow{% +\@ifnextchar[{\newreact@veqarrow}{\newreact@veqarrow[0pt]}} +\def\newreact@veqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\veqHarpoon@Element +\react@@duarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +%\let\reactdarrow=\newreactdarrow +%\let\reactuarrow=\newreactuarrow +%\let\reactduarrow=\newreactduarrow +%\let\reactVEqarrow=\newreactVEqarrow +%\let\reactveqarrow=\newreactveqarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Several elements for drawing down-sloped reaction arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\seArrow@Element} +% \begin{macrocode} +\def\seArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(0pt,#1)(#1,0pt)} +\def\nwArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0pt,#1)(#1,0pt)} +% \end{macrocode} +% \end{macro} +% +% Each arrow element is used in the following common command for drawing +% down-sloped reaction arrows. +% +% \begin{macro}{\react@@decrarrow} +% \begin{macrocode} +\def\react@@decrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{% +\@tempdimX=#3\divide\@tempdimX by2\relax +\@tempdimY=#3\relax\def\arraystretch{0.8}% +\begin{tabular}{l}#4\end{tabular}\kern1em% +{\tabcolsep=0pt\begin{tabular}{c} +\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY) +\Arrow@Element{\@tempdimY}% +\end{pspicture}\end{tabular}}\kern1em% +\begin{tabular}{l}#5\end{tabular}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\reactsearrow} +% \begin{macro}{\reactnwrarrow} +% Further reaction arrows have been added. +% \changes{v1.00}{2002/05/30}{First Version} +% \begin{macrocode} +\def\newreactsearrow{% +\@ifnextchar[{\newreact@searrow}{\newreact@searrow[0pt]}} +\def\newreact@searrow[#1]#2#3#4#5{% +\let\Arrow@Element=\seArrow@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactnwarrow{% +\@ifnextchar[{\newreact@nwarrow}{\newreact@nwarrow[0pt]}} +\def\newreact@nwarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\nwArrow@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +%\let\reactsearrow=\newreactsearrow +%\let\reactnwarrow=\newreactnwarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Several elements for drawing up-sloped reaction arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\neArrow@Element} +% \begin{macrocode} +\def\neArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(0pt,0pt)(#1,#1)} +\def\swArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(0pt,0pt)(#1,#1)} +% \end{macrocode} +% \end{macro} +% +% Each arrow element is used in the following common command for drawing +% up-sloped reaction arrows. +% +% \begin{macro}{\react@@incrarrow} +% \begin{macrocode} +\def\react@@incrarrow[#1]#2#3#4#5{\hskip#1\raisebox{#2}{% +\@tempdimX=#3 \divide\@tempdimX by2 +\@tempdimY=#3% +\def\arraystretch{0.8}% +\begin{tabular}{l}#4\end{tabular}\kern1em% +{\tabcolsep=0pt +\begin{tabular}{c} +\begin{pspicture}(\@tempdimX,0)(\@tempdimX,\@tempdimY) +\Arrow@Element{\@tempdimY}% +\end{pspicture}% +\end{tabular}}\kern1em% +\begin{tabular}{l}#5\end{tabular}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\reactnearrow} +% \begin{macro}{\reactswarrow} +% \begin{macrocode} +\def\newreactnearrow{% +\@ifnextchar[{\newreact@nearrow}{\newreact@nearrow[0pt]}} +\def\newreact@nearrow[#1]#2#3#4#5{% +\let\Arrow@Element=\neArrow@Element +\react@@incrarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactswarrow{% +\@ifnextchar[{\newreact@swarrow}{\newreact@swarrow[0pt]}} +\def\newreact@swarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\swArrow@Element +\react@@incrarrow[#1]{#2}{#3}{#4}{#5}} +%%%%%2009/11/19 +%\let\reactnearrow=\newreactnearrow +%\let\reactswarrow=\newreactswarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Additional elements for drawing down- and up-sloped equilibrium arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\deqArrow@Element} +% \begin{macro}{\ueqArrow@Element} +% \begin{macrocode} +\def\deqArrow@Element#1{% +\begingroup +\@tempdima=#1 \advance\@tempdima by1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(1.2pt,\@tempdima)(\@tempdima,1.2pt)% +\@tempdima=#1 \advance\@tempdima by-1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(-1.2pt,\@tempdima)(\@tempdima,-1.2pt)\endgroup} +\def\ueqArrow@Element#1{% +\@tempdima=#1 \advance\@tempdima by-1.2pt +\@tempdimb=#1 \advance\@tempdimb by1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{->}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Additional elements for drawing down- and up-sloped equilibrium harpoons within the scope of +% pstricks package are defined. +% \changes{v1.02}{2009/11/19}{Added} +% +% \begin{macro}{\deqHarpoon@Element} +% \begin{macro}{\ueqHarpoon@Element} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\deqHarpoon@Element#1{% +\begingroup +\@tempdima=#1 \advance\@tempdima by1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(1.2pt,\@tempdima)(\@tempdima,1.2pt)% +\@tempdimb=#1 \advance\@tempdimb by-1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(-1.2pt,\@tempdimb)(\@tempdimb,-1.2pt)% +\endgroup} +\def\ueqHarpoon@Element#1{% +\begingroup +\@tempdima=#1 \advance\@tempdima by-1.2pt +\@tempdimb=#1 \advance\@tempdimb by1.2pt +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)% +\endgroup} +% +%\def\deqHarpoon@Element#1{% +%\begingroup +%\@tempdima=#1 \advance\@tempdima by1.2pt +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(1.2pt,\@tempdima)(\@tempdima,1.2pt)% +%\@tempdimb=#1 \advance\@tempdimb by-1.2pt +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(-1.2pt,\@tempdimb)(\@tempdimb,-1.2pt)% +%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,#1)(#1,0pt)% +%\endgroup} +%\def\ueqHarpoon@Element#1{% +%\begingroup +%\@tempdima=#1 \advance\@tempdima by-1.2pt +%\@tempdimb=#1 \advance\@tempdimb by1.2pt +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(-1.2pt,1.2pt)(\@tempdima,\@tempdimb)% +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(1.2pt,-1.2pt)(\@tempdimb,\@tempdima)% +%\psline[linewidth=0.28em,linecolor=white]{-}(0pt,0pt)(#1,#1)% +%\endgroup} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\reactDEqarrow} +% \begin{macro}{\reactUEqarrow} +% \begin{macro}{\reactdeqarrow} +% \begin{macro}{\reactueqarrow} +% Further reaction arrows have been added. +% \changes{v1.00}{2002/05/30}{First Version} +% \begin{macrocode} +\def\newreactDEqarrow{\@ifnextchar[%] +{\newreact@DEqarrow}{\newreact@DEqarrow[0pt]}} +\def\newreact@DEqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\deqArrow@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactUEqarrow{\@ifnextchar[%] +{\newreact@UEqarrow}{\newreact@UEqarrow[0pt]}} +\def\newreact@UEqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\ueqArrow@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +%%%%2009/11/19 +\def\newreactdeqarrow{\@ifnextchar[%] +{\newreact@deqarrow}{\newreact@deqarrow[0pt]}} +\def\newreact@deqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\deqHarpoon@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactueqarrow{\@ifnextchar[%] +{\newreact@ueqarrow}{\newreact@ueqarrow[0pt]}} +\def\newreact@ueqarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\ueqHarpoon@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +%%%%2009/11/19 +%\let\reactDEqarrow=\newreactDEqarrow +%\let\reactUEqarrow=\newreactUEqarrow +%\let\reactdeqarrow=\newreactdeqarrow +%\let\reactueqarrow=\newreactueqarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Additional elements for drawing down- and up-sloped double-headed arrows +% within the scope of pstricks package are defined first. +% +% \begin{macro}{\ulrArrow@Element} +% \begin{macro}{\dlrArrow@Element} +% \begin{macrocode} +\def\ulrArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<->}(0pt,0pt)(#1,#1)} +\def\dlrArrow@Element#1{% +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{<->}(0pt,#1)(#1,0pt)} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\reactulrarrow} +% \begin{macro}{\reactdlrarrow} +% \begin{macrocode} +\def\newreactulrarrow{\@ifnextchar[%] +{\newreact@ulrarrow}{\newreact@ulrarrow[0pt]}} +\def\newreact@ulrarrow[#1]#2#3#4#5{% +\let\Arrow@Element=\ulrArrow@Element +\react@@incrarrow[#1]{#2}{#3}{#4}{#5}} +\def\newreactdlrarrow{\@ifnextchar[%] +{\newreact@dlrarrow}{\newreact@dlrarrow[0pt]}} +\def\newreact@dlrarrow[#1]#2#3#4#5{ +\let\Arrow@Element=\dlrArrow@Element +\react@@decrarrow[#1]{#2}{#3}{#4}{#5}} +%%%%2009/11/19 +%\let\reactulrarrow=\newreactulrarrow +%\let\reactdlrarrow=\newreactdlrarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% A new command \verb/\electronshiftAH/ is added to defining bent (curved) arrows +% and harpoons. +% \changes{v1.03}{2009/12/01}{Added} +% +% \begin{macro}{\electronshiftAH} +% \begin{macrocode} +\def\electronshiftAH#1(#2,#3)(#4,#5)(#6,#7){% +\@ifnextchar(% +{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#6,#7)}% +{\electr@nshiftAH{#1}(#2,#3)(#4,#5)(#4,#5)(#6,#7)}} +\def\electr@nshiftAH#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){% +\psbezier[unit=\unitlength,linewidth=0.4pt]{#1}% +(#2,#3)(#4,#5)(#6,#7)(#8,#9)% +}% +%\def\electronshiftAH#1{% +%\pscurve[unit=\unitlength,linewidth=0.4pt,arrowsize=2pt 2,% +%arrowlength=1.6,arrowinset=0.6]{#1}} +% \end{macrocode} +% \end{macro} +% +% Several commmands for drawing curved harpoons are defined as follows: +% \begin{macro}{\electronshiftHru} +% \begin{macro}{\electronshiftHrd} +% \begin{macro}{\electronshiftHlu} +% \begin{macro}{\electronshiftHld} +% \begin{macrocode} +\def\electronshiftHru{\electronshiftAH{-Hru}} +\def\electronshiftHrd{\electronshiftAH{-Hrd}} +\def\electronshiftHlu{\electronshiftAH{Hlu-}} +\def\electronshiftHld{\electronshiftAH{Hld-}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Several commmands for drawing curved arrows are defined as follows: +% \begin{macro}{\electronshiftArrowr} +% \begin{macro}{\electronshiftArrowl} +% \begin{macrocode} +\def\electronshiftArrowr{\electronshiftAH{->}} +\def\electronshiftArrowl{\electronshiftAH{<-}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The {\sffamily chmst-ps} package defines double-line arrows with variable +% length for drawing reaction schemes, where additional information +% can be written on the upper and/or downward sides of each arrow. +% \changes{v1.00}{2002/05/30}{First Version} +% +% Several elements for drawing horizontal scheme arrows within the scope of +% pstricks package are defined first. +% +% \begin{macro}{\lSchemeArrow@Element} +% \begin{macrocode} +\def\lSchemeArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,% +arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<-}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}} +\def\rSchemeArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,% +arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{->}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}} +\def\lrSchemeArrow@Element#1{\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em)% +\psline[linewidth=0.4pt,doubleline=true,doublesep=0.16em,% +arrowsize=2pt 2,arrowlength=1.2,arrowinset=0.7]{<->}(0pt,0.28em)(#1,0.28em)% +\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\schemelarrow} +% \begin{macro}{\schemerarrow} +% \begin{macro}{\schemelrarrow} +% +% \begin{macrocode} +% ******************************** +% * scheme arrows * +% * 1991 OCT 4 S. Fujita * +% * Revised 1992 May 24 S.Fujita * 1999/02/02 by S. Fujita +% ******************************** Redefined 2002/05/30 by SF +% After Chapter 9 of ``LaTeX for (Bio)Chemists'' by Shinsaku Fujita +\def\newschemelarrow#1#2#3#4{% +\let\Arrow@Element=\lSchemeArrow@Element +\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}} +\def\newschemerarrow#1#2#3#4{% +\let\Arrow@Element=\rSchemeArrow@Element +\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}} +\def\newschemelrarrow#1#2#3#4{% +\let\Arrow@Element=\lrSchemeArrow@Element +\react@@rlarrow[0pt]{#1}{#2}{#3}{#4}} +%%%%2009/11/19 +%\let\schemelarrow=\newschemelarrow +%\let\schemerarrow=\newschemerarrow +%\let\schemelrarrow=\newschemelrarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{Redefinition of verbatim} +% (Deleted) +% +% \section{Shadowed Boxes} +% (Deleted) +% +% \section{Further boxes} +% (Deleted) +% +% \section{Symbols for instant photography} +% (Deleted) +% +% \section{Various arrows with fixed length} +% +% Because various arrows with a fixed length have been defined in the \textsf{chemist} package, +% the corresponding codes for the \textsf{chmst-ps} package are described here. +% +% \changes{v1.02}{2009/11/19}{Added} +% +% \begin{macro}{\llongrightarrow} +% \begin{macro}{\llongleftarrow} +% \begin{macro}{\Equilibarrow} +% +% \begin{macrocode} +\def\newllongrightarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\rArrow@Element{28pt}\hss}}}} +\def\newllongleftarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\lArrow@Element{28pt}\hss}}}} +\def\newllongleftrightarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\lrArrow@Element{28pt}\hss}}}} +\def\newEquilibarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\eqArrow@Element{28pt}\hss}}}} +%\let\llongrightarrow=\newllongrightarrow +%\let\llongleftarrow=\newllongleftarrow +%\let\llongleftrightarrow=\newllongleftrightarrow +%\let\Equilibarrow=\newEquilibarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\Llongrightarrow} +% \begin{macro}{\Llongleftarrow} +% \begin{macro}{\Llongleftrightarrow} +% +% \begin{macrocode} +\def\newLlongrightarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\rSchemeArrow@Element{28pt}\hss}}}} +\def\newLlongleftarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\lSchemeArrow@Element{28pt}\hss}}}} +\def\newLlongleftrightarrow{\ensuremath{% +\mathrel{\hbox to28pt{\hss\lrSchemeArrow@Element{28pt}\hss}}}} +%\let\Llongrightarrow=\newLlongrightarrow +%\let\Llongleftarrow=\newLlongleftarrow +%\let\Llongleftrightarrow\newLlongleftrightarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\lllongrightarrow} +% \begin{macro}{\lllongleftarrow} +% \begin{macro}{\lllongleftrightarrow} +% \begin{macro}{\Equiliblongarrow} +% +% \begin{macrocode} +\def\newlllongrightarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\rArrow@Element{35pt}\hss}}}} +\def\newlllongleftarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\lArrow@Element{35pt}\hss}}}} +\def\newlllongleftrightarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\lrArrow@Element{35pt}\hss}}}} +\def\newEquiliblongarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\eqArrow@Element{35pt}\hss}}}} +%\let\lllongrightarrow=\newlllongrightarrow +%\let\lllongleftarrow=\newlllongleftarrow +%\let\lllongleftrightarrow=\newlllongleftrightarrow +%\let\Equiliblongarrow=\newEquiliblongarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\Lllongrightarrow} +% \begin{macro}{\Lllongleftarrow} +% \begin{macro}{\Lllongleftrightarrow} +% +% \begin{macrocode} +\def\newLllongrightarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\rSchemeArrow@Element{35pt}\hss}}}} +\def\newLllongleftarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\lSchemeArrow@Element{35pt}\hss}}}} +\def\newLllongleftrightarrow{\ensuremath{% +\mathrel{\hbox to35pt{\hss\lrSchemeArrow@Element{35pt}\hss}}}} +%\let\Lllongrightarrow=\newLllongrightarrow +%\let\Lllongleftarrow=\newLllongleftarrow +%\let\Lllongleftrightarrow\newLllongleftrightarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% Several elements for drawing horizontal harpoons within the scope of +% pstricks package are defined first. +% \changes{v1.02}{2009/11/19}{Added} +% +% \begin{macro}{\rightharpoonupElement} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\rightharpoonupElement#1{% +\lower0.2pt\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em) +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hru}(0pt,0.28em)(#1,0.28em) +\end{pspicture}\hss}} +% +%\def\rightharpoonupElement#1{% +%\lower0.2pt\hbox to#1{\hss% +%\begin{pspicture}(0,0)(#1,0.28em) +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(0pt,0.28em)(#1,0.28em) +%\psline[linewidth=0.36em,linecolor=white]{-}(0pt,0.1em)(#1,0.1em) +%\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\rightharpoondownElement} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\rightharpoondownElement#1{% +\raise0.2pt\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em) +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{-Hrd}(0pt,0.28em)(#1,0.28em) +\end{pspicture}\hss}} +% +%\def\rightharpoondownElement#1{% +%\raise0.2pt\hbox to#1{\hss% +%\begin{pspicture}(0,0)(#1,0.28em) +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{->}(0pt,0.28em)(#1,0.28em) +%\psline[linewidth=0.34em,linecolor=white]{-}(0pt,0.49em)(#1,0.49em) +%\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\leftharpoonupElement} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\leftharpoonupElement#1{% +\lower0.2pt\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em) +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hlu-}(0pt,0.28em)(#1,0.28em) +\end{pspicture}\hss}} +% +%\def\leftharpoonupElement#1{% +%\lower0.2pt\hbox to#1{\hss% +%\begin{pspicture}(0,0)(#1,0.28em) +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(0pt,0.28em)(#1,0.28em) +%\psline[linewidth=0.36em,linecolor=white]{-}(0pt,0.1em)(#1,0.1em) +%\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\leftharpoondownElement} +% \changes{v1.02}{2009/11/19}{Added} +% \changes{v1.03}{2009/11/26}{Harpoons added as PostScript procedures} +% \begin{macrocode} +\def\leftharpoondownElement#1{% +\lower0.2pt\hbox to#1{\hss% +\begin{pspicture}(0,0)(#1,0.28em) +\psline[linewidth=0.4pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +{Hld-}(0pt,0.28em)(#1,0.28em) +\end{pspicture}\hss}} +% +%\def\leftharpoondownElement#1{% +%\lower0.2pt\hbox to#1{\hss% +%\begin{pspicture}(0,0)(#1,0.28em) +%\psline[linewidth=0.8pt,arrowsize=2pt 2,arrowlength=1.6,arrowinset=0.6]% +%{<-}(0pt,0.28em)(#1,0.28em) +%\psline[linewidth=0.34em,linecolor=white]{-}(0pt,0.49em)(#1,0.49em) +%\end{pspicture}\hss}} +% \end{macrocode} +% \end{macro} +% +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\llongrightharpoonup} +% \begin{macro}{\llongrightharpoondown} +% \begin{macro}{\llongleftharpoonup} +% \begin{macro}{\llongleftharpoondown} +% \begin{macrocode} +\def\newllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{28pt}}}} +\def\newllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{28pt}}}} +\def\newllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{28pt}}}} +\def\newllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{28pt}}}} +%\let\llongrightharpoonup=\newllongrightharpoonup +%\let\llongrightharpoondown=\newllongrightharpoondown +%\let\llongleftharpoonup=\newllongleftharpoonup +%\let\llongleftharpoondown=\newllongleftharpoondown +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\lllongrightharpoonup} +% \begin{macro}{\lllongrightharpoondown} +% \begin{macro}{\lllongleftharpoonup} +% \begin{macro}{\lllongleftharpoondown} +% \begin{macrocode} +\def\newlllongrightharpoonup{\ensuremath{\mathrel{\rightharpoonupElement{35pt}}}} +\def\newlllongrightharpoondown{\ensuremath{\mathrel{\rightharpoondownElement{35pt}}}} +\def\newlllongleftharpoonup{\ensuremath{\mathrel{\leftharpoonupElement{35pt}}}} +\def\newlllongleftharpoondown{\ensuremath{\mathrel{\leftharpoondownElement{35pt}}}} +%\let\lllongrightharpoonup=\newlllongrightharpoonup +%\let\lllongrightharpoondown=\newlllongrightharpoondown +%\let\lllongleftharpoonup=\newlllongleftharpoonup +%\let\lllongleftharpoondown\newlllongleftharpoondown +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \changes{v1.02}{2009/11/19}{Added} +% \begin{macro}{\equilibarrow} +% \begin{macro}{\equiliblongarrow} +% \begin{macrocode} +\def\newequilibarrow{\ensuremath{\mathrel{% +\hbox to28pt{\hss\eqHarpoon@Element{28pt}\hss}}}} +\def\newequiliblongarrow{\ensuremath{\mathrel{% +\hbox to35pt{\hss\eqHarpoon@Element{35pt}\hss}}}} +%\let\equilibarrow=\newequilibarrow +%\let\equiliblongarrow=\newequiliblongarrow +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \section{Chemical Corrections} +% (Deleted) +% +% +% \section{XyMcompd and XyMtab Environments} +% (Deleted) +% +% \section{Useful commands} +% (Deleted) +% +% \section{Double and triple bonds} +% (Deleted) +% +% \section{Curved Arrows} +% +% To illustrate the mechanisms of organic reactions, +% curved arrows are used to show an electron shift. +% First, the macros for drawing them are +% defined as follows. +% \changes{v1.01}{2004/08/30}{Added at XyMTeX V4.01} +% +% \begin{macro}{\electronAHshift} +% \changes{v5.00}{2010/10/01}{Redefined for compatibility to PDF mode} +% +% Arrows having a usual arrow head are defined as follows. +% Keywords for differentiation are: r (right) and l (left), +% which are contained in the middle of each command name. +% +% The |\pscurve| command of the \textsf{pstricks} package has been +% replaced by |\psbezier|, where two control points are calculated +% by means of |\calcontrolpoints| defined in the \textsf{chemist} package. +% +% \begin{macrocode} +\def\electronAHshift{% +\@ifnextchar[{\@electronAHshift}{\@electronAHshift[0]}} +\def\@electronAHshift[#1](#2,#3)(#4,#5)#6{% +\@tempcntXa=#2 \@tempcntYa=#3 +\@tempcntXb=#4 \@tempcntYb=#5 +\calcontrolpoints{#1}%defined in chemist package +%\pscurve[unit=\unitlength,linewidth=0.4pt]{#6}% +\psbezier[unit=\unitlength,linewidth=0.4pt]{#6}% +(#2,#3)(\@cnttempa,\@cnttempb)(\@tempcntXc,\@tempcntYc)(#4,#5)% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronrshiftarrow} +% \changes{v5.00}{2010/10/01}{Redefined using two control points} +% \begin{macrocode} +\def\electronrshiftarrow{% +\@ifnextchar[{\@electronrshiftarrow}{\@electronrshiftarrow[0]}} +\def\@electronrshiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){->}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){->}% +\or +\electronAHshift[0](#2,#3)(#4,#5){->}% +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronlshiftarrow} +% \changes{v5.00}{2010/10/01}{Redefined using two control points} +% \begin{macrocode} +\def\electronlshiftarrow{% +\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}} +\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){<-}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){<-}% +\or +\electronAHshift[0](#2,#3)(#4,#5){<-}% +\fi\fi} +\def\futuresubst#1{\kern140\unitlength #1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronlshiftarrow} +% \changes{v5.00}{2010/10/01}{Redefined using two control points} +% \begin{macrocode} +\def\electronlshiftarrow{% +\@ifnextchar[{\@electronlshiftarrow}{\@electronlshiftarrow[0]}} +\def\@electronlshiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){<-}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){<-}% +\or +\electronAHshift[0](#2,#3)(#4,#5){<-}% +\fi\fi} +\def\futuresubst#1{\kern140\unitlength #1} +% \end{macrocode} +% \end{macro} +% +% Arrows having a harpoon-type head are defined as follows. +% Keywords for differentiation are: +% Hru (harpoon right upward), Hrd (harpoon right downward), +% Hlu (harpoon left upward), and Hld (harpoon left downward). +% +% \begin{macro}{\electronHrushiftarrow} +% \changes{v5.00}{2010/10/01}{Defined using two control points} +% \begin{macrocode} +\def\electronHrushiftarrow{% +\@ifnextchar[{\@electronHrushiftarrow}{\@electronHrushiftarrow[0]}} +\def\@electronHrushiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){-Hru}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){-Hru}% +\or +\electronAHshift[0](#2,#3)(#4,#5){-Hru}% +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronHrdshiftarrow} +% \changes{v5.00}{2010/10/01}{Defined using two control points} +% \begin{macrocode} +\def\electronHrdshiftarrow{% +\@ifnextchar[{\@electronHrdshiftarrow}{\@electronHrdshiftarrow[0]}} +\def\@electronHrdshiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){-Hrd}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){-Hrd}% +\or +\electronAHshift[0](#2,#3)(#4,#5){-Hrd}% +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronHlushiftarrow} +% \changes{v5.00}{2010/10/01}{Defined using two control points} +% \begin{macrocode} +% +% \begin{macrocode} +\def\electronHlushiftarrow{% +\@ifnextchar[{\@electronHlushiftarrow}{\@electronHlushiftarrow[0]}} +\def\@electronHlushiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){Hlu-}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){Hlu-}% +\or +\electronAHshift[0](#2,#3)(#4,#5){Hlu-}% +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\electronHrdshiftarrow} +% \changes{v5.00}{2010/10/01}{Defined using two control points} +% \begin{macrocode} +% +% \begin{macrocode} +\def\electronHldshiftarrow{% +\@ifnextchar[{\@electronHldshiftarrow}{\@electronHldshiftarrow[0]}} +\def\@electronHldshiftarrow[#1](#2,#3)(#4,#5){% +\ifnum#2<#4\relax +\electronAHshift[#1](#2,#3)(#4,#5){Hld-}% +\else +\ifcase#1\relax +\electronAHshift[1](#2,#3)(#4,#5){Hld-}% +\or +\electronAHshift[0](#2,#3)(#4,#5){Hld-}% +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% +% \section{Initial Setting and Switch to PostScript Arrows} +% +% \begin{macro}{\chmstpssw} +% \begin{macrocode} +\def\chmstpssw{%setting of the chmst-ps package +\let\reactrarrow=\newreactrarrow% +\let\reactlarrow=\newreactlarrow +\let\reactlrarrow=\newreactlrarrow +\let\reactEqarrow=\newreactEqarrow +\let\reacteqarrow=\newreacteqarrow +%%%% +\let\reactREqarrow=\newreactREqarrow% +\let\reactLEqarrow=\newreactLEqarrow +\let\reactreqarrow=\newreactreqarrow +\let\reactleqarrow=\newreactleqarrow +%%%% +\let\reactdarrow=\newreactdarrow% +\let\reactuarrow=\newreactuarrow +\let\reactduarrow=\newreactduarrow +\let\reactVEqarrow=\newreactVEqarrow +\let\reactveqarrow=\newreactveqarrow +%%%% +\let\reactnearrow=\newreactnearrow% +\let\reactswarrow=\newreactswarrow +%%%% +\let\reactsearrow=\newreactsearrow% +\let\reactnwarrow=\newreactnwarrow +%%%% +\let\reactDEqarrow=\newreactDEqarrow% +\let\reactUEqarrow=\newreactUEqarrow +\let\reactdeqarrow=\newreactdeqarrow +\let\reactueqarrow=\newreactueqarrow +%%%% +\let\reactulrarrow=\newreactulrarrow% +\let\reactdlrarrow=\newreactdlrarrow +%%%% +\let\schemelarrow=\newschemelarrow% +\let\schemerarrow=\newschemerarrow +\let\schemelrarrow=\newschemelrarrow +%%%% +\let\llongrightarrow=\newllongrightarrow% +\let\llongleftarrow=\newllongleftarrow +\let\llongleftrightarrow=\newllongleftrightarrow +\let\Equilibarrow=\newEquilibarrow +%%% +\let\Llongrightarrow=\newLlongrightarrow% +\let\Llongleftarrow=\newLlongleftarrow +\let\Llongleftrightarrow\newLlongleftrightarrow +%%% +\let\lllongrightarrow=\newlllongrightarrow% +\let\lllongleftarrow=\newlllongleftarrow +\let\lllongleftrightarrow=\newlllongleftrightarrow +\let\Equiliblongarrow=\newEquiliblongarrow +%%% +\let\Lllongrightarrow=\newLllongrightarrow% +\let\Lllongleftarrow=\newLllongleftarrow +\let\Lllongleftrightarrow\newLllongleftrightarrow +%%% +\let\llongrightharpoonup=\newllongrightharpoonup% +\let\llongrightharpoondown=\newllongrightharpoondown +\let\llongleftharpoonup=\newllongleftharpoonup +\let\llongleftharpoondown=\newllongleftharpoondown +%%% +\let\lllongrightharpoonup=\newlllongrightharpoonup% +\let\lllongrightharpoondown=\newlllongrightharpoondown +\let\lllongleftharpoonup=\newlllongleftharpoonup +\let\lllongleftharpoondown\newlllongleftharpoondown +%%% +\let\equilibarrow=\newequilibarrow% +\let\equiliblongarrow=\newequiliblongarrow +%%% +} +\let\chmstpspdfsw=\chmstpssw%for compatibility to PDF mode +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\chmstpssw%initial setting +%</chmstps> +% \end{macrocode} +% +% \Finale +\endinput |