% \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