summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:56:23 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:56:23 +0000
commitef12e4625572a36ce13f9d608876327298763f99 (patch)
tree0ced6bd9d233b25c340013a6d7fa2fd0e3ca4cb5 /Master
parent64d9ede6adf7d0e8c599a09d9b42af6fdbf35614 (diff)
geomsty
git-svn-id: svn://tug.org/texlive/trunk@952 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geom.sty597
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomar10.sty142
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomar11.sty130
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomar12.sty132
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomart.sty193
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geombk10.sty157
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geombk11.sty152
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geombk12.sty157
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geombook.sty249
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomenv.sty189
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomeqns.sty49
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomfig.sty168
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomfnt.sty135
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geomindx.sty72
-rw-r--r--Master/texmf-dist/tex/latex/geomsty/geompsfi.sty632
15 files changed, 3154 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/geomsty/geom.sty b/Master/texmf-dist/tex/latex/geomsty/geom.sty
new file mode 100644
index 00000000000..fd2674c302c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geom.sty
@@ -0,0 +1,597 @@
+% $Header: /usr/home/levy/texts/geomsty/RCS/geom.sty,v 1.21 95/08/02 16:22:57 levy Exp Locker: levy $
+% NFSS2 mods 95/06/18 by J Rawnsley
+
+% Test for LaTeX2e
+\def\format@e{LaTeX2e}
+
+\ifx\fmtname\format@e
+ \ProvidesPackage{geom}[95/06/18]
+\fi
+
+\ifx\DeclareFontShape\@undefined
+\else
+ \let\normalshape\normalfont
+ \let\mediumseries\relax
+\fi
+
+%
+% This is the geom style master file, by Silvio Levy.
+% It contains modifications to latex.tex and lplain.tex.
+% LATEX VERSION 2.09 <14 January 1991>
+%
+\typeout{Reading Geometry Center style by Silvio Levy, $Revision: 1.21 $}
+\typeout{NFSS2 compatibility by J. Rawnsley, Maths Institute, Warwick 95/06/18}
+
+% Find out which style has been loaded (book or article).
+% If \chapter is undefined we assume the style is article, otherwise book.
+
+\def\@article{\@@article} \def\@book{\@@book}
+\@ifundefined{chapter}{\def\@style{\@@article}}{\def\@style{\@@book}}
+
+% Load an appropriate file with changes to book.sty or article.sty.
+
+\ifx\@style\@book \input geombook.sty \else \input geomart.sty \fi
+
+% Load in other definitions.
+
+\input geomenv.sty % environments
+\input geomfig.sty % figures
+\input geomfnt.sty % new fonts
+\input geomindx.sty % indexing macros
+\ifx\fmtname\format@e
+ %\usepackage{multicol} % two-column formatting
+ \input multicol.sty % two-column formatting
+\else
+ \input multicol.sty % two-column formatting
+\fi
+% ****************************************
+% * USEFUL HACKS *
+% ****************************************
+%
+% \@@warning and \@warning don't need the word ``LaTeX''.
+%
+\def\@@warning#1{\typeout{Warning: #1.}}
+
+% **********************************************
+% * SPACING / LINE AND PAGE BREAKING *
+% **********************************************
+
+% Avoid the lack of spacing after a list when the first item is run-in.
+
+\def\endtrivlist{\if@newlist\@noitemerr\fi
+ \if@inlabel\indent\fi
+ \ifhmode\unskip \par\fi
+% \if@noparlist \else
+ \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip
+ \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
+ \vskip\@tempskipa
+ \fi\@endparenv
+% \fi
+}
+\let\endcenter=\endtrivlist
+\let\endflushleft=\endtrivlist
+\let\endflushright=\endtrivlist
+\let\endverbatim=\endtrivlist
+\expandafter\let\csname endverbatim*\endcsname =\endtrivlist
+
+% ****************************************
+% * FILE HANDLING *
+% ****************************************
+%
+% Proofing is true by default.
+%
+\newif\ifproofing\proofingtrue
+\def\include#1{\ifproofing\@include#1 \else\input{#1.tex}\fi}
+\def\noproofing{\noexpand\proofingfalse}
+\def\@proofingfalse{\proofingfalse}
+\def\checkproofing{\ifx\@partlist\@proofingfalse\proofingfalse\fi}
+\def\includeonly#1{\@partswtrue\edef\@partlist{#1}\checkproofing}
+
+% ****************************************
+% * CROSS-REFERENCING MACROS *
+% ****************************************
+
+\let\@xf\expandafter
+%
+% The main differences between these macros and LaTeX's are that keys
+% are not expanded, and the first field in the record's value contains
+% the type of object referred to. For example,
+% \newlabel{square torus in space}{{problem 1.1.1}{5}}
+% This information is read at the time the record is formed
+% from the \object@type. Expansion of the key is inhibited by storing
+% it into the token list \@key, with everything protected by \noexpand's.
+%
+\def\object@type{??}
+\def\setlabeltype#1{\edef\object@type{#1}}
+\newtoks\@key
+\def\set@key#1{{\aftergroup\@key\aftergroup{\sanitize#1\endsanity}}}
+
+%
+% These are the user-level macros:
+%
+% \fullref{...} expands to theorem~3.7
+% \Fullref{...} expands to Theorem~3.7
+% \ref{...} expands to 3.7
+% \pageref{...} expands to 377
+
+\def\fullref{\@ref{\@xf\@car}}
+\def\Fullref{\@ref{\@xf\@xf\@xf\cap@first\@xf\@car}}
+\def\pageref{\@ref{\@xf\@cdr}}
+\def\ref{\@ref{\@xf\@xf\@xf\discard@first\@xf\@car}}
+\def\reftype{\@ref{\@xf\@xf\@xf\discard@second\@xf\@car}}
+\def\Reftype{\@ref{\@xf\@xf\@xf\@xf\@xf\@xf\@xf\discard@second
+ \@xf\@xf\@xf\cap@first\@xf\@car}}
+\def\cap@first#1{\uppercase{#1}}
+\def\discard@first#1~{}
+\def\discard@second#1~\preref{#1\@gobble}
+
+%
+% This is similar to \ref in LaTeX, but has two arguments: the second
+% is the key, which is not expanded; the first is an operator to be
+% applied to the value of the record.
+%
+\newtoks\@value
+\def\@ref#1{\@ifnextchar*{\@r@f{#1}}{\@r@f{#1}+}}
+\def\@r@f#1#2#3{\set@key{#3}\@ifundefined{r@\the\@key}%
+ {{\bf ??}\@warning{Reference `\expand@key' %on page \thepage\space
+ undefined}}%
+ {\@value=\@xf\@xf\@xf{\csname r@\the\@key\endcsname}#1\the\@value\@nil\null}%
+ \if#2*\refindex{#3} (#3)\else\refinvindex{#3}\fi}
+\def\expand@key{\@xf\empty\the\@key}
+
+\def\@lbibitem[#1]#2{\set@key{#2}\item[\@biblabel{#1}]\if@filesw
+ \xdef\@gtempa{\immediate\write\@auxout{\string\bibcite{\the\@key}{#1}}}
+ \@gtempa\fi\ignorespaces}
+
+%
+% Like \label in LaTeX, but follows the conventions explained at the
+% top of this file. The \label* variant creates a more comprehensive
+% index entry.
+%
+\def\preref#1{#1}
+\def\label{\@ifnextchar*{\l@bel}{\l@bel+}}
+\def\l@bel#1#2{\set@key{#2}\@bsphack\if@filesw
+ {\let\thepage\relax
+ \xdef\@gtempa{\write\@auxout{\string\newlabel{\the\@key}%
+ {{\object@type\string~\string\preref{\@currentlabel}}%
+ {\string\preref{\thepage}}}%
+ }}}\@gtempa
+ \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack
+ \if#1*\labelindex{#2}\else\index{#2}\fi\ignorespaces}
+
+\def\newlabel{\bgroup\@sanitize\afterassignment\@readlabel\global\@key}
+\def\bibcite{\bgroup\@sanitize\afterassignment\@readbibcite\global\@key}
+\def\@readlabel{\egroup\r@adlabel r}
+\def\@readbibcite{\egroup\r@adlabel b}
+\def\r@adlabel#1#2{\@ifundefined{#1@\the\@key}{}%
+ {\@warning{Label `\expand@key' multiply defined}}%
+ \global\@namedef{#1@\the\@key}{#2}}
+
+%
+% sanitize
+%
+\def\citeseparator{,}
+\def\@citex[#1]#2{\set@key{#2}\if@filesw
+ \xdef\@gtempa{\immediate\write\@auxout{\string\citation{\the\@key}}}\@gtempa\fi
+ \let\@citea\@empty
+ \@xf\@cite\@xf{\@xf\@for\@xf\@citeb\@xf:\@xf=\the\@key\do
+ {\@citea\def\@citea{\citeseparator\penalty\@m\ }%
+ \def\@tempa##1##2\@nil{\edef\@citeb{\if##1\space##2\else##1##2\fi}}%
+ \expandafter\@tempa\@citeb\@nil
+ \@ifundefined{b@\@citeb}{{\reset@font\bf ?}\@warning
+ {Citation `\@citeb' %on page \thepage \space
+ undefined}}%
+ {\csname b@\@citeb\endcsname}}}{#1}}
+
+%
+% add a preref
+%
+\def\@cite#1#2{\preref{[{#1\if@tempswa , #2\fi}]}}
+
+\def\nocite#1{\set@key{#1}\@bsphack\if@filesw
+ \xdef\@gtempa{\immediate\write\@auxout{\string\citation{\the\@key}}}\@gtempa\fi
+ \@esphack}
+
+\def\@testdef #1#2#3{\set@key{#2}\def\@tempa{#3}%
+ \@xf\ifx\csname #1@\the\@key\endcsname\@tempa\else\@tempswatrue\fi}
+
+\def\\{\let\stoken= } \\
+\def\sanitize{\futurelet\next\sanswitch}
+\def\sanswitch{\let\@tempa\relax \ifx\next\endsanity \let\@tempa\endsanity
+ \else\ifcat\noexpand\next\stoken\aftergroup\space\let\@tempa\eat
+ \else\ifcat\noexpand\next\bgroup\aftergroup{\let\@tempa\eat
+ \else\ifcat\noexpand\next\egroup\aftergroup}\let\@tempa\eat
+ \else\let\@tempa\copytoken\fi\fi\fi\fi \@tempa}
+\def\eat{\afterassignment\sanitize \let\next= }
+\long\def\copytoken#1{%
+ \ifcat\noexpand#1##\aftergroup\string\aftergroup\string##\aftergroup\string
+ \else\ifcat\noexpand#1\noexpand~\aftergroup\string
+ \else\ifcat\noexpand#1\relax\aftergroup\str@ng \fi\fi\fi
+ \aftergroup#1\sanitize}
+\def\endsanity\endsanity{}
+\def\str@ng#1{\string#1\expandafter\if@secondletter\string #1\next\nex}
+\def\if@secondletter#1#2#3\nex{\ifx #2\next\else\ifnum`#2<`A \else
+ \ifnum`#2<`Z \space\else\ifnum`#2<`a \else\ifnum`#2<`z \space\fi\fi\fi\fi\fi}
+
+% Labels are automatically added to theorems, section headings and the
+% like if \autolabel is true.
+
+\newif\ifautolabel\autolabeltrue
+
+% ****************************************
+% * ENVIRONMENTS *
+% ****************************************
+
+\long\def\@writefile#1#2{\@ifundefined{tf@#1}{}{
+\edef\@tempa{\immediate\write\csname tf@#1\endcsname}
+{\aftergroup\@tempa\aftergroup{\sanitize #2\endsanity}}}}
+
+% **********************************************
+% * MATH ENVIRONMENTS *
+% **********************************************
+
+%% following RmS 91/09/29: \reset@font added.
+
+\def\@eqnnum{{\reset@font\rm (\theequation)}}
+
+%
+% set object type
+%
+\def\equation{$$ % $$ BRACE MATCHING HACK
+ \def\object@type{equation}\refstepcounter{equation}}
+
+%% following RmS 92/01/10: put \hbox around \@eqnnum
+
+\def\endequation{\eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK
+$$\global\@ignoretrue}
+
+\def\eqnarray{\def\object@type{equation}%
+ \stepcounter{equation}\edef\@currentlabel{\theequation}%
+\global\@eqnswtrue\m@th
+\global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
+$$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
+ $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
+ \hskip 2\arraycolsep \hfil${##}$\hfil
+ &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering&\llap{##}\tabskip\z@\cr}
+\def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M
+ \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}%
+ \edef\@currentlabel{\theequation}}
+
+%
+% allow equations to be numbered with other environments
+%
+
+\def\equationwith#1{%
+ \@xf\edef\@xf\c@equation\@xf{\csname c@#1\endcsname}%
+ \@xf\let\@xf\theequation\csname the#1\endcsname
+}
+
+%
+% Bring back \eqalign from plain TeX (for less than full-width alignments)
+%
+\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}\,}
+
+% ****************************************
+% * THE LIST ENVIRONMENT *
+% ****************************************
+
+% make the \listparindent non-zero
+
+\def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep
+ \else \global\advance\@listdepth\@ne \fi
+ \rightmargin \z@ \listparindent.8\parindent \itemindent\z@
+ \csname @list\romannumeral\the\@listdepth\endcsname
+ \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax
+ \@trivlist
+ \parskip\parsep \parindent\listparindent
+ \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin
+ \advance\@totalleftmargin \leftmargin
+ \parshape \@ne \@totalleftmargin \linewidth
+ \ignorespaces}
+
+% for bibliography
+\def\@mklab#1{#1\hskip 0pt plus .0001fil\relax}
+
+% Use \unhbox instead of \box for labels like theorems etc.
+% Add normalshape
+% Removed a \penalty0 to avoid line ending with blank space
+%
+% to make part (a) of an enumerate that immediate follows a label
+% start on a fresh line, change the last line of \@item to:
+%
+%\def\@item[#1]{\if@noparitem \@donoparitem
+% ...
+% \hskip \labelsep}\vrule width 0pt \ignorespaces}
+%
+\def\@item[#1]{\if@noparitem \@donoparitem
+ \else \if@inlabel \indent \par \fi
+ \ifhmode \unskip\unskip \par \fi
+ \if@newlist \if@nobreak \@nbitem \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep \addvspace{-\parskip}\fi
+ \else \addpenalty\@itempenalty \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+\fi
+\everypar{\global\@minipagefalse\global\@newlistfalse
+ \if@inlabel\global\@inlabelfalse \hskip -\parindent \unhbox\@labels
+% \penalty\z@ \fi
+ \fi
+ \everypar{}}\global\@nobreakfalse
+\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi
+\setbox\@tempboxa\hbox{\makelabel{#1}}%
+%\setbox\@tempboxa\hbox{\makelabel{\normalshape #1}}% this would kill \sc
+\global\setbox\@labels
+ \hbox{\unhbox\@labels \hskip \itemindent
+ \hskip -\labelwidth \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \unhbox\@tempboxa
+ \else \hbox to\labelwidth {\makelabel{\normalshape #1}}\fi
+ \hskip \labelsep}\ignorespaces}
+
+% ****************************************
+% * ITEMIZE AND ENUMERATE *
+% ****************************************
+
+% Save \@currentlabel to allow correct label in the cases like this:
+%
+% \begin{theorem}
+% \begin{equation}
+% \end{equation}
+% \begin{enumerate}
+% \label
+%
+
+\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
+ \advance\@enumdepth \@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
+ {\csname label\@enumctr\endcsname}{\usecounter
+ {\@enumctr}\def\makelabel##1{\hss\llap{\normalshape ##1}}}\fi
+ \let\@@currentlabel\@currentlabel}
+
+% commented out Jan 11 93; had been added to version 1.14, but I have no
+% idea how it was supposed to work, or what unrobustness it was trying
+% to solve (see log). With this code, \@@currentlabel was never assigned.
+%
+% \let\@savecurrentlabel\@currentlabel}
+%
+%\@ifundefined{@@currentlabel}{\@currentlabel}{\@savecurrentlabel}
+
+% ****************************************
+% * THEOREM ENVIRONMENTS *
+% ****************************************
+
+% See geomenv.sty
+
+% *****************************************
+% * SECTIONING *
+% *****************************************
+
+% Allow up to \presection at bottom of page before new section
+% to encourage section to start on fresh page
+
+\newskip\presection \presection 0pt plus 10ex \relax
+
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+ \par \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
+ \advance\@tempskipa by\presection
+ \if@nobreak \everypar{}\else
+ \addpenalty{\@secpenalty}\addvspace{\@tempskipa}%
+ \allowbreak\vskip -\presection \fi \@ifstar
+ {\@ssect{#1}{#2}{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+% Add a . after section number instead of skipping 1em
+% Mess with \addcontentsline
+% Automatic labels
+
+\def\@sect#1#2#3#4#5#6[#7]#8{\def\object@type{#1}%
+ \ifnum #2>\c@secnumdepth\def\@svsec{}\def\@tempb{}%
+ \else\refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname. }%
+ \edef\@tempb{\noexpand\numberline{\csname the#1\endcsname}} \fi
+ \@tempskipa #5\relax
+ \def\@tempa{\addcontentsline{toc}{#1}}%
+ \ifdim \@tempskipa>\z@
+ \begingroup #6\relax
+ \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \expandafter\@tempa\expandafter{\@tempb #7}%
+ \ifautolabel\label*{#8}\fi
+ \else
+ \def\@svsechd{#6\hskip #3\relax
+ \@svsec #8\csname #1mark\endcsname {#7}%
+ \expandafter\@tempa\expandafter{\@tempb #7}%
+ \ifautolabel\label*{#8}\fi}\fi
+ \@xsect{#5}}
+
+% Add automatic content line and label
+
+\def\@ssect#1#2#3#4#5#6#7{%
+ \ifnum #2>\c@secnumdepth\def\@tempb{}%
+ \else \def\@tempb{\numberline{}}\fi
+ \@tempskipa #5\relax
+ \def\@tempa{\addcontentsline{toc}{s#1}}%
+ \ifdim \@tempskipa>\z@
+ \begingroup #6\relax
+ \@hangfrom{\hskip #3}{\interlinepenalty \@M #7\par}%
+ \endgroup
+ \csname s#1mark\endcsname{#7}%
+ \ifstarredcontents\expandafter\@tempa\expandafter{\@tempb #7}\fi
+ \ifautolabel\label*{#7}\fi
+ \else
+ \def\@svsechd{#6\hskip #3\relax #7%
+ \csname s#1mark\endcsname {#7}%
+ \ifautolabel\label*{#7}\fi}\fi
+ \@xsect{#5}}
+
+\newif\ifstarredcontents\starredcontentstrue
+\def\ssubsectionmark#1{}
+\def\ssubsubsectionmark#1{}
+\def\sparagraphmark#1{}
+\def\ssubparagraphmark#1{}
+
+% *****************************************
+% * TABLE OF CONTENTS, ETC. *
+% *****************************************
+
+% Don't expand macros when writing lines for the table of contents.
+
+\def\addcontentsline#1#2#3{\if@filesw \begingroup
+\set@key{#3}%
+\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
+ {\let\thepage\relax
+\xdef\@gtempa{\write \@auxout{\string\@writefile{#1}{\noexpand\string
+ \noexpand\contentsline{#2}{\the\@key}{\thepage}}}}\@gtempa}
+ \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
+
+\long\def\addtocontents#1#2{\if@filesw \begingroup
+\set@key{#2}%
+\let\label\@gobble \let\index\@gobble \let\glossary\@gobble
+\edef\@tempa{\write \@auxout {\string\@writefile{#1}{\the\@key}}}\@tempa
+ \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi}
+
+% ****************************************
+% * FLOATS *
+% ****************************************
+
+% Make marginal pars tiny and ragged right
+
+\long\def\@savemarbox#1#2{\global\setbox#1\vtop{\hsize\marginparwidth
+ \@parboxrestore\marginparstyle #2}}
+
+\def\marginparstyle{\tiny\normalshape\mediumseries\raggedright}
+
+% ****************************************
+% * INITIAL DECLARATION COMMANDS *
+% ****************************************
+
+% Don't expand macros in marks.
+
+\newtoks\@mark
+\def\markboth#1#2{{\global\@mark={{#1}{#2}}{%
+ \mark{\the\@mark}}\if@nobreak\ifvmode\nobreak\fi\fi}}
+
+\def\markbothsame#1{{\global\@mark={{#1}{#1}}{%
+ \mark{\the\@mark}}\if@nobreak\ifvmode\nobreak\fi\fi}}
+
+\def\markright#1{{\expandafter\@markright\the\@mark
+ {#1}\mark{\the\@mark}}\if@nobreak\ifvmode\nobreak\fi\fi}
+
+\def\@markright#1#2#3{\global\@mark{{#1}{#3}}}
+
+\@mark{{}{}}
+
+% ****************************************
+% * OUTPUT *
+% ****************************************
+
+% CHECK if this bug really has disappeared.
+% the two lines after ``here was the bug''
+% avoid disappearing \write's before a \marginpar
+% at the top of a page (SL 900302). The bug is exemplified by
+% \documentstyle{article}
+% \begin{document}
+% \label{foo}\marginpar{foo}
+% \end{document}
+%
+\def\@specialoutput{\ifnum\outputpenalty > -\@Mii
+ \@doclearpage
+ \else
+ \ifnum \outputpenalty <-\@Miii
+ \ifnum\outputpenalty<-\@MM \deadcycles\z@\fi
+ \global\setbox\@holdpg\vbox{\unvbox\@cclv}%
+ \else % here was the bug
+ \ifdim\ht\@cclv=\pagegoal\else
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa\fi
+ \setbox\@tempboxa\box\@cclv
+ \@pagedp\dp\@holdpg \@pageht\ht\@holdpg
+ \unvbox\@holdpg
+ \@next\@currbox\@currlist{\ifnum\count\@currbox >\z@
+ \ifvoid\footins\else\advance\@pageht\ht\footins
+ \advance\@pageht\skip\footins \advance\@pagedp\dp\footins
+ \insert\footins{\unvbox\footins}\fi
+ \@addtocurcol\else
+ \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+ \@addmarginpar\fi}\@latexbug
+ \ifnum \outputpenalty <\z@ \penalty\interlinepenalty\fi
+ \fi\fi}
+
+% Avoid headers on blank pages
+\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
+ \thispagestyle{plain}\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
+
+% $Log: geom.sty,v $
+%Revision 1.21 95/08/02 16:22:57 levy
+%introduced cite separator
+%
+%Revision 1.20 95/07/18 18:19:57 levy
+%\normalshape migrated from \@item to \enumerate, so \sc will work w/
+%\description, say
+%
+%Revision 1.19 95/07/03 14:08:49 levy
+%NFSS2 changes by John Rawnsley
+%
+%Revision 1.19 95/07/03 14:07:58 levy
+%*** empty log message ***
+%
+%Revision 1.17 93/08/04 10:00:53 levy
+%fixed problem with \ssectionmark (so running heads for Bibliography etc.
+%are correct).
+%
+%Revision 1.16 93/01/31 16:15:20 levy
+%created \marginparstyle
+%
+%Revision 1.16 93/01/12 01:50:02 levy
+%*** empty log message ***
+%
+%Revision 1.15 1992/08/25 19:53:57 levy
+%fixed \@mklab (previous fix was nonsense)
+%
+%Revision 1.14 92/08/25 19:33:50 levy
+%@@currentlabel more robust
+%
+%Revision 1.13 92/07/31 09:50:26 levy
+%redefine \@mklab
+%
+%Revision 1.12 92/07/17 13:44:12 levy
+%*** empty log message ***
+%
+%Revision 1.11 92/07/13 21:54:14 levy
+%further cleaned up the environments
+%
+%Revision 1.10 92/07/13 11:11:48 levy
+%*** empty log message ***
+%
+%Revision 1.9 92/07/13 08:57:20 levy
+%changes to geomenv.sty
+%
+%Revision 1.8 1992/07/06 19:04:42 levy
+%sanitize \bibcite, \cite
+%
+%Revision 1.7 92/06/26 18:46:57 levy
+%\reftype
+%
+%Revision 1.6 92/06/03 11:25:59 levy
+%*** empty log message ***
+%
+%Revision 1.5 92/04/16 12:58:26 levy
+%*** empty log message ***
+%
+%Revision 1.4 92/04/07 09:09:03 levy
+%*** empty log message ***
+%
+%Revision 1.3 1992/03/21 02:37:06 levy
+%*** empty log message ***
+%
+%Revision 1.2 1992/03/20 22:39:40 levy
+%*** empty log message ***
+%
+%Revision 1.1 1992/03/20 19:09:34 levy
+%Initial revision
+%
+
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomar10.sty b/Master/texmf-dist/tex/latex/geomsty/geomar10.sty
new file mode 100644
index 00000000000..620e34957e5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomar10.sty
@@ -0,0 +1,142 @@
+% $Header: /u/levy/texts/geombook/RCS/geomar10.sty,v 1.5 1994/06/14 21:49:20 levy Exp levy $
+
+%
+% This is the geom style art10 file, by Silvio Levy.
+% It contains modifications to art10.sty of 22 Dec 87
+%
+% \typeout{Reading geomart10.sty $Revision: 1.5 $ (changes to art10.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+ \abovedisplayskip 9pt plus2pt minus4pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus2.5pt
+ \belowdisplayshortskip 5pt plus2.5pt minus2.5pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 2.5pt plus 2pt minus 0pt
+ \topsep 5pt plus 2pt minus 2pt}}
+
+\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+ \abovedisplayskip 7.2pt plus 2pt minus 4pt%
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt%
+ \belowdisplayshortskip 4pt plus 2pt minus 2pt
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+ \parsep 0pt
+ \topsep 4pt plus 2pt minus 2pt
+ \itemsep 2pt plus 1pt minus 1pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Following change commented out 940614 for the following imperfectly
+% understood reason. When the partopsep is NOT set here, it is zero
+% at the beginning of a run (even though defined to be 3 +1 -2 in
+% art10.sty). When it is set here, it is nonzero, and breaks the
+% footnotes on the first page of amsart.sty.
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +1 -2)
+
+%\partopsep 2pt plus 1pt minus 1pt
+
+% mess with \addcontentsline; \chapheadsize instead of \Huge
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \def\@tempa{\addcontentsline{toc}{part}} %
+ \expandafter\@tempa\expandafter{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ {\centering
+ \ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \Large\bf Part \thepart % THEN Print 'Part' and number
+ \par\nobreak % in \Large bold.
+ \fi % FI
+ \chapheadsize \bf %
+ #2\markboth{}{}\par}
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+\def\@spart#1{{\centering
+ \chapheadsize \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \parsep 0pt
+ \topsep 8pt plus 3pt minus 4pt%
+ \itemsep 4pt plus 2pt minus 1pt}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4pt plus 2pt minus 1pt
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2pt plus 1pt minus 1pt
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geomar10.sty,v $
+%Revision 1.5 1994/06/14 21:49:20 levy
+%*** empty log message ***
+%
+%Revision 1.4 1994/06/14 21:48:58 levy
+%*** empty log message ***
+%
+%Revision 1.3 1994/06/14 21:48:37 levy
+%*** empty log message ***
+%
+%Revision 1.2 1993/12/21 05:16:58 levy
+%corrected \footnotesize
+%
+%Revision 1.1 92/07/11 22:28:19 levy
+%Initial revision
+%
+%Revision 1.1 92/04/07 09:09:06 levy
+%Initial revision
+%
+%Revision 1.1 1992/03/20 22:38:55 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomar11.sty b/Master/texmf-dist/tex/latex/geomsty/geomar11.sty
new file mode 100644
index 00000000000..05e1601e7e7
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomar11.sty
@@ -0,0 +1,130 @@
+% $Header: /u/levy/texts/geombook/RCS/geomar11.sty,v 1.2 1994/06/14 21:49:20 levy Exp levy $
+
+%
+% This is the geom style art11 file, by Silvio Levy.
+% It contains modifications to art11.sty of 22 Dec 87
+%
+% \typeout{Reading geomart11.sty $Revision: 1.2 $ (changes to art11.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{12pt}\xpt\@xpt
+ \abovedisplayskip 10pt plus2pt minus5pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus3pt
+ \belowdisplayshortskip 6pt plus3pt minus3pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 3pt plus 2pt minus 0pt
+ \topsep 6pt plus 2pt minus 2pt}}
+
+\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8pt plus 2pt minus 4pt%
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt%
+ \belowdisplayshortskip 4pt plus 2pt minus 2pt
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+ \parsep 0pt
+ \topsep 4pt plus 2pt minus 2pt
+ \itemsep 2pt plus 1pt minus 1pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Following change commented out 940614 for the following imperfectly
+% understood reason. When the partopsep is NOT set here, it is zero
+% at the beginning of a run (even though defined to be 3 +1 -2 in
+% art11.sty). When it is set here, it is nonzero, and breaks the
+% footnotes on the first page of amsart.sty.
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +1 -2)
+
+%\partopsep 2pt plus 1pt minus 1pt
+
+% mess with \addcontentsline; \chapheadsize instead of \Huge
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \def\@tempa{\addcontentsline{toc}{part}} %
+ \expandafter\@tempa\expandafter{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ {\centering
+ \ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \Large\bf Part \thepart % THEN Print 'Part' and number
+ \par\nobreak % in \Large bold.
+ \fi % FI
+ \chapheadsize \bf %
+ #2\markboth{}{}\par}
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+\def\@spart#1{{\centering
+ \chapheadsize \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \parsep 0pt
+ \topsep 9pt plus 3pt minus 5pt%
+ \itemsep 4.5pt plus 2pt minus 1pt}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 4.5pt plus 2pt minus 1pt
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2pt plus 1pt minus 1pt
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geomar11.sty,v $
+%Revision 1.2 1994/06/14 21:49:20 levy
+%*** empty log message ***
+%
+%Revision 1.1 92/04/07 09:09:06 levy
+%Initial revision
+%
+%Revision 1.1 1992/03/20 22:38:55 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomar12.sty b/Master/texmf-dist/tex/latex/geomsty/geomar12.sty
new file mode 100644
index 00000000000..27f3c9a4f71
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomar12.sty
@@ -0,0 +1,132 @@
+% $Header: /u/levy/texts/geombook/RCS/geomar12.sty,v 1.3 1994/06/14 21:49:20 levy Exp levy $
+
+%
+% This is the geom style art12 file, by Silvio Levy.
+% It contains modifications to art12.sty of 22 Dec 87
+%
+% \typeout{Reading geomart12.sty $Revision: 1.3 $ (changes to art12.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{13.6pt}\xipt\@xipt
+\abovedisplayskip 11pt plus3pt minus6pt%
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus3pt%
+\belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+\def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 4.5pt plus 2pt minus 0pt
+ \topsep 9pt plus 3pt minus 5pt}}
+
+\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+ \abovedisplayskip 10pt plus2pt minus5pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus3pt
+ \belowdisplayshortskip 6pt plus3pt minus3pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 3pt plus 2pt minus 0pt
+ \topsep 6pt plus 2pt minus 2pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Following change commented out 940614 for the following imperfectly
+% understood reason. When the partopsep is NOT set here, it is zero
+% at the beginning of a run (even though defined to be 3 +2 -2 in
+% art10.sty). When it is set here, it is nonzero, and breaks the
+% footnotes on the first page of amsart.sty.
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +2 -2)
+
+%\partopsep 2pt plus 1pt minus 1pt
+
+% mess with \addcontentsline; \chapheadsize instead of \Huge
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \refstepcounter{part} % THEN step part counter
+ \def\@tempa{\addcontentsline{toc}{part}} %
+ \expandafter\@tempa\expandafter{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ {\centering
+ \ifnum \c@secnumdepth >-1\relax % IF secnumdepth > -1
+ \Large\bf Part \thepart % THEN Print 'Part' and number
+ \par\nobreak % in \Large bold.
+ \fi % FI
+ \chapheadsize \bf %
+ #2\markboth{}{}\par}
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+\def\@spart#1{{\centering
+ \chapheadsize \bf
+ #1\par} % Title.
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 3ex % Space between title and text.
+ \@afterheading % Routine called after part and
+ } % section heading.
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \topsep 10pt plus 4pt minus 6pt%
+ \itemsep 5pt plus 2.5pt minus 1pt
+ \parsep \z@}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5pt plus 2.5pt minus \p@
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5pt plus \p@ minus \p@
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geomar12.sty,v $
+%Revision 1.3 1994/06/14 21:49:20 levy
+%*** empty log message ***
+%
+%Revision 1.2 1994/06/14 21:48:58 levy
+%*** empty log message ***
+%
+%Revision 1.1 92/04/07 09:09:07 levy
+%Initial revision
+%
+%Revision 1.1 1992/03/20 22:38:55 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomart.sty b/Master/texmf-dist/tex/latex/geomsty/geomart.sty
new file mode 100644
index 00000000000..3cf2d58765c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomart.sty
@@ -0,0 +1,193 @@
+% $Header: /a/tampa/h/tampa_a/fac/levy/texts/geombook/RCS/geomart.sty,v 1.7 94/07/22 09:55:30 levy Exp Locker: levy $
+
+%
+% This is the geom style article file, by Silvio Levy.
+% It contains modifications to article.sty of <16 Mar 88>.
+%
+% \typeout{Reading geomart.sty $Revision: 1.7 $ (changes to article.sty)}
+
+% Marginpars go on right side of page.
+
+\@mparswitchfalse
+
+% Input size-dependent information. \@ptsize.sty is defined in book.sty.
+
+\input geomar1\@ptsize.sty\relax
+
+% Layout parameters
+
+\tolerance 1000
+\clubpenalty 10000
+\widowpenalty 10000
+\hfuzz=.1pt
+
+% First two levels of enumerations are (a) and (i), respectively,
+% rather than 1. and (a).
+
+\let\@@currentlabel\relax %assign initial value
+
+\def\labelenumi{\theenumi}
+\def\theenumi{(\alph{enumi})}
+\def\p@enumi{\@@currentlabel}
+
+\def\labelenumii{\theenumii}
+\def\theenumii{(\roman{enumii})}
+\def\p@enumii{\@@currentlabel}
+
+\def\p@enumiii{\@@currentlabel}
+
+\def\p@enumiv{\@@currentlabel}
+
+% Less space around contents of \fbox (2pt instead of 3pt)
+
+\fboxsep = 2pt
+
+% No explicit \@mkboth needed in \tableofcontents
+% marks are automatically added by \section*
+
+\@ifundefined{contentsname}{\def\contentsname{Contents}}{}
+\def\tableofcontents{{\starredcontentsfalse\section*{\contentsname}\@starttoc{toc}}}
+
+% Contents line for part
+
+\def\l@part#1#2{\addpenalty{\@secpenalty}
+ \addvspace{2em plus 1pt} % space above part line
+ \begingroup
+ \def\\{\unskip\ \ignorespaces} % deal with \\ in chapter titles --SL
+ \@tempdima 3em % width of box holding part number, used by
+ \parindent \z@ %% \numberline
+ \rightskip \@pnumwidth plus 3em % allow ragged right
+ \parfillskip -\rightskip % when line wraps around --SL
+ \hangindent 1.5em % hangindent is same as l@section below --SL
+ {\bf % set line in boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
+ \nobreak % Never break after part entry
+ \endgroup}
+
+% Treat contents entry for section same as the others
+
+\def\l@section{\@dottedtocline{1}{0em}{2.3em}}
+\def\l@subsection{\@dottedtocline{2}{2.3em}{3.2em}}
+\def\l@subsubsection{\@dottedtocline{3}{5.5em}{4.1em}}
+\def\l@paragraph{\@dottedtocline{4}{9.6em}{5em}}
+\def\l@subparagraph{\@dottedtocline{5}{14.6em}{6em}}
+
+\def\l@ssection{\@dottedtocline{1}{0em}{0em}}
+\def\l@ssubsection{\@dottedtocline{2}{2.3em}{0em}}
+\def\l@ssubsubsection{\@dottedtocline{3}{5.5em}{0em}}
+\def\l@sparagraph{\@dottedtocline{4}{9.6em}{0em}}
+\def\l@ssubparagraph{\@dottedtocline{5}{14.6em}{0em}}
+
+% No explicit \@mkboth needed in \listoffigures \listoftables \thebibliography
+% marks are automatically added by \section*
+
+\@ifundefined{listfigurename}{\def\listfigurename{List of Figures}}{}
+\@ifundefined{listtablename}{\def\listtablename{List of Tables}}{}
+\def\listoffigures{\section*{\listfigurename}\@starttoc{lof}}
+\def\listoftables{\section*{\listtablename}\@starttoc{lot}}
+
+% no indentation for figure contents line, since there are
+% no higher-level entries
+
+\def\l@figure{\@dottedtocline{1}{0em}{2.3em}}
+\let\l@table\l@figure
+
+\@ifundefined{refname}{\def\refname{References}}{}
+\def\thebibliography#1{\section*{\refname}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}
+
+% Index uses two columns and smaller type.
+
+\@ifundefined{indexname}{\def\indexname{Index}}{}
+\def\theindex{\begingroup\section*{\indexname}\small
+ \parindent\z@
+ \parskip\z@ plus .3pt\relax\let\item\@idxitem
+ \begin{multicols}2}
+\def\endtheindex{\end{multicols}\endgroup}
+
+\def\glo#1{${}^{\dagger}$#1\index{\dag #1}}
+
+\@ifundefined{glossaryname}{\def\glossaryname{Glossary}}{}
+\newenvironment{theglossary}%
+ {\begingroup\section*{\glossaryname}\small
+ \begin{multicols}2}%
+ {\end{multicols}\endgroup}
+\def\entry{\medbreak\@ifnextchar[{\entry@}{\entry@@}}
+\def\entry@@#1{\par\noindent{\bf #1.}\enspace\ignorespaces}
+\def\entry@[#1]#2{\par\noindent{\bf #2} #1.\enspace\ignorespaces}
+
+% Indentation in index is smaller (12pt instead of 40pt)
+
+\def\@idxitem{\par\hangindent 12pt}
+
+% Allow more of the page to be taken by figures.
+
+\def\bottomfraction{.7}
+\def\floatpagefraction{.7}
+
+% Captions at set with a width somewhat smaller than the main text width
+
+\newdimen\@captionmargin\@captionmargin=\parindent
+\newdimen\@captionwidth\@captionwidth=\hsize
+\advance\@captionwidth by -2\@captionmargin
+
+% left and right footers (normally set by RCS)
+
+\def\leftfoot{{}}
+\def\rightfoot{{}}
+
+% Definition of 'headings' page style.
+
+\def\ps@headings{\let\@mkboth\markboth
+ \def\@oddfoot{\ifproofing\leftfoot\hfil\rightfoot\unskip\else\hfil\fi}
+ \def\@evenfoot{\ifproofing\leftfoot\hfil\rightfoot\unskip\else\hfil\fi}
+ \def\@evenhead{\footnotesize\rm\thepage\hfil\leftmark}% Left heading.
+ \def\@oddhead{\footnotesize\rm\hbox{}\rightmark\hfil\thepage}%Right heading
+ \def\ssectionmark##1{\markbothsame{##1}}%
+ \def\sectionmark##1{{% Expand the \ifnum, not the ##1
+ \edef\@tempa{\ifnum \c@secnumdepth >\z@ \thesection. \fi}%
+ \expandafter \markbothsame \expandafter{\@tempa ##1}}}}
+
+\def\ps@plain{\let\@mkboth\markboth
+ \def\@oddfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenhead{\hfil}\def\@oddhead{\hfil}}
+
+% Put the new \ps@headings into effect.
+
+\ps@headings
+
+% $Log: geomart.sty,v $
+%Revision 1.7 94/07/22 09:55:30 levy
+%\contentsname etc.
+%
+%Revision 1.6 1994/04/08 22:04:06 levy
+%initial value for @@currentlabel
+%
+%Revision 1.5 92/07/17 13:44:17 levy
+%*** empty log message ***
+%
+%Revision 1.4 92/07/13 21:54:23 levy
+%further cleaned up the environments
+%
+%Revision 1.3 92/07/13 08:49:21 levy
+%theoremSt -> Theorem
+%
+%Revision 1.2 92/06/10 12:38:44 levy
+%geomart12 -> geomar12
+%
+%Revision 1.1 92/04/07 09:09:05 levy
+%Initial revision
+%
+%Revision 1.3 1992/03/20 22:39:40 levy
+%*** empty log message ***
+%
+%Revision 1.2 1992/03/20 19:17:42 levy
+%*** empty log message ***
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geombk10.sty b/Master/texmf-dist/tex/latex/geomsty/geombk10.sty
new file mode 100644
index 00000000000..dba9e2b14ad
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geombk10.sty
@@ -0,0 +1,157 @@
+% $Header: /u/levy/texts/geombook/RCS/geombk10.sty,v 1.2 1993/12/21 05:16:58 levy Exp levy $
+
+%
+% This is the geom style bk10 file, by Silvio Levy.
+% It contains modifications to bk10.sty of <24 Nov 89>.
+%
+% \typeout{Reading geombk10.sty $Revision: 1.2 $ (changes to bk10.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8pt plus 2pt minus 4pt%
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt%
+ \belowdisplayshortskip 4pt plus 2pt minus 2pt
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+ \parsep 0pt
+ \topsep 4pt plus 2pt minus 2pt
+ \itemsep 2pt plus 1pt minus 1pt}}
+
+\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+ \abovedisplayskip 7.2pt plus 2pt minus 4pt%
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt%
+ \belowdisplayshortskip 4pt plus 2pt minus 2pt
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+ \parsep 0pt
+ \topsep 4pt plus 2pt minus 2pt
+ \itemsep 2pt plus 1pt minus 1pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +2 -2)
+
+\partopsep 2pt plus 1pt minus 1pt
+
+% Replaced \Huge by \chapheadsize, added +10pt at end
+
+\def\@makechapterhead#1{ % Heading for \chapter command
+ \vspace*{50pt} % Space at top of text page.
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bf \@chapapp{} \thechapter % Print 'Chapter' and number.
+ \par
+ \vskip 20pt \fi % Space between number and title.
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10 pt % Space between title and text.
+ } }
+
+\def\@makeschapterhead#1{ % Heading for \chapter* command
+ \vspace*{50pt} % Space at top of page.
+ { \parindent 0pt \raggedright
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10pt % Space between title and text.
+ } }
+
+% Don't skip page if proofing
+
+\def\chapter{\ifproofing\clearpage\else\cleardoublepage\fi
+ \thispagestyle{chapter} % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@chapter\@schapter} % to \@afterindenttrue to have indent.
+
+% Define \object@type
+% stepcounter section so subsidiary counters (e.g. theorems) get reset
+% don't \typeout
+% mess with \addcontentsline
+% no need for \protect before \addvspace
+% automatic label
+
+\def\@chapter[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne \def\object@type{chapter}
+ \refstepcounter{section}\refstepcounter{chapter}
+ \def\@tempa{\addcontentsline{toc}{chapter}}%
+ \edef\@tempb{\noexpand\numberline{\thechapter}}%
+ \expandafter\@tempa\expandafter{\@tempb #1}%
+ \else\addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}\@afterheading \fi
+ \ifautolabel\label*{#2}\fi}
+
+% add mark and table of contents line
+
+\def\@schapter#1{%
+ \schaptermark{#1}
+ \ifstarredcontents\addcontentsline{toc}{chapter}{#1}\fi
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makeschapterhead{#1}]
+ \else \@makeschapterhead{#1}\@afterheading\fi}
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \topsep 6pt plus 3pt minus 3pt
+ \itemsep 3pt plus 2pt minus \p@
+ \parsep \z@}
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5pt plus 2.5pt minus \p@
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5pt plus \p@ minus \p@
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geombk10.sty,v $
+%Revision 1.2 1993/12/21 05:16:58 levy
+%corrected \footnotesize
+%
+%Revision 1.1 92/07/11 22:35:33 levy
+%Initial revision
+%
+
diff --git a/Master/texmf-dist/tex/latex/geomsty/geombk11.sty b/Master/texmf-dist/tex/latex/geomsty/geombk11.sty
new file mode 100644
index 00000000000..2c3e403fb94
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geombk11.sty
@@ -0,0 +1,152 @@
+% $Header: /u/levy/texts/geombook/RCS/geombk11.sty,v 1.1 1992/07/11 22:32:09 levy Exp levy $
+
+%
+% This is the geom style bk12 file, by Silvio Levy.
+% It contains modifications to bk12.sty of <24 Nov 89>.
+%
+% \typeout{Reading geombk12.sty $Revision: 1.1 $ (changes to bk12.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{12pt}\xpt\@xpt
+ \abovedisplayskip 10pt plus2pt minus5pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus3pt
+ \belowdisplayshortskip 6pt plus3pt minus3pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 3pt plus 2pt minus 0pt
+ \topsep 6pt plus 2pt minus 2pt}}
+
+\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
+ \abovedisplayskip 8pt plus 2pt minus 4pt%
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip \z@ plus 1pt%
+ \belowdisplayshortskip 4pt plus 2pt minus 2pt
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
+ \parsep 0pt
+ \topsep 4pt plus 2pt minus 2pt
+ \itemsep 2pt plus 1pt minus 1pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +2 -2)
+
+\partopsep 2pt plus 1pt minus 1pt
+
+% Replaced \Huge by \chapheadsize, added +10pt at end
+
+\def\@makechapterhead#1{ % Heading for \chapter command
+ \vspace*{50pt} % Space at top of text page.
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bf \@chapapp{} \thechapter % Print 'Chapter' and number.
+ \par
+ \vskip 20pt \fi % Space between number and title.
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10 pt % Space between title and text.
+ } }
+
+\def\@makeschapterhead#1{ % Heading for \chapter* command
+ \vspace*{50pt} % Space at top of page.
+ { \parindent 0pt \raggedright
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10pt % Space between title and text.
+ } }
+
+% Don't skip page if proofing
+
+\def\chapter{\ifproofing\clearpage\else\cleardoublepage\fi
+ \thispagestyle{chapter} % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@chapter\@schapter} % to \@afterindenttrue to have indent.
+
+% Define \object@type
+% stepcounter section so subsidiary counters (e.g. theorems) get reset
+% don't \typeout
+% mess with \addcontentsline
+% no need for \protect before \addvspace
+% automatic label
+
+\def\@chapter[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne \def\object@type{chapter}
+ \refstepcounter{section}\refstepcounter{chapter}
+ \def\@tempa{\addcontentsline{toc}{chapter}}%
+ \edef\@tempb{\noexpand\numberline{\thechapter}}%
+ \expandafter\@tempa\expandafter{\@tempb #1}%
+ \else\addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}\@afterheading \fi
+ \ifautolabel\label*{#2}\fi}
+
+% add mark and table of contents line
+
+\def\@schapter#1{%
+ \schaptermark{#1}
+ \ifstarredcontents\addcontentsline{toc}{chapter}{#1}\fi
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makeschapterhead{#1}]
+ \else \@makeschapterhead{#1}\@afterheading\fi}
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \topsep 6pt plus 3pt minus 3pt
+ \itemsep 3pt plus 2pt minus \p@
+ \parsep \z@}
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5pt plus 2.5pt minus \p@
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5pt plus \p@ minus \p@
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geombk11.sty,v $
+%Revision 1.1 1992/07/11 22:32:09 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geombk12.sty b/Master/texmf-dist/tex/latex/geomsty/geombk12.sty
new file mode 100644
index 00000000000..062484cb150
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geombk12.sty
@@ -0,0 +1,157 @@
+% $Header: /a/tampa/h/tampa_a/fac/levy/texts/geombook/RCS/geombk12.sty,v 1.3 92/06/18 16:56:17 levy Exp $
+
+%
+% This is the geom style bk12 file, by Silvio Levy.
+% It contains modifications to bk12.sty of <24 Nov 89>.
+%
+% \typeout{Reading geombk12.sty $Revision: 1.3 $ (changes to bk12.sty)}
+
+% make the \parsep 0pt
+
+\def\small{\@setsize\small{13.6pt}\xipt\@xipt
+ \abovedisplayskip 11pt plus3pt minus6pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus3pt
+ \belowdisplayshortskip 6.5pt plus3.5pt minus3pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 4.5pt plus 2pt minus 0pt
+ \topsep 9pt plus 3pt minus 5pt}}
+
+\def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
+ \abovedisplayskip 10pt plus2pt minus5pt
+ \belowdisplayskip \abovedisplayskip
+ \abovedisplayshortskip 0pt plus3pt
+ \belowdisplayshortskip 6pt plus3pt minus3pt
+ \def\@listi{\leftmargin\leftmargini \parsep 0pt
+ \itemsep 3pt plus 2pt minus 0pt
+ \topsep 6pt plus 2pt minus 2pt}}
+
+% Make chapter and section heads less huge
+
+\let\chapheadsize=\LARGE
+\let\huge=\Large
+\let\Large=\large
+
+% Increase the page size
+
+\textwidth 5.5in \oddsidemargin .6in \evensidemargin .4in
+
+\textheight = 44\baselineskip \advance\textheight by \topskip \topmargin -.25in
+
+% Increase the parindent
+
+\parindent 20pt
+
+% Extra vertical space, in addition to
+% \parskip and \topsep, added when user
+% leaves blank line before environment.
+% (Changed from 3 +2 -2)
+
+\partopsep 2pt plus 1pt minus 1pt
+
+% Replaced \Huge by \chapheadsize, added +10pt at end
+
+\def\@makechapterhead#1{ % Heading for \chapter command
+ \vspace*{50pt} % Space at top of text page.
+ { \parindent 0pt \raggedright
+ \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN
+ \huge\bf \@chapapp{} \thechapter % Print 'Chapter' and number.
+ \par
+ \vskip 20pt \fi % Space between number and title.
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10 pt % Space between title and text.
+ } }
+
+\def\@makeschapterhead#1{ % Heading for \chapter* command
+ \vspace*{50pt} % Space at top of page.
+ { \parindent 0pt \raggedright
+ \chapheadsize \bf % Title.
+ #1\par
+ \nobreak % TeX penalty to prevent page break.
+ \vskip 40pt plus 10pt % Space between title and text.
+ } }
+
+% Don't skip page if proofing
+
+\def\chapter{\ifproofing\clearpage\else\cleardoublepage\fi
+ \thispagestyle{chapter} % Page style of chapter page is 'plain'
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@afterindentfalse % Suppresses indent in first paragraph. Change
+ \secdef\@chapter\@schapter} % to \@afterindenttrue to have indent.
+
+% Define \object@type
+% stepcounter section so subsidiary counters (e.g. theorems) get reset
+% don't \typeout
+% mess with \addcontentsline
+% no need for \protect before \addvspace
+% automatic label
+
+\def\@chapter[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne \def\object@type{chapter}
+ \refstepcounter{section}\refstepcounter{chapter}
+ \def\@tempa{\addcontentsline{toc}{chapter}}%
+ \edef\@tempb{\noexpand\numberline{\thechapter}}%
+ \expandafter\@tempa\expandafter{\@tempb #1}%
+ \else\addcontentsline{toc}{chapter}{#1}\fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makechapterhead{#2}]%
+ \else \@makechapterhead{#2}\@afterheading \fi
+ \ifautolabel\label*{#2}\fi}
+
+% add mark and table of contents line
+
+\def\@schapter#1{%
+ \schaptermark{#1}
+ \ifstarredcontents\addcontentsline{toc}{chapter}{#1}\fi
+ \addtocontents{lof}{\addvspace{10pt}}
+ \addtocontents{lot}{\addvspace{10pt}}
+ \if@twocolumn \@topnewpage[\@makeschapterhead{#1}]
+ \else \@makeschapterhead{#1}\@afterheading\fi}
+
+% Normalize according to \parindent
+
+\leftmargini\parindent
+\listparindent .8\parindent
+\leftmarginii .8\parindent
+\leftmarginiii .8\parindent
+\leftmarginiv .8\parindent
+\leftmarginv .8\parindent
+\leftmarginvi .8\parindent
+\leftmargin\leftmargini
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+% Make \parsep 0
+
+\def\@listI{\leftmargin\leftmargini
+ \topsep 6pt plus 3pt minus 3pt
+ \itemsep 3pt plus 2pt minus \p@
+ \parsep \z@}
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep 5pt plus 2.5pt minus \p@
+ \itemsep 2.5pt plus \p@ minus \p@
+ \parsep \z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep 2.5pt plus \p@ minus \p@
+ \parsep \z@ \partopsep \p@ plus \z@ minus \p@
+ \itemsep \topsep}
+
+% $Log: geombk12.sty,v $
+%Revision 1.3 92/06/18 16:56:17 levy
+%footers in chapter openers
+%
+%Revision 1.2 92/04/07 09:09:08 levy
+%*** empty log message ***
+%
+%Revision 1.1 1992/03/20 22:38:55 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geombook.sty b/Master/texmf-dist/tex/latex/geomsty/geombook.sty
new file mode 100644
index 00000000000..a3ca2320aee
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geombook.sty
@@ -0,0 +1,249 @@
+% $Header: /a/tampa/h/tampa_a/fac/levy/texts/geombook/RCS/geombook.sty,v 1.13 94/07/22 09:55:37 levy Exp Locker: levy $
+
+%
+% This is the geom style book file, by Silvio Levy.
+% It contains modifications to book.sty of <24 Nov 89>.
+%
+% \typeout{Reading geombook.sty $Revision: 1.13 $ (changes to book.sty)}
+
+% Marginpars go on right side of page.
+
+\@mparswitchfalse
+
+% Input size-dependent information. \@ptsize.sty is defined in book.sty.
+
+\input geombk1\@ptsize.sty\relax
+
+% Layout parameters
+
+\tolerance 1000
+\clubpenalty 10000
+\widowpenalty 10000
+\hfuzz=.1pt
+
+% syntatic sugar for \includeonly
+% \chap1{34} expands to chap1/1.3,chap1/1.4
+
+\def\chap#1#2{\ch@p#1#2!}
+\def\ch@p#1#2{\if#2!\else chap#1/#1.#2,\expandafter\ch@p\expandafter#1\fi}
+
+% First two levels of enumerations are (a) and (i), respectively,
+% rather than 1. and (a).
+
+\let\@@currentlabel\relax %assign initial value
+
+\def\labelenumi{\theenumi}
+\def\theenumi{(\alph{enumi})}
+\def\p@enumi{\@@currentlabel}
+
+\def\labelenumii{\theenumii}
+\def\theenumii{(\roman{enumii})}
+\def\p@enumii{\@@currentlabel}
+
+\def\p@enumiii{\@@currentlabel}
+
+\def\p@enumiv{\@@currentlabel}
+
+% Less space around contents of \fbox (2pt instead of 3pt)
+
+\fboxsep = 2pt
+
+% mess with \addcontentsline; \chapheadsize instead of \Huge
+
+\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \refstepcounter{part} % THEN step part counter
+ \def\@tempa{\addcontentsline{toc}{part}} %
+ \expandafter\@tempa\expandafter{\thepart % add toc line
+ \hspace{1em}#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{part}{#1}\fi % FI
+ \markboth{}{}
+ {\centering
+ \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \huge\bf Part \thepart % THEN Print 'Part' and number
+ \par % in \huge bold.
+ \vskip 20pt \fi % Add space before title.
+ \chapheadsize \bf % FI
+ #2\par}\@endpart}
+
+\def\@spart#1{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2
+ \def\@tempa{\addcontentsline{toc}{spart}} %
+ \expandafter\@tempa\expandafter{#1}\else % ELSE add unnumbered line
+ \addcontentsline{toc}{spart}{#1}\fi % FI
+ {\centering \chapheadsize \bf #1\par}\@endpart}
+
+% No explicit \@mkboth needed in \tableofcontents
+% marks are automatically added by \chapter*
+
+\@ifundefined{contentsname}{\def\contentsname{Contents}}{}
+\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi{\starredcontentsfalse\chapter*{\contentsname}}%
+ \@starttoc{toc}\if@restonecol\twocolumn\fi}
+
+% Contents line for chapter
+
+\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
+ \vskip 1.0em plus 1pt % space above chapter line
+ \@tempdima 1.5em % width of box holding chapter number
+ \begingroup
+ \def\\{\unskip\ \ignorespaces} % deal with \\ in chapter titles --SL
+ \hyphenpenalty10000 % prohibit hyphenation --SL
+ \parindent \z@
+ \rightskip \@pnumwidth plus 3em % allow ragged right
+ \parfillskip -\rightskip % when line wraps around --SL
+ \hangindent 1.5em % hangindent is same as l@section below --SL
+ \bf % Boldface.
+ \leavevmode % TeX command to enter horizontal mode.
+ \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to
+ \hskip -\leftskip %% 25 Jan 88 change to \numberline
+ #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty %% added 24 May 89 as suggested by J. Leichter
+ \endgroup}
+
+% Contents line for part is the same as for chapter
+
+\let\l@part\l@chapter
+\let\l@spart\l@chapter
+
+\let\l@schapter\l@chapter
+\def\l@ssection{\@dottedtocline{1}{1.5em}{0em}}
+\def\l@ssubsection{\@dottedtocline{2}{3.8em}{0em}}
+\def\l@ssubsubsection{\@dottedtocline{3}{7.0em}{0em}}
+\def\l@sparagraph{\@dottedtocline{4}{10em}{0em}}
+\def\l@ssubparagraph{\@dottedtocline{5}{12em}{0em}}
+
+% No explicit \@mkboth needed in \listoffigures \listoftables \thebibliography
+% marks are automatically added by \chapter*
+
+\@ifundefined{listfigurename}{\def\listfigurename{List of Figures}}{}
+\@ifundefined{listtablename}{\def\listtablename{List of Tables}}{}
+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{\listfigurename}\@starttoc{lof}\if@restonecol
+ \twocolumn\fi}
+
+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{\listtablename}\@starttoc{lot}\if@restonecol
+ \twocolumn\fi}
+
+% no indentation for figure contents line, since there are
+% no higher-level entries
+
+\def\l@figure{\@dottedtocline{1}{0em}{2.3em}}
+\let\l@table\l@figure
+
+\@ifundefined{bibname}{\def\bibname{Bibliography}}{}
+\def\thebibliography#1{\chapter*{\bibname}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}
+
+% Index uses two columns and smaller type.
+
+\@ifundefined{indexname}{\def\indexname{Index}}{}
+\def\theindex{\begingroup\chapter*{\indexname}\small
+ \parindent\z@
+ \parskip\z@ plus .3pt\relax\let\item\@idxitem
+ \begin{multicols}2}
+\def\endtheindex{\end{multicols}\endgroup}
+
+\def\glo#1{${}^{\dagger}$#1\index{\dag #1}}
+
+\@ifundefined{glossaryname}{\def\glossaryname{Glossary}}{}
+\newenvironment{theglossary}%
+ {\begingroup\chapter*{\glossaryname}\small
+ \begin{multicols}2}%
+ {\end{multicols}\endgroup}
+\def\entry{\medbreak\@ifnextchar[{\entry@}{\entry@@}}
+\def\entry@@#1{\par\noindent{\bf #1.}\enspace\ignorespaces}
+\def\entry@[#1]#2{\par\noindent{\bf #2} #1.\enspace\ignorespaces}
+
+% Indentation in index is smaller (12pt instead of 40pt)
+
+\def\@idxitem{\par\hangindent 12pt}
+
+% Allow more of the page to be taken by figures.
+
+\def\bottomfraction{.7}
+\def\floatpagefraction{.7}
+
+% Captions at set with a width somewhat smaller than the main text width
+
+\newdimen\@captionmargin\@captionmargin=\parindent
+\newdimen\@captionwidth %not set here because depends on hsize
+
+% left and right footers (normally set by RCS)
+
+\def\leftfoot{{}}
+\def\rightfoot{{}}
+
+% Definition of 'headings' page style.
+
+\def\ps@headings{\let\@mkboth\markboth
+ \def\@oddfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenhead{\footnotesize\rm\thepage\hfil\leftmark}% Left heading.
+ \def\@oddhead{\footnotesize\rm\hbox{}\rightmark\hfil\thepage}%Right heading
+ \def\chaptermark##1{{% Expand the \ifnum, not the ##1
+ \edef\@tempa{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \fi}%
+ \expandafter \markboth \expandafter{\@tempa ##1}{}}}%
+ \def\schaptermark##1{\markboth {##1}{##1}}%
+ \def\ssectionmark##1{\markbothsame{##1}}%
+ \def\sectionmark##1{{% Expand the \ifnum, not the ##1
+ \edef\@tempa{\ifnum \c@secnumdepth >\z@ \thesection. \fi}%
+ \expandafter \markright \expandafter{\@tempa ##1}}}}
+
+% footline in \ps@plain and \ps@chapter gets no page number
+
+\def\ps@chapter{\let\@mkboth\markboth
+ \def\@oddfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenfoot{\ifproofing\leftfoot\hfil\rightfoot\else\hfil\fi}%
+ \def\@evenhead{\hfil}\def\@oddhead{\hfil}}
+
+\def\ps@plain{\let\@mkboth\@gobbletwo
+ \def\@oddhead{}\def\@oddfoot{}%
+ \def\@evenhead{}\let\@evenfoot\@oddfoot}
+
+% Put the new \ps@headings into effect.
+
+\ps@headings
+
+% $Log: geombook.sty,v $
+%Revision 1.13 94/07/22 09:55:37 levy
+%\contentsname etc.
+%
+%Revision 1.12 1994/05/11 17:07:26 levy
+%*** empty log message ***
+%
+%Revision 1.11 1994/05/08 06:05:01 levy
+%schapter etc.
+%
+%Revision 1.10 1994/04/27 07:15:50 levy
+%ssectionmark
+%
+%Revision 1.9 1994/04/08 22:04:06 levy
+%initial value for @@currentlabel
+%
+%Revision 1.8 92/07/17 13:44:19 levy
+%*** empty log message ***
+%
+%Revision 1.7 92/07/13 21:54:25 levy
+%further cleaned up the environments
+%
+%Revision 1.6 92/07/13 08:46:31 levy
+%theoremSt -> Theorem
+%
+%Revision 1.5 92/06/18 16:55:56 levy
+%footers in chapter openers
+%caption width error
+%
+%Revision 1.4 92/04/07 09:09:09 levy
+%*** empty log message ***
+%
+%Revision 1.3 1992/03/20 22:39:40 levy
+%*** empty log message ***
+%
+%Revision 1.2 1992/03/20 19:17:42 levy
+%*** empty log message ***
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomenv.sty b/Master/texmf-dist/tex/latex/geomsty/geomenv.sty
new file mode 100644
index 00000000000..338ebc4b910
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomenv.sty
@@ -0,0 +1,189 @@
+% $Header: /usr/home/levy/texts/geomsty/RCS/geomenv.sty,v 1.15 95/12/13 20:32:50 levy Exp Locker: levy $
+
+\@ifundefined{@@newtheorem}{}{\endinput}
+
+%
+% \newtheorem is modified so as to accept a (first) optional argument.
+% If this is present, the new theorem type ``foo'' will spawn an inner
+% environment ``foo@''. The optional argument contains two
+% brace-delimited token sequences, be inserted before and after the inner
+% environment starts.
+%
+\def\newtheorem{\@ifnextchar[{\@newtheorem}{\@newtheorem[{}{}]}}%]
+
+\long\def\@newtheorem[#1]{\@@newtheorem#1}
+
+\long\def\@@newtheorem#1#2#3{%
+ \newenvironment{#3}%
+ {\def\object@type{#3}#1\@ifnextchar[{\@enva{#3}{#2}}{\@envb{#3}{#2}}}%]
+ {\end{#3@}}%
+ \@ifnextchar[{\@othm{#3@}}{\@nnthm{#3}}%]
+}
+
+\def\@nnthm#1#2{%
+\@ifnextchar[{\@xnnthm{#1}{#2}}{\@ynnthm{#1}{#2}}}
+
+\def\unnumbered#1{\expandafter\let\csname the#1\endcsname\relax}
+
+\def\@xnnthm#1#2[#3]{\@definecounter{#1}\@addtoreset{#1}{#3}%
+\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
+ \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
+\global\@namedef{#1@}{\@thm{#1}{#2}}\global\@namedef{end#1@}{\@endtheorem}}
+
+\def\@ynnthm#1#2{\@definecounter{#1}%
+\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
+\global\@namedef{#1@}{\@thm{#1}{#2}}\global\@namedef{end#1@}{\@endtheorem}}
+
+\def\@enva#1#2[#3]{\begin{#1@}[#3]#2}
+\def\@envb#1#2{\begin{#1@}#2}
+
+%
+% Avoid indentation after end of theorem-like environment.
+%
+
+\def\end#1{\csname end#1\endcsname\@checkend{#1}%
+ \expandafter\endgroup \if@endpe \@doendpe \@restorepar \fi
+ \if@ignore \global\@ignorefalse \ignorespaces\fi}
+
+%
+% \theoremintro allows the user to choose how the theorem take is
+% going to look like.
+%
+
+\def\theoremintro#1{\normalshape\bf#1. }
+%
+% cannot use \@ifempty for this test because #2 typically looks like
+% \csname thetheorem\csname, and \thetheorem has been \let to \relax.
+%
+\def\thrmintro#1#2{#1%
+ \def\@tempa{#1}\ifx\@tempa\@empty\else
+ \expandafter\let\expandafter\@tempa#2% This gives \thetheorem
+ \ifx\@tempa\relax\else{ }\fi\fi#2}
+
+\def\@begintheorem#1#2{\trivlist\item[\hskip\labelsep
+ \theoremintro{\thrmintro{#1}{#2}}\hskip-\labelsep]}
+
+\def\@opargbegintheorem#1#2#3{\trivlist\item[\hskip \labelsep
+ \theoremintro{\thrmintro{#1}{#2} (#3)}\hskip-\labelsep]\ifautolabel\label*{#3}\fi}
+
+%
+% \specialdigits causes digits and punctuation to become active
+% and print in roman type. \regulardigits cancels that.
+%
+
+\def\dowith#1{\let\@tempa#1%
+ \@tempa,\@tempa.\@tempa:\@tempa;\@tempa(\@tempa)\@tempa!\@tempa?%
+ \@tempa0\@tempa1\@tempa2\@tempa3\@tempa4%
+ \@tempa5\@tempa6\@tempa7\@tempa8\@tempa9}
+%
+\def\makeactive#1{\catcode`#1=13}
+\def\makeother#1{\catcode\expandafter`\noexpand#1=12}
+\def\makechoice#1{\edef#1{%
+ \noexpand\ifmmode\string#1%
+ \noexpand\else\noexpand\ifhmode\/\noexpand\fi%
+ {\noexpand\normalshape\string#1}\noexpand\fi}}
+%
+\def\regulardigits{\dowith\makeother}
+
+{\dowith\makeactive
+\gdef\specialdigits{%
+\dowith\makeactive
+\let\@tempa\makechoice
+ \@tempa,\@tempa.\@tempa:\@tempa;\@tempa(\@tempa)\@tempa!\@tempa?%
+ \@tempa0\@tempa1\@tempa2\@tempa3\@tempa4%
+ \@tempa5\@tempa6\@tempa7\@tempa8\@tempa9}%
+}
+
+% The proof environment takes an optional argument, which defaults
+% to \prooftag (which should be set by theorem-like environments).
+% This argument is stored in \provedbox (after being passed to
+% \provedboxcontents), to be printed in the ``proved box'' at
+% the end of the proof. It is also printed at the beginning of proof,
+% after being passed to \proofintro.
+
+% If the proof
+% ends with a displayed formula, it is recommented that the proved box
+% be placed next to the formula (as if it were a tag). This is done
+% by inserting \proved before the closing $$. In even more difficult
+% cases (e.g., if the formula already has a tag, or is part of a
+% multi-line display), plop \box\provedbox where we want the box to be.
+
+\def\prooftag{}
+\def\setprooftag{\xdef\prooftag{\@currentlabel}}
+
+\def\proof{}
+\renewenvironment{proof}
+ {\trivlist\item[]\@ifnextchar[{\pro@f}{\pro@f[\prooftag]}}%]
+ {\ifvoid\provedbox\else\hproved\fi\endtrivlist}
+
+% the next few lines, parallel to the Theorem setup, don't work for
+% two reasons: \provedbox is set within a group and so disappears, and
+% the nextchar seen by processproof is always \hskip.
+%\newenvironment{proof}
+% {\trivlist\item[\hskip\labelsep\process@proof\hskip-\labelsep]}
+% {\ifvoid\provedbox\else\hproved\fi\endtrivlist}
+%\def\process@proof{\@ifnextchar[{\pro@f}{\pro@f[\prooftag]}}%]
+
+\def\pro@f[#1]{\setbox\provedbox\hbox{\provedboxcontents{#1}}\proofintro{#1}}
+
+\def\proofintro#1{\expandafter\def\expandafter\@tempa\expandafter{#1}%
+ {\it Proof\ifx\@tempa\empty\else\ of #1\fi. }\ignorespaces}
+
+\def\provedboxcontents#1{\expandafter\def\expandafter\@tempa\expandafter{#1}%
+ \ifx\@tempa\empty$\square$\else\fbox{\small#1}\fi}
+
+\newbox\provedbox
+
+\def\proved{\ifmmode\eqno{\box\provedbox}\else\hproved\fi}
+
+\def\hproved{\unskip\nobreak\hfil\penalty50\hskip.5em\hbox{}\nobreak\hfil
+ \box\provedbox{\parfillskip=0pt\finalhyphendemerits=0\par}}
+
+% $Log: geomenv.sty,v $
+%Revision 1.15 95/12/13 20:32:50 levy
+%make {proof} a redefinition instead of a definition
+%
+%Revision 1.14 95/07/22 13:32:31 levy
+%put space after period in \theoremintro
+%(while at the same time removing the \labelsep)
+%
+%Revision 1.13 93/08/18 08:35:24 levy
+%> eliminated space for \newtheorem{justnumber}{}
+%added definition of \unnumbered
+%
+%Revision 1.12 1993/03/16 23:55:14 levy
+%*** empty log message ***
+%
+%Revision 1.11 93/03/07 23:08:41 levy
+%removed a repeated invocation of \theoremintro in \opargbegintheorem
+%
+%Revision 1.10 1993/01/10 20:57:03 levy
+%comparison in \proofintro should have \edef, not \def
+%
+%Revision 1.9 1993/01/10 17:11:12 levy
+%*** empty log message ***
+%
+%Revision 1.8 92/10/01 15:31:59 levy
+%fixed space in "Theorem ."
+%
+%Revision 1.7 92/07/17 13:44:21 levy
+%*** empty log message ***
+%
+%Revision 1.6 92/07/13 21:54:27 levy
+%further cleaned up the environments
+%
+%Revision 1.5 92/07/13 11:12:10 levy
+%big change (abolished MakeStEnv)
+%
+%Revision 1.4 92/06/15 19:15:35 levy
+%fixed disappearing punctuation in fancy italics
+%
+%Revision 1.3 92/06/03 11:25:24 levy
+%active punctuation
+%
+%Revision 1.2 92/04/07 09:08:56 levy
+%*** empty log message ***
+%
+%Revision 1.1 1992/03/21 02:42:28 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomeqns.sty b/Master/texmf-dist/tex/latex/geomsty/geomeqns.sty
new file mode 100644
index 00000000000..95e39630285
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomeqns.sty
@@ -0,0 +1,49 @@
+% $Header: /u/levy/texts/geomsty/RCS/geomeqns.sty,v 1.6 95/07/01 02:23:17 levy Exp Locker: levy $
+
+% format equation numbers like subsection numbers
+
+\def\@eqnnum{\hbox{\normalshape\bf \theequation.}}
+
+% set equations on left side
+
+\def\equation{$$ % $$ BRACE MATCHING HACK
+ \def\object@type{equation}\refstepcounter{equation}}
+\def\endequation{\leqno \@eqnnum % $$ BRACE MATCHING HACK
+ $$\global\@ignoretrue}
+
+\def\eqnarray{\def\object@type{equation}\stepcounter{equation}%
+ \edef\@currentlabel{\theequation}
+ \global\@eqnswtrue\global\@eqcnt\z@\tabskip\@centering\let\\=\@eqncr
+ $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering % $$BRACE MATCHING
+ $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne\hfil${}##{}$\hfil
+ &\global\@eqcnt\tw@ $\displaystyle\tabskip\z@{##}$\hfil
+ \tabskip\@centering&\llap{##}\tabskip\z@\cr}
+\def\endeqnarray{\@@eqncr\egroup
+ \global\advance\c@equation\m@ne$$\global\@ignoretrue}
+\def\@@eqncr{\let\@tempa\relax
+ \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}
+ \else \def\@tempa{&}\fi
+ \@tempa
+ \if@eqnsw\hbox to .01pt{}\rlap{\rm \hskip -\displaywidth\@eqnnum}%
+ \stepcounter{equation}\fi
+ \global\@eqnswtrue\global\@eqcnt\z@\cr}
+\def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M
+ \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}%
+ \edef\@currentlabel{\theequation }}
+
+% $Log: geomeqns.sty,v $
+%Revision 1.6 95/07/01 02:23:17 levy
+%fixed currentlabel inside eqnarray
+%
+%Revision 1.5 92/07/13 21:54:29 levy
+%further cleaned up the environments
+%
+%Revision 1.4 92/07/13 08:46:04 levy
+%theoremSt -> Theorem
+%
+%Revision 1.3 92/04/02 09:08:39 levy
+%*** empty log message ***
+%
+%Revision 1.2 1992/03/20 19:17:42 levy
+%*** empty log message ***
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomfig.sty b/Master/texmf-dist/tex/latex/geomsty/geomfig.sty
new file mode 100644
index 00000000000..6d2753a4df3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomfig.sty
@@ -0,0 +1,168 @@
+% $Header: /u/levy/texts/geomsty/RCS/geomfig.sty,v 1.10 95/07/20 13:42:16 levy Exp Locker: levy $
+
+\@ifundefined{multifig}{}{\endinput}
+\input geompsfi.sty
+
+% set \object@type
+
+\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
+ \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+ \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+ \@tfor \@tempa :=#2\do
+ {\if\@tempa h\advance\@tempcnta \@ne\fi
+ \if\@tempa t\advance\@tempcnta \tw@\fi
+ \if\@tempa b\advance\@tempcnta 4\relax\fi
+ \if\@tempa p\advance\@tempcnta 8\relax\fi
+ }\global\count\@currbox\@tempcnta}\@fltovf\fi
+ \def\object@type{#1}%
+ \global\setbox\@currbox\vbox\bgroup
+ \hsize\columnwidth \@parboxrestore}
+
+%
+% Higher-level environments for figures
+%
+
+\newenvironment{Table}{\@ifnextchar[%]
+ {\@Float{table}}{\@Float{table}[htbp]}}{\end@Float{table}}
+\newenvironment{Figure}{\@ifnextchar[%]
+ {\@Float{figure}}{\@Float{figure}[htbp]}}{\end@Float{figure}}
+%
+% #1 = type #2 = placement #3 = label #4 = title #5 = caption
+%
+
+\def\@Float#1[#2]#3#4#5{%
+ \begin{#1}[#2]%
+ \def\the@label{#3}%
+ \def\the@title{#4}%
+ \def\the@caption{#5}%
+}
+
+\def\end@Float#1{%
+ \expandafter\caption\expandafter[\the@title]{%
+ {\bf\the@title\ifx\the@caption\empty\else\ifx\the@title\empty\else. \fi\fi}%
+ \ignorespaces\the@caption}%
+ \expandafter\label\expandafter*\expandafter{\the@label}%
+ \end{#1}}
+
+\def\masterpicpath{} % Needs redefining -- may need change in catcodes
+
+%
+% Definitions for figures
+%
+% Driver will look for figure in file .../chap3/2 (for book) or .../2 (art)
+%
+\ifx\@style\@book
+\def\picpath{\masterpicpath chap\thechapter/\arabic{section}/}
+\else
+\def\picpath{\masterpicpath\thesection/}
+\fi
+%
+% User macros:
+% \fig, \doublefig, \triplefig
+% followed by <optional placement>{filename}{title}{caption}
+%
+\def\fig{\multifig1}
+\def\doublefig{\multifig2}
+\def\triplefig{\multifig3}
+\def\multifig#1{\ifvmode\else\unskip\fi\@ifnextchar[{\@fig#1}{\@fig#1[htbp]}}
+%
+\def\@vtick{\vrule depth6pt width.2pt}
+\def\@htick{\vrule height.2pt width6pt}
+\def\@figbox#1{\setbox0=\psfig{figure=\picpath #1}\dimen0=\wd0
+ \ifproofing
+ \vbox{\offinterlineskip
+ \hbox to \dimen0{\@htick\hfil\@htick}\kern -.4pt
+ \hbox to \dimen0{\@vtick\hfil\@vtick}\kern -6pt
+ \box0
+ \kern -6pt\hbox to \dimen0{\@vtick\hfil\@vtick}%
+ \kern -.4pt\hbox to \dimen0{\@htick\hfil\@htick}}%
+ \else\box0\fi}
+
+%
+% #1 = number of parts #2 = placement #3 = filename(=label) #4 = title
+% #5 = caption
+%
+
+\def\@fig#1[#2]{%
+ \def\@tempb{\@@fig{#1}[#2]}%
+ \def\@tempa{\egroup\expandafter\@tempb\expandafter{\thea@label}}%
+ \bgroup\@sanitize\afterassignment\@tempa\gdef\thea@label}
+
+\def\@@fig#1[#2]#3#4#5{%
+ \begin{Figure}[#2]{#3}{#4}{#5}%
+ {\hyperactivelabels
+ \centerline{\ifnum#1=1 \@figbox{#3}\else\valign{\vfil##\vfil\cr
+ \@figbox{#3-1}\cr \noalign{\hfil}\@figbox{#3-2}\cr
+ \ifnum#1>2 \noalign{\hfil}\@figbox{#3-3}\cr\fi}\fi}}%
+ \end{Figure}%
+}
+
+%
+\let\hyperactivelabels\relax % redefine as appropriate
+%
+
+\long\def\@caption#1[#2]#3{\par
+ \def\@tempa{\addcontentsline{\csname ext@#1\endcsname}{#1}}
+ \edef\@tempb{\noexpand\numberline{\csname the#1\endcsname}}
+ \expandafter\@tempa\expandafter{\@tempb\ignorespaces #2}\begingroup
+ \@parboxrestore
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{%
+ \setlanguage\language % put in a whatsit so that later \unhbox
+ % will know what language it is
+ \ignorespaces #3}\par
+ \endgroup}
+
+\newskip\captionskip
+\captionskip=10pt
+%
+% Redefined from book.sty.
+%
+\long\def\@makecaption#1#2{%
+ \vskip\captionskip
+ \setbox\@tempboxa\hbox{%
+ \ifproofing\@ifundefined{the@label}{}
+ {\hbox to 0pt{\vbox to 0pt{\vss\hbox{\tiny\the@label}\bigskip}\hss}}\fi
+ \small\sf{\bf #1. }\ignorespaces #2}%
+ \@captionwidth=\hsize \advance\@captionwidth-2\@captionmargin
+ \ifdim \wd\@tempboxa >\@captionwidth {%
+ \rightskip=\@captionmargin\leftskip=\@captionmargin
+ \unhbox\@tempboxa\par}%
+ \else
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi}
+
+% $Log: geomfig.sty,v $
+%Revision 1.10 95/07/20 13:42:16 levy
+%\captionskip
+%
+%Revision 1.9 1994/08/12 17:35:53 levy
+%allows empty title in figure (ie. \fig{filename}{}{foo})
+%> allows _ ^ \ & # $ % ~ in file names
+%
+%Revision 1.8 93/09/16 22:14:30 levy
+%language whatsit in caption
+%
+%Revision 1.7 92/07/17 13:44:23 levy
+%*** empty log message ***
+%
+%Revision 1.6 92/06/25 22:31:08 levy
+%tables
+%
+%Revision 1.5 92/06/18 16:55:16 levy
+%caption width error
+%
+%Revision 1.4 92/06/10 12:42:10 levy
+%geompsfig -> geompsfi
+%
+%Revision 1.3 92/05/27 02:08:42 levy
+%moved \hyperactivelabels to before figure (instead of caption!)
+%
+%Revision 1.2 1992/04/07 09:43:26 levy
+%commented out log line
+%
+% Revision 1.1 92/04/07 09:09:00 levy
+% Initial revision
+
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomfnt.sty b/Master/texmf-dist/tex/latex/geomsty/geomfnt.sty
new file mode 100644
index 00000000000..4e64a52bffc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomfnt.sty
@@ -0,0 +1,135 @@
+% $Header: /usr/home/levy/texts/geomsty/RCS/geomfnt.sty,v 1.2 95/07/03 14:44:31 levy Exp Locker: levy $
+% NFSS2 mods 95/06/18 by J Rawnsley
+
+\ifx\fmtname\format@e
+ \RequirePackage{amsfonts}
+ \RequirePackage{amssymb}
+\else
+ \input newlfont.sty
+ \input amsfonts.sty
+ \input amssymb.sty
+\fi
+
+\let\emptyset\varnothing
+\let\epsilon\varepsilon %to agree with figure labels; also looks better
+
+\def\hide@fi{\fi}
+\def\hide@else{\else}
+
+\ifx\DeclareMathAlphabet\@undefined
+ \def\mathss{\protect\pmathss}
+ \def\pmathss{\RIfM@\expandafter\mathss@\hide@else
+ \expandafter\nonmatherr@\expandafter\mathss\hide@fi}
+ \newmathalphabet*\mathss@{cmss}{m}{n}
+ \def\mathtt{\protect\pmathtt}
+ \def\pmathtt{\RIfM@\expandafter\mathtt@\hide@else
+ \expandafter\nonmatherr@\expandafter\mathtt\hide@fi}
+ \newmathalphabet*\mathtt@{cmtt}{m}{n}
+%
+% mods needed because of the Mittelbach-Schoepf font scheme
+%
+\def\bf{\ifmmode
+ \@warning{\string\bf\space ignored in mathmode; use \string\mathbf{...}}%
+ \else\protect\pbf\fi}
+\def\tt{\ifmmode
+ \@warning{\string\tt\space ignored in mathmode; use \string\mathtt{...}}%
+ \else\protect\ptt\fi}
+\def\rm{\ifmmode
+ \@warning{\string\rm\space ignored in mathmode; use \string\mathrm{...}}%
+ \else\protect\prm\fi}
+\def\it{\ifmmode
+ \@warning{\string\it\space ignored in mathmode; use \string\mathit{...}}%
+ \else\protect\pit\fi}
+\def\sf{\ifmmode
+ \@warning{\string\sf\space ignored in mathmode; use \string\mathss{...}}%
+ \else\protect\psf\fi}
+ \let\mathbf\bold
+\else
+ \DeclareMathAlphabet\mathss{OT1}{cmss}{m}{n}
+ \DeclareMathAlphabet\mathtt{OT1}{cmtt}{m}{n}
+ \let\text\textrm
+ \let\bold\mathbf
+\fi
+
+\let\sans\mathss
+\let\type\mathtt
+
+\def\${{\protect\pdollar}}
+\def\pdollar{\ifmmode\char`\$\else\text{\ifdim \fontdimen\@ne\font >\z@
+ \sl \else \normalshape \fi\char`\$}\fi}
+
+%
+% mod routines from amstex.sty
+%
+\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin
+ {\operator@font mod}\penalty900
+ \mkern5mu\mskip-\medmuskip}
+\def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
+ ({\operator@font mod}\,\,#1)}
+\def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
+\def\mod#1{\allowbreak\ifinner\mkern12mu
+ \else\mkern18mu\fi{\operator@font mod}\,\,#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Math extension font
+%% (from fontdef.ams)
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx\DeclareMathAlphabet\@undefined
+\new@fontshape{cmex}{m}{n}{%
+ <5>cmex7 at5pt%
+ <6>cmex7 at6pt%
+ <7>cmex7%
+ <8>cmex8%
+ <9>cmex9%
+ <10>cmex10%
+ <11>cmex10 at10.95pt%
+ <12>cmex10 at12pt%
+ <14>cmex10 at14.4pt%
+ <17>cmex10 at17.28pt%
+ <20>cmex10 at20.74pt%
+ <25>cmex10 at24.88pt%
+ }{}
+
+\extra@def{cmex}{}{}
+
+\define@mathgroup\mv@normal{3}{cmex}{m}{n}
+\define@mathgroup\mv@bold{3}{cmex}{b}{n}
+
+\new@mathgroup\cmss@group
+\define@mathgroup\mv@normal\cmss@group{cmss}{m}{n}
+\define@mathgroup\mv@bold\cmss@group{cmss}{b}{n}
+\else
+ \catcode`\ =9
+\DeclareFontShape{OMX}{cmex}{m}{n}{%
+ <-8> cmex7%
+ <8>cmex8%
+ <9>cmex9%
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>cmex10%
+ }{}%
+ \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+ \catcode`\ =10
+
+\DeclareSymbolFont{cmss}{OT1}{cmss}{m}{n}
+\fi
+
+%$Log: geomfnt.sty,v $
+%Revision 1.2 95/07/03 14:44:31 levy
+%NFSS2 changes by John Rawnsley
+%
+%Revision 1.2 95/07/03 14:31:45 levy
+%NFSS2 changes by John Rawnsley
+%
+%Revision 1.2 95/07/03 14:09:28 levy
+%NFSS2 changes by John Rawnsley
+%
+%Revision 1.2 95/07/03 14:08:08 levy
+%*** empty log message ***
+%
+%Revision 1.1 92/04/07 09:45:07 levy
+%Initial revision
+%
+% Revision 1.1 92/04/07 09:09:01 levy
+% Initial revision
diff --git a/Master/texmf-dist/tex/latex/geomsty/geomindx.sty b/Master/texmf-dist/tex/latex/geomsty/geomindx.sty
new file mode 100644
index 00000000000..368ba4a3dcc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geomindx.sty
@@ -0,0 +1,72 @@
+% $Header: /home/tampa_a/fac/levy/texts/geombook/RCS/index.sty,v 1.1 92/04/07 09:47:28 levy Exp $
+
+\@ifundefined{@margin}{}{\endinput}
+
+%
+% index and glossary macros
+%
+% the basic user-level command is \index, which, in proof mode
+% merely prints the entry on the left margin. To revert to
+% index-making behavior, type \makeindex.
+%
+
+\newif\ifmakingindex\makingindexfalse
+\def\makeindex{\if@filesw \newwrite\@indexfile
+ \immediate\openout\@indexfile=\jobname.idx
+ \makingindextrue\typeout{Writing index file \jobname.idx }\fi}
+
+\def\index#1{\@bsphack\ifproofing\marginindex{#1}\fi\ifmakingindex\begingroup
+ \set@key{#1}\@wrindex{\the\@key}\else\@esphack\fi}
+\def\marginindex#1{{\everypar{}\insert\@margin{%
+ \vbox{\marginstyle\strut #1\hfil\strut}}}}
+\def\marginstyle{\tiny \hsize=1in \parindent=0pt \hangindent=10pt
+ \hangafter=1 \rightskip=0pt plus 5em }
+\newinsert\@margin \dimen\@margin=\maxdimen \count\@margin=0 \skip\@margin=0pt
+
+%
+% change in output routine to account for new insertion class
+%
+\def\@makecol{\ifvoid\footins \setbox\@outputbox\box\@cclv
+ \else\setbox\@outputbox
+ \vbox{\boxmaxdepth \maxdepth
+ \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins}\fi
+ \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
+ \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth
+ \@texttop\dimen128=\dp\@outputbox
+ \ifvoid\@margin\else
+ \llap{\vbox to0pt {\kern4pt\box\@margin \vss}\kern .1in}\fi
+ \unvbox\@outputbox
+ \vskip-\dimen128\@textbottom}
+ \global\maxdepth\@maxdepth}
+
+%
+% But \index does not print its argument. To index a word that
+% actually appears in the text say \ix{...}. To index notation say \ixn$...$
+% or \ixninv$...$, depending on whether the word should appear or not.
+% And just for symmetry, you can also use \ixinv, which equals \index:
+%
+% Text Notation
+%
+% Visible \ix \ixn
+% Invisible \ixinv \ixninv
+%
+\def\ixinv{\index} % must not use \let, since meaning changes
+ % under \makeindex
+\def\ix#1{#1\index{#1}}
+\def\ixninv$#1${\index{$#1$}}
+\def\ixn$#1${$#1$\index{$#1$}}
+
+%
+% Some functions such as cross-referencing automatically invoke
+% indexing. The particular format is defined here.
+% The xfs for \labelindex are needed because \index doesn't expand
+%
+\def\labelindex#1{\@xf\@xf\@xf\index
+ \@xf\@xf\@xf{\@xf\cap@first\object@type\space``#1''}}
+\def\refindex#1{\index{#1}}
+{\catcode`\%=12 \gdef\refinvindex#1{\index{% #1}}}
+
+% $Log: index.sty,v $
+%Revision 1.1 92/04/07 09:47:28 levy
+%Initial revision
+%
diff --git a/Master/texmf-dist/tex/latex/geomsty/geompsfi.sty b/Master/texmf-dist/tex/latex/geomsty/geompsfi.sty
new file mode 100644
index 00000000000..d158531e711
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/geomsty/geompsfi.sty
@@ -0,0 +1,632 @@
+% $Header: /usr/home/levy/texts/geomsty/RCS/geompsfi.sty,v 1.18 95/12/06 13:40:51 levy Exp $
+
+% This is geompsfig.sty, based on psfig.tex by Trevor Darrell (as
+% modified by Stefan Bechtoslheim).
+%
+% It works with Latex and plain TeX (normally under the name geompsfi.tex).
+% Thanks to Ket Richter for working out the changes for Plain tex.
+
+% Copyright 1991, 1992, 1993 Silvio Levy
+
+% This file is part of the Geom Latex style files. It is distributed in
+% the hope that it will be useful, but WITHOUT ANY WARRANTY. The author
+% makes no representation as to its suitability for any purpose.
+
+% Permission is granted for use and non-profit distribution of this
+% file provided that this notice is clearly maintained. The right to
+% distribute this file for profit or as part of any commercial
+% product is specifically reserved for the author. If you make
+% changes to this file you cannot distribute it under the same name,
+% but you can distribute it under a different name provided it is not
+% for profit of as part of a commercial product, and provided that the
+% copyright line above and this notice are clearly maintained.
+
+% This version assumes that dimensions read from a PostScript file or
+% from a .lab file are in bp (big points). Dimensions found in the
+% source TeX file (as in \psfig{...,height=2in}) are true dimensions
+% (that is, are not scaled pt -> bp). This is all as it should be.
+
+\edef\atcatcode{\the\catcode`\@}
+\catcode`@=11
+
+\newif\ifoldlabels \oldlabelsfalse
+\expandafter\ifx\csname @ifundefined\endcsname\relax
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+\def\@iden#1{#1}
+%\newdimen\@tempdima
+\alloc@1\dimen\dimendef\insc@unt\@tempdima
+\def\@warning#1{\message{Warning: #1.}}
+\fi
+
+\@ifundefined{ps@init}{}{\endinput}
+
+\@ifundefined{hyperactivelabels}{\let\hyperactivelabels\relax}{}
+
+\newif\if@topspecials %false for Rokicki's dvips: \special is at bottom of box
+ % true for dvitps, dvi2ps
+
+\input driver.chg % driver-dependent definitions (generally a symlink)
+
+\newcount\psfc@a
+\newcount\psfc@b
+\newcount\psfc@c
+\newcount\psfc@d
+\newcount\psfc@e
+\newcount\psfc@f
+\newcount\psfc@g
+\newcount\psfc@h
+\newcount\psfc@i
+\newcount\psfc@j
+\newcount\psscale@count
+\newtoks\psfigtoks@
+% A dimension register for temporarily storing a dimension in
+% \@pDimenToSpNumber.
+\newdimen\psfig@dimen
+%
+%\newwrite\@unused
+%\def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}
+
+% Identifying message is here.
+% \typeout{psfig/tex 1.4.gcg / TeXPS}\fi
+%
+% @psdo control structure -- similar to Latex @for.
+% I redefined these with different names so that psfig can
+% be used with TeX as well as LaTeX, and so that it will not
+% be vunerable to future changes in LaTeX's internal
+% control structure.
+\def\@nnil{\@nil}
+\def\@empty{}
+\def\@psdonoop#1\@@#2#3{}
+\def\@psdo#1:=#2\do#3{\edef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
+ \expandafter\@psdoloop#2,\@nil,\@nil\@@#1{#3}\fi}
+\def\@psdoloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@ipsdoloop #3\@@#4{#5}\fi\fi}
+\def\@ipsdoloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile=\@psdonoop \else
+ #4\relax\let\@nextwhile=\@ipsdoloop\fi\@nextwhile#2\@@#3{#4}}
+\def\@tpsdo#1:=#2\do#3{\xdef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
+ \@tpsdoloop#2\@nil\@nil\@@#1{#3}\fi}
+\def\@tpsdoloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile=\@psdonoop \else
+ #4\relax\let\@nextwhile=\@tpsdoloop\fi\@nextwhile#2\@@#3{#4}}
+%
+\def\psdraft{%
+ \def\@psdraft{0}
+ %\typeout{draft level now is \@psdraft \space.}
+}
+\def\psfull{%
+ \def\@psdraft{100}
+ %\typeout{draft level now is \@psdraft \space.}
+}
+\psfull
+\newif\if@prologfile
+\newif\if@postlogfile
+\newif\if@noisy
+\def\pssilent{%
+ \@noisyfalse
+}
+\def\psnoisy{%
+ \@noisytrue
+}
+%\psnoisy
+\pssilent
+% These are for the option list:
+% a specification of the form a = b maps to calling \@p@@sa{b}.
+\newif\if@bbllx
+\newif\if@bblly
+\newif\if@bburx
+\newif\if@bbury
+\newif\if@height
+\newif\if@width
+\newif\if@rheight
+\newif\if@rwidth
+\newif\if@clip
+\newif\if@proportional
+\newif\if@scale
+\newif\if@verbose
+\def\@p@@sclip#1{\@cliptrue}
+\def\@p@@sproportional#1{\@proportionaltrue}
+\def\@p@@sfile#1{%
+ %\typeout{file is #1}
+ \def\@p@sfile{#1.ps}%
+ \def\@labfile{#1.lab}%
+}
+\def\@p@@sfigure#1{%
+ \def\@p@sfile{#1.ps}%
+ \def\@labfile{#1.lab}%
+}
+% \@pDimenToSpNumber
+% ==================
+% Convert a dimension into scaled points.
+% #1: the name of macro which will expand to the dimension in
+% scaled points, without the unit 'sp' though, i.e. as a pure
+% integer.
+% #2: the dimension (not a dimension register, use
+% \the if dimension is stored in a dimension register).
+\def\@pDimenToSpNumber #1#2{%
+ \psfig@dimen = #2\relax
+ \edef#1{\number\psfig@dimen}%
+}
+\def\@p@@sbbllx#1{%
+ %\typeout{bbllx is #1}
+ \@bbllxtrue
+ \@pDimenToSpNumber{\@p@sbbllx}{#1}%
+}
+\def\@p@@sbblly#1{%
+ %\typeout{bblly is #1}
+ \@bbllytrue
+ \@pDimenToSpNumber{\@p@sbblly}{#1}%
+}
+\def\@p@@sbburx#1{%
+ %\typeout{bburx is #1}
+ \@bburxtrue
+ \@pDimenToSpNumber{\@p@sbburx}{#1}%
+}
+\def\@p@@sbbury#1{%
+ %\typeout{bbury is #1}
+ \@bburytrue
+ \@pDimenToSpNumber{\@p@sbbury}{#1}%
+}
+\def\@p@@sheight#1{%
+ \@heighttrue
+ \@pDimenToSpNumber{\@p@sheight}{#1}%
+ %\typeout{Height is \@p@sheight}
+}
+\def\@p@@swidth#1{%
+ %\typeout{Width is #1}
+ \@widthtrue
+ \@pDimenToSpNumber{\@p@swidth}{#1}%
+}
+\def\@p@@srheight#1{%
+ %\typeout{Reserved height is #1}
+ \@rheighttrue
+ \@pDimenToSpNumber{\@p@srheight}{#1}%
+}
+\def\@p@@srwidth#1{%
+ %\typeout{Reserved width is #1}
+ \@rwidthtrue
+ \@pDimenToSpNumber{\@p@srwidth}{#1}%
+}
+\def\@p@@ssilent#1{%
+ \@verbosefalse
+}
+\def\@p@@sscale #1{%
+ \def\@p@scale{#1}%
+ \@scaletrue
+}
+
+\def\@p@@sprolog#1{\@prologfiletrue\def\@prologfileval{#1}}
+\def\@p@@spostlog#1{\@postlogfiletrue\def\@postlogfileval{#1}}
+\def\@cs@name#1{\csname #1\endcsname}
+\def\@setparms#1=#2,{\def\@tempa{#2}\ifx\@tempa\@empty
+ \@warning{bad syntax (missing = or extra comma) in argument of \string\psfig}%
+ \else\@@setparms#1=#2,\fi}
+\def\@@setparms#1=#2=,{\@cs@name{@p@@s#1}{#2}}
+%
+% Initialize the defaults.
+%
+\def\ps@init@parms{%
+ \@bbllxfalse \@bbllyfalse
+ \@bburxfalse \@bburyfalse
+ \@heightfalse \@widthfalse
+ \@rheightfalse \@rwidthfalse
+ \@scalefalse
+ \def\@p@sbbllx{}\def\@p@sbblly{}%
+ \def\@p@sbburx{}\def\@p@sbbury{}%
+ \def\@p@sheight{}\def\@p@swidth{}%
+ \def\@p@srheight{}\def\@p@srwidth{}%
+ \def\@p@sfile{}%
+ \def\@labfile{}%
+ \def\@p@scost{10}%
+ \def\@sc{}%
+ \@prologfiletrue
+ \@postlogfilefalse
+ \@clipfalse
+ \@proportionalfalse
+ \if@noisy
+ \@verbosetrue
+ \else
+ \@verbosefalse
+ \fi
+}
+%
+% Go through the options setting things up.
+%
+\def\parse@ps@parms#1{%
+ \@psdo\@psfiga:=#1\do
+ {\expandafter\@setparms\@psfiga=,}%
+}
+
+\newif\ifno@file
+\newif\ifno@bb
+\newif\ifnot@eof
+\newif\if@bbmatch
+\newif\if@crematch
+\newif\ifmathematica
+\newif\ifillustrator
+\newread\ps@stream
+\newread\lab@stream
+\newcount\@linecount
+\newcount\maxheaderlines
+\maxheaderlines=100
+
+%
+% Scan header of file, looking for ``BoundingBox'' and ``Creator'' lines
+%
+\def\scan@header{%
+ \openin\ps@stream=\@p@sfile
+ \openin\lab@stream=\@labfile
+ \ifeof\ps@stream
+ \relax %needed so the \@warning won't cause trouble
+ \@warning{cannot open \@p@sfile}
+ \no@filetrue
+ \else
+ \not@eoftrue
+ \ifno@bb \@bbmatchfalse \else \@bbmatchtrue \fi
+ \@crematchfalse
+ \catcode`\%=12
+ \catcode`\:=12 % in case punctuation is active (e.g., under french.sty)
+ \@linecount=\maxheaderlines
+ \loop
+ \read\ps@stream to \line@in
+ \global\psfigtoks@=\expandafter{\line@in}
+ \ifeof\ps@stream \not@eoffalse \fi
+ %\typeout{ looking at :: \the\psfigtoks@ }
+ \if@bbmatch \else \@bbtest{\psfigtoks@} \fi
+ \if@crematch \else \@cretest{\psfigtoks@} \fi
+ \if@crematch \if@bbmatch \not@eoffalse \fi \fi
+ \advance\@linecount-1
+ \ifnum\@linecount=0 \not@eoffalse \fi
+ \ifnot@eof \repeat
+ \fi
+ \catcode`\%=14
+}
+
+% '% ' becomes a regular character for a very short time.
+{
+ \catcode`\%=12
+ \catcode`\:=12
+ \gdef\@bbtest#1{\expandafter\@bb@\the#1%%BoundingBox:\@bbtest\@bb@}
+ \global\long\def\@bb@#1%%BoundingBox:#2#3\@bb@{\ifx\@bbtest#2
+ \else\@bbmatchtrue\expandafter\bb@cull\the\psfigtoks@\fi}
+
+ \gdef\@cretest#1{\expandafter\@cre@\the#1%%Creator:\@cretest\@cre@}
+ \global\long\def\@cre@#1%%Creator:#2#3\@cre@{\ifx\@cretest#2
+ \else\@crematchtrue\@mathtest{\psfigtoks@}\@illtest{\psfigtoks@}\fi}
+}
+
+%
+% Takes action if ``Creator'' line contains ``Mathematica'' or ``Illustrator''
+%
+\def\@mathtest#1{\expandafter\@math@\the#1Mathematica\@mathtest\@math@}
+\long\def\@math@#1Mathematica#2#3\@math@{\ifx\@mathtest#2
+ \else\mathematicatrue \fi}
+
+\def\@illtest#1{\expandafter\@ill@\the#1Illustrator\@illtest\@ill@}
+\long\def\@ill@#1Illustrator#2#3\@ill@{\ifx\@illtest#2
+ \else\illustratortrue \fi}
+
+\def\bb@cull#1:{\expandafter\bb@@cull\@iden}
+\long\def\bb@@cull#1 #2 #3 #4 {%
+ \@pDimenToSpNumber{\@p@sbbllx}{#1bp}%
+ \@pDimenToSpNumber{\@p@sbblly}{#2bp}%
+ \@pDimenToSpNumber{\@p@sbburx}{#3bp}%
+ \@pDimenToSpNumber{\@p@sbbury}{#4bp}%
+ \no@bbfalse
+}
+
+% Compute \@bbw and \@bbh, the width and height of the
+% bounding box.
+\def\compute@bb{%
+ \no@bbfalse
+ \if@bbllx \else \no@bbtrue \fi
+ \if@bblly \else \no@bbtrue \fi
+ \if@bburx \else \no@bbtrue \fi
+ \if@bbury \else \no@bbtrue \fi
+ \scan@header
+ \ifno@file
+ \else
+ \ifno@bb
+ \@warning{no bounding box found in \@p@sfile}
+ \no@filetrue
+ \else
+ % Now compute the size of the bounding box.
+ \psfc@c=\@p@sbburx
+ \psfc@b=\@p@sbbury
+ \advance\psfc@c by -\@p@sbbllx
+ \advance\psfc@b by -\@p@sbblly
+ \edef\@bbw{\number\psfc@c}
+ \edef\@bbh{\number\psfc@b}
+ %\typeout{\string\compute@bb: bbh = \@bbh, bbw = \@bbw}
+ \fi
+ \fi
+}
+
+%
+% \in@hundreds performs #1 * (#2 / #3) correct to the hundreds,
+% then leaves the result in \@result.
+%
+% note: #3 should be a big number, or a multiple of 10.
+%
+\def\in@hundreds #1#2#3{%
+ \psfc@g=#2
+ \psfc@d=#3
+ \divide\psfc@d 10
+ \psfc@a=\psfc@g % First two digits #2/#3.
+ \divide\psfc@a by \psfc@d
+ \psfc@f=\psfc@a
+ \multiply\psfc@f by \psfc@d
+ \advance\psfc@g by -\psfc@f
+ \multiply\psfc@g by 10
+ \psfc@f=\psfc@g % Third digit of #2/#3.
+ \divide\psfc@f by \psfc@d
+ \psfc@j=\psfc@f
+ \multiply\psfc@j by \psfc@d
+ \advance\psfc@g by -\psfc@j
+ \multiply\psfc@g by 10
+ \psfc@j=\psfc@g % Third digit.
+ \divide\psfc@j by \psfc@d
+ \psfc@h=#1\psfc@i=0
+ \psfc@e=\psfc@h
+ \multiply\psfc@e by \psfc@a
+ \advance\psfc@i by \psfc@e
+ \psfc@e=\psfc@h
+ \divide\psfc@e by 10
+ \multiply\psfc@e by \psfc@f
+ \advance\psfc@i by \psfc@e
+ %
+ \psfc@e=\psfc@h
+ \divide\psfc@e by 100
+ \multiply\psfc@e by \psfc@j
+ \advance\psfc@i by \psfc@e
+ \divide\psfc@i 10
+ %
+ \edef\@result{\number\psfc@i}
+}
+% Scale a value #1 by the current scaling factor and reassign the new
+% scaled value.
+\def\@ScaleInHundreds #1{%
+ \in@hundreds{#1}{\@p@scale}{100}%
+ \edef#1{\@result}%
+}
+%
+%
+% Compute width from height.
+\def\compute@wfromh{%
+ % computing : width = height * (bbw / bbh)
+ \in@hundreds{\@p@sheight}{\@bbw}{\@bbh}%
+ %\typeout{ \@p@sheight * \@bbw / \@bbh, = \@result }
+ \edef\@p@swidth{\@result}%
+ %\typeout{w from h: width is \@p@swidth}%
+}
+%
+% Compute height from width.
+%
+\def\compute@hfromw{%
+ % computing : height = width * (bbh / bbw)
+ \in@hundreds{\@p@swidth}{\@bbh}{\@bbw}%
+ %\typeout{ \@p@swidth * \@bbh / \@bbw = \@result }
+ \edef\@p@sheight{\@result}%
+ %\typeout{h from w : height is \@p@sheight}%
+}
+%
+% Compute height and width when both are given and proportionality
+% must be preserved.
+%
+\def\compute@minhw{%
+ \in@hundreds{\@p@swidth}{\@bbh}{\@bbw}%
+ \ifnum\@p@sheight<\@result
+ \in@hundreds{\@p@sheight}{\@bbw}{\@bbh}%
+ \edef\@p@swidth{\@result}%
+ \else
+ \edef\@p@sheight{\@result}%
+ \fi
+}
+%
+% Compute height and width, i.e. \@p@sheight and \@p@swidth.
+%
+\def\compute@handw{%
+ % If height is given.
+ \if@height
+ % If width is given
+ \if@width
+ \if@proportional
+ \compute@minhw
+ \fi
+ \else
+ % Height, no width: compute width.
+ \compute@wfromh
+ \fi
+ \else
+ % No height.
+ \if@width
+ % Width is given, no height though: compute it.
+ \compute@hfromw
+ \else
+ % Neither width no height is give.
+ \edef\@p@sheight{\@bbh}
+ \edef\@p@swidth{\@bbw}
+ \fi
+ \fi
+}
+% Compute the amount of space to reserve. Unless defined
+% using rheight and rwidth when \psfig is called, these values
+% default to \@p@sheight and \@p@swidth.
+\def\compute@resv{%
+ \if@rheight \else \edef\@p@srheight{\@p@sheight} \fi
+ \if@rwidth \else \edef\@p@srwidth{\@p@swidth} \fi
+}
+%
+%
+% \psfig
+% ======
+% usage: \psfig{file=, height=, width=, bbllx=, bblly=, bburx=, bbury=,
+% rheight=, rwidth=, clip=, scale=, proportional=}
+%
+% "clip=" and "proportional=" are switches and take no value,
+% but the `=' must be present.
+%
+\def\partest{\par}
+\def\psfig#1{%
+ \vbox {%
+ \offinterlineskip
+ \ps@init@parms
+ \parse@ps@parms{#1}%
+ % Compute any missing sizes.
+ \compute@bb
+ \ifno@file\vbox{\hbox{{\tt\@p@sfile} not found}}%
+ \else
+ \compute@handw
+ \compute@resv
+ \if@scale
+ %\if@verbose \typeout{psfig: scaling by \@p@scale}\fi
+ % We now scale the width and height as reported to the PS printer.
+ \@ScaleInHundreds{\@p@swidth}%
+ \@ScaleInHundreds{\@p@sheight}%
+ \@ScaleInHundreds{\@p@srwidth}%
+ \@ScaleInHundreds{\@p@srheight}%
+ \fi
+ %
+ \ifnum\@p@scost<\@psdraft
+ %\if@verbose \typeout{psfig: including \@p@sfile \space}\fi
+ \if@topspecials\do@specials\fi
+ % Create a vbox to reserve the proper amount of space for the figure.
+ \vbox to \@p@srheight sp{%
+ \hbox to \@p@srwidth sp{}%
+ \vss
+ }%
+ \if@topspecials\else\do@specials\fi
+ \ifeof\lab@stream
+ %\if@verbose\typeout{psfig: no file \@labfile \space found}\fi
+ \else{%
+ \hyperactivelabels
+ \not@eoftrue
+ \loop
+ \read\lab@stream to \line@in \ifx\line@in\partest\else\line@in\fi
+ \ifeof\lab@stream \not@eoffalse \fi
+ \ifnot@eof \repeat
+ }\fi
+ \else
+ % Draft mode: reserve the space for the figure and print the path name.
+ \vbox to \@p@srheight sp{%
+ \hbox to \@p@srwidth sp{%
+ \if@verbose
+ \@p@sfile
+ \fi
+ }%
+ \vss
+ }%
+ \fi
+ \fi
+ }%
+}
+
+\def\do@specials{\ps@init\ps@begin
+ \if@clip
+ %\if@verbose \typeout{(clip)} \fi
+ \ps@clip \fi
+ \if@prologfile \ps@prolog \fi \ps@include \if@postlogfile \ps@postlog \fi
+ \ps@end}
+
+\newbox\label@box
+\newdimen\x@lab \newdimen\y@lab
+\newdimen\x@aux \newdimen\y@aux
+\newdimen\hair\hair=3pt
+\def\setlabel#1#2#3#4#5{%
+ \setbox\label@box\hbox{$#1$}%
+ \x@lab.5\wd\label@box \x@lab#4\x@lab
+ \y@lab.5\ht\label@box\advance\y@lab.5\dp\label@box \y@lab#5\y@lab
+% rotate lab clockwise by 22.5 degrees to get aux
+ \x@aux.92388\x@lab \advance\x@aux.38268\y@lab
+ \y@aux-.38268\x@lab \advance\y@aux.92388\y@lab
+% choose
+ \ifdim\x@aux>0pt
+ \ifdim\y@aux>0pt
+ \ifdim\x@aux>\y@aux\advance\x@lab.7071\hair\advance\y@lab.7071\hair
+ \else\advance\y@lab\hair\fi
+ \else
+ \ifdim\x@aux>-\y@aux\advance\x@lab\hair
+ \else\advance\x@lab.7071\hair\advance\y@lab-.7071\hair\fi
+ \fi
+ \else
+ \ifdim\y@aux>0pt
+ \ifdim\x@aux>-\y@aux\advance\x@lab-.7071\hair\advance\y@lab.7071\hair
+ \else\advance\x@lab-\hair\fi
+ \else
+ \ifdim\x@aux>\y@aux\advance\y@lab-\hair
+ \else
+ \ifdim\x@aux<0pt
+ \advance\x@lab-.7071\hair\advance\y@lab-.7071\hair\fi
+ \fi
+ \fi
+ \fi
+ \advance\x@lab.5\wd\label@box
+ \advance\y@lab.5\ht\label@box\advance\y@lab.5\dp\label@box
+ \x@aux=#2bp \ifoldlabels \else \advance\x@aux by -\@p@sbbllx sp \fi
+ \y@aux=#3bp \ifoldlabels \else \advance\y@aux by -\@p@sbblly sp \fi
+ \in@hundreds{\x@aux}{\@p@swidth}{\@bbw}
+ \edef\@xpos{\@result}
+ \in@hundreds{\y@aux}{\@p@sheight}{\@bbh}
+ \edef\@ypos{\@result}
+ \vbox to 0pt{%
+ \vss\hbox to\@p@srwidth sp{\hskip \@xpos sp \hskip-\x@lab
+ \box\label@box\hss}\vskip \@ypos sp \vskip-\y@lab}}
+
+\catcode`@=\atcatcode
+
+% $Log: geompsfi.sty,v $
+%Revision 1.18 95/12/06 13:40:51 levy
+%made geompsfi.tex work (\ifx\@ifundefined was wrong!)
+%
+%Revision 1.17 1994/06/23 04:36:58 levy
+%added \ifoldlabels for compatibility with behavior before version 1.11
+%
+%Revision 1.16 1994/04/29 00:19:21 levy
+%combined with geompsfi.tex
+%
+%Revision 1.16 1994/04/29 00:03:40 levy
+%leave plenty of space so patch geompsfi.tex works
+%
+%Revision 1.15 1994/04/03 07:07:57 levy
+%removed hair correction when x@lab and y@lab are both zero
+%
+%Revision 1.14 1993/09/16 22:22:38 levy
+%\catcode`\:=12 % in case punctuation is active (e.g., under french.sty)
+%
+%Revision 1.13 1993/08/27 23:04:27 levy
+%removed "true" from PS dimensions (so it works with \magnifications)
+%
+%Revision 1.12 93/08/16 12:28:46 levy
+%\ifundefined\hyperactivelabels
+%
+%Revision 1.11 93/07/19 02:17:24 levy
+%.lab coordinates should be world coordinates
+%
+%Revision 1.10 93/03/05 10:59:38 levy
+%error message when arguments of \psfig are incorrect
+%
+%Revision 1.9 1993/01/13 15:50:36 levy
+%expressed things in bp (correctly)
+%
+%Revision 1.8 1993/01/10 20:56:04 levy
+%inhundreds -> inthousands
+%
+%Revision 1.6 92/07/13 11:12:40 levy
+%better error message when bounding box not found
+%
+%Revision 1.5 92/06/15 22:05:22 levy
+%proportional scaling
+%
+%Revision 1.4 92/06/10 13:03:45 levy
+%extend header from 10 to 15 lines
+%
+%Revision 1.3 92/06/10 12:41:14 levy
+%scan header for "Creator" line
+%
+%Revision 1.2 92/04/07 09:09:17 levy
+%*** empty log message ***
+%
+% Revision 1.1 92/03/31 14:12:38 levy
+% Initial revision
+