% \iffalse meta-comment
%% File: assurelatexmode.dtx
%
%  Copyright 2010,2013 by Shinsaku Fujita
%
%  This file is part of XyMTeX system.
%  -------------------------------------
%
% This file (assurelatexmode.sty) is a successor to:
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \typeout{XyMTeX for Drawing Chemical Structural Formulas. Version 1.00}
% \typeout{       -- Released December 1, 1993 by Shinsaku Fujita}
% Copyright (C) 1993 by Shinsaku Fujita, all rights reserved.
%
% This file is a part of the macro package ``XyMTeX'' which has been 
% designed for typesetting chemical structural formulas.
%
% This file is to be contained in the ``xymtex'' directory which is 
% an input directory for TeX. It is a LaTeX optional style file and 
% should be used only within LaTeX, because several macros of the file 
% are based on LaTeX commands. 
%
% For the review of XyMTeX, see
%  (1)  Shinsaku Fujita, ``Typesetting structural formulas with the text
%    formatter TeX/LaTeX'', Computers and Chemistry, in press.    
% The following book deals with an application of TeX/LaTeX to 
% preparation of manuscripts of chemical fields:
%  (2)  Shinsaku Fujita, ``LaTeX for Chemists and Biochemists'' 
%    Tokyo Kagaku Dozin, Tokyo (1993) [in Japanese].  
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'. 
% The Current Maintainer of this work is Shinsaku Fujita.
%
% This work consists of the files assurelatexmode.dtx and assurelatexmode.ins
% and the derived file lewisstruc.sty.
%
% Please report any bugs, comments, suggestions, etc. to:
%   Shinsaku Fujita, 
%   Shonan Institute of Chemoinformatics and Mathematical Chemistry
%   Kaneko 479-7 Ooimachi, Ashigara-Kami-Gun, Kanagawa 250-0019 Japan
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \def\j@urnalname{assurelatexmode}
% \def\versi@ndate{October 01, 2010}
% \def\versi@nno{ver5.00}
% \def\copyrighth@lder{SF}% Shinsaku Fujita
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \fi
%
% \CheckSum{189}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%
% \setcounter{StandardModuleDepth}{1}
%
% \StopEventually{}
% \MakeShortVerb{\|}
%
% \iffalse
% \changes{v5.00}{2010/10/01}{First release for XyMTeX5.00}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
\ProvidesFile{assurelatexmode.dtx}[2010/10/01 v5.00 assurelatexmode package file]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lewisstruc.dtx}
%
% %%XyMTeX Logo: Definition 2%%%
\def\UPSILON{\char'7}
\def\XyM{X\kern-.30em\smash{%
\raise.50ex\hbox{\UPSILON}}\kern-.30em{M}}
\def\XyMTeX{\XyM\kern-.1em\TeX}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Dummy Declarations for assuring the \protect\TeX/\protect\LaTeX{} mode 
by {\sffamily assurelatexmode.sty} 
(\fileversion) of \XyMTeX{}}
\author{Shinsaku Fujita \\ 
Shonan Institute of Chemoinformatics and 
Mathematical Chemistry \\
Kanagawa, 258-0019 Japan 
}
\date{\filedate}
%
\begin{document}
   \maketitle
   \DocInput{assurelatexmode.dtx}
