summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xymtex/base/lewisstruc.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xymtex/base/lewisstruc.sty')
-rw-r--r--macros/latex/contrib/xymtex/base/lewisstruc.sty629
1 files changed, 629 insertions, 0 deletions
diff --git a/macros/latex/contrib/xymtex/base/lewisstruc.sty b/macros/latex/contrib/xymtex/base/lewisstruc.sty
new file mode 100644
index 0000000000..66180f6010
--- /dev/null
+++ b/macros/latex/contrib/xymtex/base/lewisstruc.sty
@@ -0,0 +1,629 @@
+%%
+%% This is file `lewisstruc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lewisstruc.dtx (with options: `lewisstruc')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2009,2010,2013 by Shinsaku Fujita
+%% all rights reserved.
+%% This style file is created for drawing chemical structural formulas
+%% This style file is to be contained in the ``xymtex'' directory which
+%% is an input directory for TeX.
+%%
+%% This file is part of the XyMTeX system.
+%% =======================================
+%% Old Versions:
+%% Version 1.00 Released on November 03, 2009
+%% Version 5.00 Released on October 01, 2010
+%%
+%% The Present Version:
+%% Version 5.01 Released on August 02, 2013
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Shinsaku Fujita.
+%%
+%% This work consists of the files lewisstruc.dtx and lewisstruc.ins
+%% and the derived file lewisstruc.sty.
+%%
+%% =======================================
+%%
+%% File: lewisstruc.dtx
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\typeout{Part of XyMTeX for Drawing Chemical Structural Formulas. Version 5.01}
+\typeout{ -- Released August 02, 2013 by Shinsaku Fujita}
+\def\j@urnalname{lewisstruc}
+\def\versi@ndate{August 02, 2013}
+\def\versi@nno{ver5.01}
+\def\copyrighth@lder{SF} % Shinsaku Fujita
+\typeout{XyMTeX Macro File `\j@urnalname' (\versi@nno) <\versi@ndate>%
+\space[\copyrighth@lder]}
+\RequirePackage{aliphat}
+\def\dotnodimension{\smash{\hbox to0pt{\hss.\hss}}}
+\def\verticalpair{\vbox{%
+\dotnodimension
+\nointerlineskip
+\kern0.3em
+\dotnodimension}}
+\def\horizontalpair{%
+\hbox{\dotnodimension\kern0.3em\dotnodimension}}
+\def\nwlonepair{%
+\vtop{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\selonepair{%
+\vbox{\hbox to0.21em{\hss\dotnodimension}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\dotnodimension\hss}%
+}}
+\def\swlonepair{%
+\vbox{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+\def\nelonepair{%
+\vtop{\hbox to0.21em{\dotnodimension\hss}%
+\nointerlineskip
+\kern0.21em
+\hbox to0.21em{\hss\dotnodimension}%
+}}
+\def\LewisSbond{\raise0.12em\hbox to0.25em{\hss\verticalpair\hss}}
+\def\overpair#1{\leavevmode\setbox0=\hbox{#1}%
+\vbox{\hbox to\wd0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\box0}}
+\def\underpair#1{\leavevmode\setbox0=\hbox{#1}%
+\dimen0=\wd0
+\vbox to\ht0{\box0
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}\vss}}%
+\vss}}%bug fix 2013/08/02 \vss added
+\def\overpairover#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0%
+\ifx\temp@@a\empty\box0\else%
+\vbox{%
+\hbox to\dimen0{\hss#2\hss}%
+\nointerlineskip\kern0.2em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox{\box0}}\fi}
+\def\underpairunder#1#2{\leavevmode\setbox0=\hbox{#1}%
+\edef\temp@@a{#2}%
+\dimen0=\wd0\dimen1=\ht0
+\ifx\temp@@a\empty\box0\else%
+\vbox to\dimen1{\hbox{\box0}%
+\nointerlineskip
+\hbox{\vbox to0pt{\kern0.18em
+\hbox to\dimen0{\hss\horizontalpair\hss}%
+\nointerlineskip\kern0.08em
+\hbox to\dimen0{\hss#2\hss}%
+\vss}}%
+\vss}\fi}%bug fix2013/08/02
+\def\leftlonepairover#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\raise0.9em\hbox{#2}\kern-0.05em\raise0.8em\hbox{\nwlonepair}\kern-0.1em}#1\fi}
+\def\rightlonepairover#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\raise0.8em\hbox{\nelonepair}\kern-0.05em%
+\raise0.9em\hbox{#2}\hss}\fi}
+\def\leftlonepairunder#1#2{\leavevmode%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty#1\else
+\hbox to0pt{\hss\lower0.9em\hbox{#2}\kern-0.05em%
+\lower0.2em\hbox{\swlonepair}\kern-0.1em}#1\fi}
+\def\rightlonepairunder#1#2{\leavevmode%
+#1%
+\edef\temp@@{#2}%
+\ifx\temp@@\empty\else
+\hbox to0pt{\kern-0.1em\lower0.2em\hbox{\selonepair}\kern-0.05em%
+\lower0.9em\hbox{#2}\hss}\fi}
+\def\LewistetrahedralA#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\ifx\temp@e\empty
+\ifx\temp@c\empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else%c not empty
+\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi
+\else%e not empty
+\ifx\temp@c\empty
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\else
+\temp@e\LewisSbond\underpairunder{\overpairover{\temp@a}{\temp@b}}{\temp@d}%
+\LewisSbond\temp@c
+\fi\fi
+\endgroup
+}
+\def\LewistetrahedralB#1{\begingroup%
+\let\temp@a=\empty%
+\let\temp@b=\empty%
+\let\temp@c=\empty%
+\let\temp@d=\empty%
+\let\temp@e=\empty%
+\@forsemicol\member:=#1\do{%
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax%
+\expandafter\threech@r\@membera{}{}%
+\ifx\@memberb\@yl\else
+\ifcase\@tmpa \edef\temp@a{\@memberb}%central atom
+\or\edef\temp@b{\@memberb}%
+\or\edef\temp@c{\@memberb}%
+\or\edef\temp@d{\@memberb}%
+\or\edef\temp@e{\@memberb}%
+\fi%end of ifcase
+\fi\fi
+}%
+\leavevmode%
+\rightlonepairover{%
+\leftlonepairover{\leftlonepairunder{%
+\rightlonepairunder{\temp@a}{\temp@c}}{\temp@d}}{\temp@e}}{\temp@b}%
+\endgroup}
+\def\lonepairAitoiv#1#2#3#4#5{\leavevmode
+\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}}%
+\else
+\lower0.05em\hbox to0pt{\hss\vbox to\dimen0{\vss\verticalpair\vss}}%
+\fi%
+\lower0.2em\hbox{\vbox{\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+\kern0.2em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\horizontalpair\hss}}%
+\else
+\hbox to\dimen1{\hss\horizontalpair\hss}%
+\fi
+}}%
+\ifnum#2=0\relax
+\phantom{\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}}%
+\else
+\lower0.05em\hbox to0pt{\vbox to\dimen0{\vss\verticalpair\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1\endgroup}
+\def\fromfourobjects#1#2{%
+\ifnum#1=1234\relax
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\else\ifnum#1=123\relax
+\TEMP@Command{1}{1}{1}{0}{#2}%
+\else\ifnum#1=124\relax
+\TEMP@Command{1}{1}{0}{1}{#2}%
+\else\ifnum#1=134\relax
+\TEMP@Command{1}{0}{1}{1}{#2}%
+\else\ifnum#1=234\relax
+\TEMP@Command{0}{1}{1}{1}{#2}%
+\else\ifnum#1=12\relax
+\TEMP@Command{1}{1}{0}{0}{#2}%
+\else\ifnum#1=13\relax
+\TEMP@Command{1}{0}{1}{0}{#2}%
+\else\ifnum#1=14\relax
+\TEMP@Command{1}{0}{0}{1}{#2}%
+\else\ifnum#1=23\relax
+\TEMP@Command{0}{1}{1}{0}{#2}%
+\else\ifnum#1=24\relax
+\TEMP@Command{0}{1}{0}{1}{#2}%
+\else\ifnum#1=34\relax
+\TEMP@Command{0}{0}{1}{1}{#2}%
+\else\ifnum#1=1\relax
+\TEMP@Command{1}{0}{0}{0}{#2}%
+\else\ifnum#1=2\relax
+\TEMP@Command{0}{1}{0}{0}{#2}%
+\else\ifnum#1=3\relax
+\TEMP@Command{0}{0}{1}{0}{#2}%
+\else\ifnum#1=4\relax
+\TEMP@Command{0}{0}{0}{1}{#2}%
+\else
+\TEMP@Command{1}{1}{1}{1}{#2}%
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi}
+\def\lonepairA{\@ifnextchar[{\l@nepairA}{\l@nepairA[1234]}}
+\def\l@nepairA[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairAitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\chemradical{\hbox to0pt{\hss.\hss}}
+\def\tetraradical#1#2#3#4#5{\leavevmode\setbox0=\hbox{#5}%
+\dimen0=\ht0
+\dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{%\raise0.01em
+\hbox to\wd0{\hss%
+\ifnum#4=0\relax
+\phantom{\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}}%
+\else
+\raise0.02em\hbox to0pt{\hss\vbox to\dimen0{\vss\chemradical\vss}}%
+\fi%
+\lower0.22em\hbox{\vbox{%
+\ifnum#1=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}\fi%
+\nointerlineskip
+\kern0.08em
+\hbox to\dimen1{\hss#5\hss}%
+\nointerlineskip
+\kern0.12em
+\ifnum#3=0\relax
+\phantom{\hbox to\dimen1{\hss\chemradical\hss}}%
+\else
+\hbox to\dimen1{\hss\chemradical\hss}%
+\fi
+}}%
+\ifnum#2=0\relax
+\phantom{\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}}%
+\else
+\raise0.02em\hbox to0pt{\vbox to\dimen0{\vss\chemradical\vss}\hss}\fi%
+\hss}}\hss}%
+\wd1=\wd0 \ht1=\ht0\box1}
+\def\chemradicalA{\@ifnextchar[{\chemr@dicalA}{\chemr@dicalA[1234]}}
+\def\chemr@dicalA[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradical%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\lonepairBitoiv#1#2#3#4#5{\begingroup\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.04em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\nwlonepair}\else
+\nwlonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#3=0\relax \phantom{\swlonepair}\else
+\swlonepair\fi
+\vss}\kern-0.2em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.04em\hbox to0pt{\kern-0.22em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\nelonepair}\else
+\nelonepair\fi%
+\nointerlineskip
+\kern0.45em
+\ifnum#2=0\relax \phantom{\selonepair}\else
+\selonepair\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1\endgroup}
+\def\lonepairB{\@ifnextchar[{\l@nepairB}{\l@nepairB[1234]}}
+\def\l@nepairB[#1]#2{\leavevmode%
+\begingroup\let\TEMP@Command=\lonepairBitoiv%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\tetraradicalB#1#2#3#4#5{\setbox0=\hbox{#5}%
+\dimen0=\ht0 \dimen1=1.22\wd0%
+\setbox1=\hbox to\wd0{\hss%
+\smash{\lower0.009em\hbox to0pt{%
+\hss\vbox to\dimen0{\vss%
+\ifnum#4=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#3=0\relax \phantom{\chemradical}\else
+\chemradical\fi
+\vss}\kern-0.05em}%
+\hbox to\dimen1{\hss#5\hss}%
+\lower0.009em\hbox to0pt{\kern-0.05em%
+\vbox to\dimen0{\vss%
+\ifnum#1=0\relax \phantom{\chemradical}\else
+\chemradical\fi%
+\nointerlineskip
+\kern0.7em
+\ifnum#2=0\relax \phantom{\chemradical}\else
+\chemradical\fi\vss}\hss}%
+}\hss}%
+\ht1=\ht0\box1}
+\def\chemradicalB{\@ifnextchar[{\chemr@dicalB}{\chemr@dicalB[1234]}}
+\def\chemr@dicalB[#1]#2{\leavevmode
+\begingroup\let\TEMP@Command=\tetraradicalB%
+\fromfourobjects{#1}{#2}\endgroup}
+\def\LewisTetrahedralA{%
+\@ifnextchar[{\@LewisTetrahedralA[r}{\@LewisTetrahedralA[r]}}
+\def\@LewisTetrahedralA#1]#2{%
+\@ifnextchar<{\@@LewisTetrahedralA#1]{#2}}{\@@LewisTetrahedralA#1]{#2}<,,,>}}
+\def\@@LewisTetrahedralA#1]#2<#3,#4,#5,#6>{%
+\begingroup
+\let\Northbond=\Northlonepair
+\let\Southbond=\Southlonepair
+\let\Eastbond=\Eastlonepair
+\let\Westbond=\Westlonepair
+\let\yltetrahedralposition=\ylLewisTetrahedralAposition
+\@@tetrahedral#1]#2<#3,#4,#5,#6>%
+\endgroup
+\West@bondfalse
+\East@bondfalse
+}%end of macro LewisTetrahedralA
+\def\Northlonepair{%
+\@ifnextchar[{\N@rthlonepair}{\N@rthlonepair[]}}
+\def\N@rthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{120}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb T\relax%
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{150}{\@memberb}%==1 upper substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,52)(0,1){110}%
+ \putlratom{-40}{171}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{90}{\@memberb}%==1 upper substituent
+ \fi\fi\fi%
+}
+\def\Southlonepair{%
+\@ifnextchar[{\S@uthlonepair}{\S@uthlonepair[]}}
+\def\S@uthlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-180}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-90){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \put(0,-120){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-210}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(0,-48)(0,-1){110}%
+ \putlratom{-40}{-250}{\@memberb}%==1 upper substituent
+ \else
+ \put(0,-60){\hbox to0pt{\hss\horizontalpair\hss}}%
+ \putlratom{-40}{-150}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\Eastlonepair{%
+\@ifnextchar[{\E@stlonepair}{\E@stlonepair[]}}
+\def\E@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(90,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(120,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(50,0)(1,0){140}%
+ \putratom{190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(60,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putratom{90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\Westlonepair{%
+\@ifnextchar[{\W@stlonepair}{\W@stlonepair[]}}
+\def\W@stlonepair[#1]{%
+ \if\@tmpb D\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-120}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb T\relax%
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-95,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \put(-125,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-150}{-33}{\@memberb}%==3 down substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,0)(-1,0){140}%
+ \putlatom{-190}{-33}{\@memberb}%==1 upper substituent
+ \else
+ \put(-65,-18){\hbox to0pt{\hss\verticalpair\hss}}%
+ \putlatom{-90}{-33}{\@memberb}%==3 down substituent
+ \fi\fi\fi%
+}
+\def\ylLewisTetrahedralAposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\West@bondfalse
+\East@bondfalse
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw%
+\ifcase\@tmpa%
+ \or%1
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%N subst. on 1
+ \else%
+ \gdef\@ylii{45}\gdef\@yli{33}\global\@ylswtrue%N subst. on 1
+ \fi%
+ \or%2
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%
+ \else%
+ \gdef\@ylii{40}\gdef\@yli{30}\global\@ylswtrue%
+ \fi%
+ \East@bondtrue%W subst. on 1
+ \or%3
+ \ifno@centeratom%
+ \gdef\@ylii{0}\gdef\@yli{0}\global\@ylswtrue%S subst. on 1
+ \else%
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue%S subst. on 1
+ \fi%
+ \or%4
+ \ifno@centeratom%
+ \gdef\@ylii{-72}\gdef\@yli{0}\global\@ylswtrue%??????
+ \else%
+ \gdef\@ylii{-40}\gdef\@yli{32}\global\@ylswtrue%
+ \fi%
+ \West@bondtrue%E subst. on 1
+\fi%end of ifcase
+\fi\fi\fi}}%
+\def\LewisTetrahedralB{%
+\@ifnextchar[{\@LewisTetrahedralB[r}{\@LewisTetrahedralB[r]}}
+\def\@LewisTetrahedralB#1]#2{%
+\begingroup
+\let\NEbond=\NEbondlonepair
+\let\SEbond=\SEbondlonepair
+\let\SWbond=\SWbondlonepair
+\let\NWbond=\NWbondlonepair
+\let\ylsquareposition=\ylLewisTetrahedralBposition
+\@squareplanar#1]{#2}%
+\endgroup
+}%end of macro LewisTetrahedralB
+\def\NEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{90}{82}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(75,75){\hbox to0pt{\hss\nelonepair\hss}}%
+ \put(100,100){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{115}{107}{\@memberb}%==1 northeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,47)(1,1){95}%
+ \putratom{145}{137}{\@memberb}%==1 (northeast substituent)
+ \else
+ \put(50,50){\hbox to0pt{\hss\nelonepair\hss}}%
+ \putratom{65}{57}{\@memberb}%==1 northeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\SEbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{90}{-148}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(75,-75){\hbox to0pt{\hss\selonepair\hss}}%
+ \put(100,-100){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{115}{-173}{\@memberb}%==2 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(40,-47)(1,-1){95}%
+ \putratom{145}{-203}{\@memberb}%==2 (southeast substituent)
+ \else
+ \put(50,-50){\hbox to0pt{\hss\selonepair\hss}}%
+ \putratom{65}{-123}{\@memberb}%==2 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\SWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-90}{-148}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-75,-75){\hbox to0pt{\hss\swlonepair\hss}}%
+ \put(-100,-100){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-115}{-173}{\@memberb}%==3 southeast substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-50,-47)(-1,-1){95}%
+ \putlatom{-163}{-203}{\@memberb}%==3 (southwest substituent)
+ \else
+ \put(-50,-50){\hbox to0pt{\hss\swlonepair\hss}}%
+ \putlatom{-65}{-123}{\@memberb}%==3 southeast substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\NWbondlonepair{%
+\begin{sfpicture}(100,300)(0,0)%
+ \if\@tmpb D\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-90}{82}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb T\relax%
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-75,75){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \put(-100,100){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-115}{107}{\@memberb}%==4 northwest substituent
+ \else\if\@tmpb N\relax%normal single bond
+ \Put@Line(-40,47)(-1,1){95}%
+ \putlatom{-145}{137}{\@memberb}%==4 (northwest substituent)
+ \else
+ \put(-50,50){\hbox to0pt{\hss\nwlonepair\hss}}%
+ \putlatom{-65}{57}{\@memberb}%==1 northwest substituent
+ \fi\fi\fi%
+\end{sfpicture}%
+}
+\def\ylLewisTetrahedralBposition#1{%
+\@@ylswfalse%%%\@reset@ylsw
+\@forsemicol\member:=#1\do{%
+\if@@ylsw\else
+\ifx\member\empty\else
+\expandafter\@m@mb@r\member;\relax
+\expandafter\threech@r\@membera{}{}\relax
+\ifx\@memberb\@yl\relax\@@ylswtrue\else\@@ylswfalse\fi
+\if@@ylsw
+\ifcase\@tmpa
+ \or%
+ \gdef\@ylii{-28}\gdef\@yli{40}\global\@ylswtrue% NE subst. on 1
+ \or%2
+ \gdef\@ylii{-28}\gdef\@yli{35}\global\@ylswtrue% SE subst. on 2
+ \or%3
+ \gdef\@ylii{35}\gdef\@yli{22}\global\@ylswtrue% SW subst. on 3
+ \or%4
+ \gdef\@ylii{35}\gdef\@yli{40}\global\@ylswtrue% NW subst. on 4
+\fi%end of ifcase
+\fi\fi\fi}}%
+\endinput
+%%
+%% End of file `lewisstruc.sty'.