summaryrefslogtreecommitdiff
path: root/macros/lamstex/inputs/lamstex.stb
diff options
context:
space:
mode:
Diffstat (limited to 'macros/lamstex/inputs/lamstex.stb')
-rw-r--r--macros/lamstex/inputs/lamstex.stb317
1 files changed, 317 insertions, 0 deletions
diff --git a/macros/lamstex/inputs/lamstex.stb b/macros/lamstex/inputs/lamstex.stb
new file mode 100644
index 0000000000..522d48bde7
--- /dev/null
+++ b/macros/lamstex/inputs/lamstex.stb
@@ -0,0 +1,317 @@
+% LAMSTEX.STB VERSION 2.0
+% COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+% THIS FILE SHOULD NOT BE CHANGED IN ANY WAY.
+
+\catcode`\@=11
+\let\alloc@\alloc@@
+\def\adjustpunct@#1{\count@\lastkern
+ \ifnum\count@=\z@#1\else
+ \ifnum\count@>\tw@#1\else
+ \ifnum\count@<-\tw@#1\else
+ \unkern\unkern\setboxzl@
+ \skip@\lastskip\unskip
+ \count@@\lastpenalty\unpenalty
+ \ifnum\count@=\tw@\unskip\setboxzl@\fi
+ \ifdim\skip@=\z@\else\hskip\skip@\fi
+ #1%
+ \ifnum\count@=\tw@\null\hfill\fi
+ \penalty\count@@
+ \fi\fi\fi}
+\def\ignorepars@{\FNSS@\ignorepars@@}
+\def\ignorepars@@{\ifx\next\par\DN@\par{\FN@\ignorepars@@}\else
+ \let\next@\relax\fi\next@}
+\newcount\ctype@
+\newcount\Ctype@
+\newif\ifleftcolbreak@
+\def\cbreak@#1#2{\ifcase\ctype@#1\or\nobreak#2\else
+ \global\leftcolbreak@true
+ \ifdim\pagetotal>\pageheight@\global\leftcolbreak@false\fi
+ \global\Ctype@\ctype@\break\fi\ctype@\z@}
+\newif\ifshortlastcolumn@
+\newif\ifletter@
+\newtoks\marktoks@i
+\newtoks\marktoks@ii
+\newtoks\marktoks@iii
+\newtoks\marktoks@iv
+\newtoks\marktoks@v
+\newif\ifentry@
+\newcount\dii@
+\def\Topage@#1#2{\DN@{#2}\ifx\next@\frompage@\pagecs@{\frompage@}%
+ \else\pagecs@{\frompage@\hbox{--}#2}\fi\egroup\ignorepars@}
+\newdimen\pageheight@
+\pageheight@\vsize
+\newdimen\doublepageheight@
+\doublepageheight@2\pageheight@
+\advance\doublepageheight@1pc
+\newdimen\pagewidth@
+\pagewidth@\hsize
+\def\makeheadline{\vbox to\z@{\vskip-22.5pt\hbox to\pagewidth@
+ {\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}%
+\def\makefootline{\baselineskip24\p@\hbox to\pagewidth@{\the\footline}}%
+\newif\iffirstindexpage@
+\def\makeindex{\checkmainfile@\par\vfill\break
+ \begingroup
+ \let\asterisk*%
+ \def\lkerns@{\null\kern\m@ne sp\kern\@ne sp}%
+ \def\nkerns@{\null\kern-\tw@ sp\kern\tw@ sp}%
+ \def\nocolumnbreak{\ctype@\@ne}%
+ \def\columnbreak{\ctype@\tw@}%
+ \def\newcolumn{\ctype@\thr@@}%
+ \def\shortlastcolumn{\shortlastcolumn@true}%
+ \def\LETTER##1{\par
+ \mark{}%
+ \cbreak@{\penalty-200 \bigskip}\bigskip
+ \letter@true\centerline{\bf##1}\nobreak\medskip}%
+ \def\Entry##1##2##3##4##5##6##7{\par\entry@true
+ \marktoks@i{##3}\marktoks@ii{##4}\marktoks@iii{##5}%
+ \marktoks@iv{##6}\marktoks@v{##7}%
+ \ifcase##1%
+ \or
+ \ifletter@\else\mark{}\fi
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{10{\the\marktoks@i}}%
+ \hangafter\@ne\hangindent.5em{##3}%
+ \or
+ \ifcase##2%
+ \ifletter@\else\mark{}\fi
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{20{\the\marktoks@i}{\the\marktoks@ii}}%
+ \hangafter\@ne\hangindent.5em{##3}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent1.5em\quad{##4}%
+ \or
+ \mark{10{\the\marktoks@i}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{21{\the\marktoks@i}{\the\marktoks@ii}}%
+ \hangafter\@ne\hangindent1.5em\quad{##4}%
+ \fi
+ \or
+ \ifcase##2%
+ \ifletter@\else\mark{}\fi
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{30{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}}%
+ \hangafter\@ne\hangindent.5em{##3}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}%
+ \or
+ \mark{10{\the\marktoks@i}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{31{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}}%
+ \hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}%
+ \or
+ \mark{2\number\dii@{\the\marktoks@i}{\the\marktoks@ii}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{32{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}}%
+ \hangafter\@ne\hangindent2.5em\qquad{##5}%
+ \fi
+ \or
+ \ifcase##2%
+ \ifletter@\else\mark{}\fi
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{40{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}}%
+ \hangafter\@ne\hangindent.5em{##3}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}%
+ \or
+ \mark{10{\the\marktoks@i}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{41{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}}%
+ \noindent@\hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}%
+ \or
+ \mark{2\number\dii@{\the\marktoks@i}{\the\marktoks@ii}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{42{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}}%
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}%
+ \or
+ \mark{3\number\dii@{\the\marktoks@i}{\the\marktoks@ii}%
+ {\the\marktoks@iii}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{43{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}}%
+ \hangafter\@ne\hangindent3.5em\qquad\quad{##6}%
+ \fi
+ \or
+ \ifcase##2%
+ \ifletter@\else\mark{}\fi
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{50{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}{\the\marktoks@v}}%
+ \hangafter\@ne\hangindent.5em{##3}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent4.5em\qquad\qquad{##7}%
+ \or
+ \mark{10{\the\marktoks@i}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{51{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}{\the\marktoks@v}}%
+ \hangafter\@ne\hangindent1.5em\quad{##4}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent4.5em\qquad\qquad{##7}%
+ \or
+ \mark{2\number\dii@{\the\marktoks@i}{\the\marktoks@ii}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{52{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}{\the\marktoks@v}}%
+ \hangafter\@ne\hangindent2.5em\qquad{##5}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent3.5em\qquad\quad{##6}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent4.5em\qquad\qquad{##7}%
+ \or
+ \mark{3\number\dii@{\the\marktoks@i}{\the\marktoks@ii}%
+ {\the\marktoks@iii}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{53{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}{\the\marktoks@v}}%
+ \hangafter\@ne\hangindent3.5em\qquad\quad{##6}\par\nobreak
+ \noindent@\hangafter\@ne\hangindent4.5em\qquad\qquad{##7}%
+ \or
+ \mark{4\number\dii@{\the\marktoks@i}{\the\marktoks@ii}%
+ {\the\marktoks@iii}{\the\marktoks@iv}}%
+ \cbreak@\relax\relax
+ \noindent@
+ \mark{54{\the\marktoks@i}{\the\marktoks@ii}{\the\marktoks@iii}%
+ {\the\marktoks@iv}{\the\marktoks@v}}%
+ \hangafter\@ne\hangindent4.5em\qquad\qquad{##7}%
+ \fi
+ \fi
+ \dii@##2\relax
+ \letter@false
+ \ignorepars@}%
+ \def\Page##1{\ifentry@\adjustpunct@,\enspace\else\adjustpunct@, \fi
+ \entry@false{##1}\ignorepars@}%
+ \def\Pagespan##1{\ifentry@\adjustpunct@,\enspace\else\adjustpunct@, \fi
+ \entry@false\def\frompage@{##1}{##1}\ignorepars@}%
+ \def\Topage##1{\DN@{##1}\ifx\next@\frompage@
+ \else\hbox{--}{##1}\fi\ignorepars@}%
+ \def\PageSpan##1##2{\ifentry@\adjustpunct@,\enspace\else\adjustpunct@, \fi
+ \entry@false\def\pagecs@{##1}\def\frompage@{##2}%
+ \bgroup\let\Topage\Topage@\ignorepars@}%
+ \def\Xref##1{\ifentry@\else
+ \def\See####1{\adjustpunct@\semicolon@\space
+ {\it see~also\/}~####1}{##1}\fi\ignorepars@}%
+ \def\Morexref##1{\ifentry@\else
+ \def\See####1{\adjustpunct@, ####1}{##1}\fi\ignorepars@}%
+ \def\Entryxref##1##2##3##4##5##6##7##8{%
+ \Entry{##1}{##2}{##3}{##4}{##5}{##6}{##7}%
+ \def\See####1{\adjustpunct@, {\it see\/}~####1}{##8}\ignorepars@}%
+ \hsize3in
+ \global\vsize\doublepageheight@
+ \maxdepth\maxdimen
+ \global\firstindexpage@true
+ \global\advance\vsize-60\p@
+ \everypar{}\parindent\z@
+ \rightskip\z@ plus3em \spaceskip.3333em \xspaceskip.5em
+ \output{\doublecolumns@}%
+ \input\mainfile@.xdx
+ \mark{}%
+ \output{\balancecolumns@}\vfil\break\endgroup
+ \global\vsize\pageheight@}
+\def\makeindex@W{Index}
+\def\combinecolumns@{%
+ \setbox\outbox@\vbox{\makeheadline
+ \vbox to\pageheight@{\boxmaxdepth\maxdepth
+ \iffirstindexpage@
+ \vbox to30\p@{\vskip10\p@
+ \hbox to\pagewidth@{\hfil\bf\uppercase\expandafter{\makeindex@W}\hfil}%
+ \vfil}%
+ \nointerlineskip
+ \fi
+ \wd\z@\hsize\wd\tw@\hsize
+ \setboxz@h to\pagewidth@{\box\z@\kern.5in\box\tw@}%
+ \dimen@\dp\z@\box\z@\kern-\dimen@\vfill}%
+ \makefootline}%
+ {\noexpands@\let\style=\relax
+ \shipout@\box\outbox@
+ }%
+ \global\vsize\doublepageheight@
+ \global\firstindexpage@false
+ \advancepageno}
+\newdimen\prevcoldepth@
+\def\doublecolumns@{%
+ \dimen@\pageheight@\iffirstindexpage@\advance\dimen@-30\p@\fi
+ \ifleftcolbreak@
+ \global\leftcolbreak@false
+ \vbox to\dimen@{\dimen@\dp\@cclv\unvbox\@cclv
+ \ifnum\Ctype@=\thr@@\kern-\dimen@\vfill\fi}%
+ \allowbreak
+ \else
+ \splittopskip\topskip\splitmaxdepth\maxdepth
+ \setbox\z@\vsplit\@cclv to\dimen@
+ \ifnum\Ctype@=\z@\global\Ctype@\@ne\fi
+ \ifcase\Ctype@\or
+ \setbox\tw@\vsplit\@cclv to\dimen@\global\prevcoldepth@\dp\tw@
+ \else
+ \global\prevcoldepth@\dp\@cclv
+ \setbox\tw@\vbox to\dimen@{\unvbox\@cclv
+ \ifnum\Ctype@=\thr@@\kern-\prevcoldepth@\vfill\fi}%
+ \fi
+ \combinecolumns@
+ \ifcase\Ctype@\or
+ \expandafter\continue@\splitbotmark{}\relax\relax\relax\relax
+ \relax\relax\continue@
+ \else\expandafter\continue@\botmark{}\relax\relax\relax\relax
+ \relax\relax\continue@
+ \fi
+ \ifvoid\@cclv\else\unvbox\@cclv\penalty\outputpenalty\fi
+ \fi
+ \global\Ctype@\z@}
+\def\continue@#1#2#3#4#5#6#7#8\continue@{\def\next@{#1}\ifx\next@\empty
+ \else
+ \noindent@#3 ({\it continued\/})\par
+ \ifnum#1>\@ne\noindent@\enspace(#4 {\it continued\/})\par\fi
+ \ifnum#1>\tw@\noindent@\enspace(#5 {\it continued\/})\par\fi
+ \ifnum#1>\thr@@\noindent@\enspace(#6 {\it continued\/})\par\fi
+ \ifnum#1>4 \noindent@\enspace(#7 {\it continued\/})\par\fi
+ \ifvoid\@cclv
+ \global\advance\prevcoldepth@-\prevdepth\kern\prevcoldepth@
+ \else
+ \skip@\baselineskip\advance\skip@\parskip
+ \advance\skip@-\topskip\advance\skip@-\prevdepth
+ \vskip\skip@
+ \fi
+ \fi}
+\def\balancecolumns@{\setbox\z@\vbox{\unvbox\@cclv\unskip}%
+ \dimen@\ht\z@\advance\dimen@\topskip\advance\dimen@-\baselineskip
+ \divide\dimen@\tw@
+ \splittopskip\topskip
+ \global\dimen@i\dimen@
+ {\vbadness\@M
+ \loop
+ \global\setbox\thr@@\copy\z@
+ \global\setbox\@ne\vsplit\thr@@ to\dimen@i
+ \ifdim\ht\thr@@>\dimen@i\global\advance\dimen@i\p@
+ \repeat}%
+ \setbox\z@\vbox to\dimen@i{\unvbox\@ne}%
+ \setbox\tw@\vbox to\dimen@i{\dimen@\dp\thr@@\unvbox\thr@@
+ \ifshortlastcolumn@\kern-\dimen@\vfill\fi}%
+ \combinecolumns@}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2\allocationnumber\count1#1
+ \global#3#5\allocationnumber
+ \wlog{\string#5\string#2\the\allocationnumber}}
+\catcode`\@=\active