\end{document}
%</driver>
% \fi
%
% \section{Introduction}\label{assurelatexmode:intro}
%
% \subsection{Options for {\sffamily docstrip}}
%
% \DeleteShortVerb{\|}
% \begin{center}
% \begin{tabular}{|l|l|}
% \hline
% \emph{option} & \emph{function}\\ \hline
% assurelatexmode & assurelatexmode.sty \\
% driver & driver for this dtx file \\
% \hline
% \end{tabular}
% \end{center}
% \MakeShortVerb{\|}
%
% \subsection{Version Information}
%
%    \begin{macrocode}
%<*assurelatexmode>
\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
\typeout{       -- Released May 27, 2013 by Shinsaku Fujita}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\j@urnalname{assurelatexmode}
\def\versi@ndate{May 27, 2013}
\def\versi@nno{ver5.01}
\def\copyrighth@lder{SF} % Shinsaku Fujita
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
\space[\copyrighth@lder]}
%    \end{macrocode}
%
%    \begin{macrocode}
\RequirePackage{chemstr}
%    \end{macrocode}
%
% \section{Dummy Declarations}
% If a document written for the PostScript or PDF mode is processed by the TeX/LaTeX mode, 
% some commands for the PS or PDF mode (defined in the \textsf{xymtx-ps} or \textsf{xymtx-pdf} 
% package) cause errors of non-existence. To avoid these errors, 
% dummy commands are defined as follows. These dummy commands are overwritten or replaced by 
% equivalent commands when processed by the PS or PDF mode. 
%
% \begin{macro}{changedashtowedge}
% \begin{macro}{changewedgetodash}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX, PS, and PDF modes: Switch for wedged bonds}
%    \begin{macrocode}
\newif\if@wedgesw \@wedgeswtrue
\newif\if@hasheddashsw \@hasheddashswtrue
\def\wedgehasheddash{\@wedgeswtrue\@hasheddashswtrue}
\def\wedgehashedwedge{\@wedgeswtrue\@hasheddashswfalse}
\def\dashhasheddash{\@wedgeswfalse\@hasheddashswtrue}
\@ifundefined{ifmolfront}{\newif\ifmolfront \molfrontfalse}{}
\@ifundefined{if@skbondlist}{\newif\if@skbondlist \@skbondlistfalse}{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\if@thicklinesw etc.}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\newif\if@thicklinesw \@thicklineswfalse
\def\Thick@Lines{\@thicklineswtrue}%redefinition
\def\Thin@Lines{\@thicklineswfalse}%redefinition
\def\thickLineWidth{1.6pt}
\def\thinLineWidth{0.4pt}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{WedgeAsSubst}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\WedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
\begingroup
\@thicklineswtrue \@wedgeswtrue
\molfrontfalse \@skbondlistfalse
\leavevmode
\Put@@Line(#1,#2)(#3,#4){#5}%
\endgroup}
\let\WedgeAsSubst=\WedgeAsSubstTeXLaTeX%for compatibility to PS/PDF mode
%    \end{macrocode}
% \end{macro}
%
% The macro |\WedgeAsSubstX| has a starting point, 
% an endpoint, and the width of a wedge as its arguments. 
% Compare this command with |\WedgeAsSubst|, which has 
% a starting point, a slope, and the width of a wedge 
% as its arguments. 
%
% \begin{macro}{WedgeAsSubstX}
% \changes{v5.01}{2013/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\WedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
\@ifnextchar[{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
{\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
\def\Wedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
\begingroup
%#5 not used
\leavevmode \thicklines
\drawline(#1,#2)(#3,#4)%
\endgroup}
\let\WedgeAsSubstX=\WedgeAsSubstXTeXLaTeX%for compatibility to PS/PDF mode
%    \end{macrocode}
% \end{macro}
%
% The macro |\PUT@@bondLINE| is used in the macro |\Put@@Line|, 
% which draws a bond line. 
%
% \begin{macro}{\PUT@@bondLINE}
% \begin{macro}{\PutTeXLaTeXLine}
% \begin{macro}{\PutBondLine}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\PUT@@bondLINE(#1,#2)(#3,#4)#5{\begingroup%
\linethickness{#5}\drawline(#1,#2)(#3,#4)%
\endgroup}
\let\PutTeXLaTeXLine=\PUT@@bondLINE%for user's use
\let\PutBondLine=\PUT@@bondLINE%for user's use
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% The macro |\PUT@@dashedLINE| is used to draw a dashed bond line, 
% which usually links two non-adjacent atoms of a cyclic compound. 
%
% \begin{macro}{\PUT@@dashedLINE}
% \begin{macro}{\PutTeXLaTeXdashed}
% \begin{macro}{\PutDashedBond}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\PUT@@dashedLINE(#1,#2)(#3,#4)#5{%
\begingroup
\ifdim\unitlength>0.08pt
\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)%
%\dashline{2}[2](#1,#2)(#3,#4)%
\else
\linethickness{#5}\dottedline{20}(#1,#2)(#3,#4)
%\dashline{1.8}[1.8](#1,#2)(#3,#4)%
\fi
\endgroup
}
\let\PutTeXLaTeXdashed=\PUT@@dashedLINE%for user's use
\let\PutDashedBond=\PUT@@dashedLINE%for compatibility to PS and PDF mode
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\HashWedgeAsSubst}
% \changes{v5.01}{2010/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\HashWedgeAsSubstTeXLaTeX(#1,#2)(#3,#4)#5{%
\begingroup
\SlopetoXY(#1,#2)(#3,#4){#5}%%replaced (code from chemstr.sty)
\leavevmode
\linethickness{1pt}\dottedline{20}(#1,#2)(\the\@tempcntXa,\the\@tempcntYa)%
\endgroup}
\let\HashWedgeAsSubst=\HashWedgeAsSubstTeXLaTeX%for compatibility to PS and PDF mode
%    \end{macrocode}
% \end{macro}
%
% The macro |\HashWedgeAsSubstX| has a starting point, 
% an endpoint, and the width of a wedge as its arguments. 
% Compare this command with |\HashWedgeAsSubst|, which has 
% a starting point, a slope, and the width of a wedge 
% as its arguments. 
%
% \begin{macro}{\HashWedgeAsSubstX}
% \changes{v5.01}{2010/05/27}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\def\HashWedgeAsSubstXTeXLaTeX(#1,#2)(#3,#4){%
\@ifnextchar[{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)}%
{\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[10]}}
\def\HashWedge@AsSubstXTeXLaTeX(#1,#2)(#3,#4)[#5]{%
\begingroup
\leavevmode\@tempdima=#5\unitlength
\linethickness{\@tempdima}\dottedline{20}(#1,#2)(#3,#4)
\endgroup}
\let\HashWedgeAsSubstX=\HashWedgeAsSubstXTeXLaTeX%for compatibility to PS and PDF mode
%    \end{macrocode}
% \end{macro}
%
% The macro |\putRoundArrowTeXLaTeX| throws its main task to its inner 
% macro |\putRound@rrowTeXLaTeX|, which is incapable of treating 
% an optional argument for specifying the direction of an arrow head. 
% The macro |\putRoundArrow| is defined as a user command to
% assure the compatibility to the PostScript and the PDF mode. 
% This command should be used in the PostScript or the PDF mode! 
%
% \begin{macro}{\putRoundArrowTeXLaTeX}
% \begin{macro}{\putRound@rrowTeXLaTeX}
% \begin{macro}{\putRoundArrow}
% \changes{v5.00}{2010/10/01}{For TeXLaTeX mode}
%    \begin{macrocode}
\def\putRoundArrowTeXLaTeX{%
\@ifnextchar[{\putRound@rrowTeXLaTeX}{\putRound@rrowTeXLaTeX[->]}}
\def\putRound@rrowTeXLaTeX[#1]#2{\drawline#2%
   \XyMTeXWarning{The command 
   \string\putRoundArrow\space is unavailable in TeX/LaTeX mode. ^^J
   Please try the PostScript or PDF mode}}
\let\putRoundArrow=\putRoundArrowTeXLaTeX%for the compatibility to PDF and PS mode
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\thinlines}
% \begin{macro}{\thicklines}
% \changes{v5.00}{2010/10/01}{TeX/LaTeX mode compatible to PS, and PDF modes}
%    \begin{macrocode}
\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
  \@wholewidth=\thinLineWidth \@halfwidth .5\@wholewidth}
\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
  \@wholewidth=\thickLineWidth \@halfwidth .5\@wholewidth}
\endinput
%</assurelatexmode>
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \Finale
%
\endinput
