% SLITEX VERSION 2.09 <14 January 1992> % Copyright (C) 1992 by Leslie Lamport \everyjob{\typeout{SliTeX Version 2.09 <14 January 1992>}} \immediate\write10{SliTeX Version 2.09 <14 January 1992>} % NOTES FOR DEFINING FONTS AND STYLES FOR SLIDES % Every font definition -- \rm, \it, etc. must \def\@currfont to itself. % Every size definition such as \normalsize is defined to be % \@normalsize % \def\@currsize{\@normal}\rm % commands to set: % \baselineskip % \lineskip % the ...displayskip and ...displayshortskip parameters % \strutbox % \parskip and \@parskip % where \@normal makes all the font definitions. % \@normal must test the switch @visible and define its % fonts equal to the visible or the invisible versions accordingly. \message{hacks,} % ********************************************** % * HACKS FOR SLIDE MACROS * % ********************************************** % % \@gobbletoend{FOO} gobbles all text up to and including the % next \end{FOO}. Must be used inside an \if, right before the \fi. \def\@gobbletoend#1{\def\@argend{#1}\@ggobtoend} \long\def\@ggobtoend#1\end#2{\@xfi\def\@tempa{#2}% \ifx\@tempa\@argend\else\@ggobtoend\fi} \def\@xfi{\fi} \message{slides,} % ********************************************** % * SLIDE MACROS * % ********************************************** % % Switches: % @bw : true if making black and white slides % @visible : true if visible output to be produced. % @makingslides : true if executing \blackandwhite or \colorslides \newif\if@bw \newif\if@visible \newif\if@onlyslidesw \@onlyslideswfalse \newif\if@onlynotesw \@onlynoteswfalse \newif\if@makingslides % Counters % slide = slide number % overlay = overlay number for a slide % note = note number for a slide \countdef\c@slide=0 \c@slide=0 \def\cl@slide{} \countdef\c@overlay=1 \c@overlay=0 \def\cl@overlay{} \countdef\c@note=2 \c@note=0 \def\cl@note{} \@addtoreset{overlay}{slide} \@addtoreset{note}{slide} % Redefine page counter to some other number. % The page counter will always be zero except when putting out an % extra page for a slide, note or overlay. % \@definecounter{page} \@addtoreset{page}{slide} \@addtoreset{page}{note} \@addtoreset{page}{overlay} \def\theslide{\@arabic\c@slide} \def\theoverlay{\theslide-\@alph\c@overlay} \def\thenote{\theslide-\@arabic\c@note} % \@setlimits \LIST \LOW \HIGH % % Assumes that \LIST = RANGE1,RANGE2,...,RANGEn (n>0) % Where RANGEi = j or j-k. % % Then \@setlimits globally sets % (i) \LIST := RANGE2, ... , RANGEn % (ii) \LOW := p % (iii) \HIGH := q % where either RANGE1 = p-q or RANGE1 = p and q=p. \def\@sl@getargs#1-#2-#3\relax#4#5{\xdef#4{#1}\xdef#5{#2}} \def\@sl@ccdr#1,#2\relax#3#4{\xdef#3{#1-#1-}\xdef#4{#2}} \def\@setlimits #1#2#3{\expandafter\@sl@ccdr#1\relax\@sl@gtmp #1% \expandafter\@sl@getargs\@sl@gtmp\relax#2#3} % \onlyslides{LIST} ::= % BEGIN % @onlyslidesw := true % \@doglslidelist :=G LIST,999999,999999 % if @onlynotesw = true % else @onlynotesw := true % \@doglnotelist :=G LIST,999999,999999 % fi % message: Only Slides LIST % END \def\onlyslides#1{\@onlyslideswtrue\gdef\@doglslidelist{#1,999999,999999}% \if@onlynotesw \else \@onlynoteswtrue\gdef\@doglnotelist{999999,999999}\fi \typeout{Only Slides #1}} % \onlynotes{LIST} ::= % BEGIN % @onlynotesw := true % \@doglnotelist :=G LIST,999999,999999 % if @onlyslidesw = true % else \@onlyslidesw := true % \@doglslidelist{999999,999999} % fi % message: Only Notes LIST % END \def\onlynotes#1{\@onlynoteswtrue\gdef\@doglnotelist{#1,999999,999999}% \if@onlyslidesw \else \@onlyslideswtrue\gdef\@doglslidelist{999999,999999}\fi \typeout{Only Notes #1}} % \blackandwhite #1 ::= % \newpage % page counter := 0 % @bw := T % @visible := T % if @onlyslidesw = true % then \@doslidelist := \@doglslidelist % \@setlimits\@doslidelist\@doslidelow\@doslidehigh % fi % if @onlynotesw = true % then \@donotelist := \@doglnotelist % \@setlimits\@donotelist\@donotelow\@donotehigh % fi % \normalsize % Note, this sets font to \rm , which sets % % \@currfont to \rm % counter slidenumber := 0 % counter note := 0 % counter overlay := 0 % @makingslides := T % input #1 % @makingslides := F \def\blackandwhite#1{\newpage\setcounter{page}{0}\@bwtrue\@visibletrue \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}% \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi \if@onlynotesw \xdef\@donotelist{\@doglnotelist}% \@setlimits\@donotelist\@donotelow\@donotehigh\fi \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}% \setcounter{note}{0}\@makingslidestrue\input #1\@makingslidesfalse} % \colors{COLORS} ::= % for \@colortemp := COLORS % do \csname \@colortemp \endcsname == \@color{\@colortemp} od % if \@colorlist = empty % then \@colorlist := COLORS % else \@colorlist := \@colorlist , COLORS % fi % \def\colors#1{\@for\@colortemp:=#1\do{\expandafter \xdef\csname\@colortemp\endcsname{\noexpand\@color{\@colortemp}}}\ifx \@colorlist\@empty \gdef\@colorlist{#1}% \else \xdef\@colorlist{\@colorlist,#1}\fi} \def\@colorlist{} % \colorslides{FILE} ::= % \newpage % page counter := 0 % @bw := F % for \@currcolor := \@colorlist % do @visible := T % if @onlyslidesw = true % then \@doslidelist := \@doglslidelist % \@setlimits\@doslidelist\@doslidelow\@doslidehigh % fi % if @onlynotesw = true % then \@donotelist := \@doglnotelist % \@setlimits\@donotelist\@donotelow\@donotehigh % fi % \normalsize % counter slide := 0 % counter overlay := 0 % counter note := 0 % type message % generate color layer output page % @makingslides := T % input #1 % @makingslides := F % od \def\colorslides#1{\newpage\setcounter{page}{0}\@bwfalse \@for\@currcolor:=\@colorlist\do {\@visibletrue \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}% \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi \if@onlynotesw \xdef\@donotelist{\@doglnotelist}% \@setlimits\@donotelist\@donotelow\@donotehigh\fi \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}% \setcounter{note}{0}\typeout{color \@currcolor}% \newpage \begin{huge}% \begin{center}% COLOR LAYER\\[.75in]% \@currcolor \end{center}% \end{huge}% \newpage \@makingslidestrue \input #1 \@makingslidesfalse}} % \slide COLORS ::= % BEGIN % \stepcounter{slide} % \@slidesw :=G T % if @onlyslidesw = true % set \@slidesw = T iff page to % then % be output % while \c@slide > \@doslidehigh % do \@setlimits\@doslidelist\@doslidelow\@doslidehigh od % if \c@slide < \@doslidelow % then \@slidesw := F % fi % fi % if \@slidesw = T % then \@slidesw :=G F % \begingroup % if @bw = true % then \@slidesw :=G T % else \@color{COLORS} % \if@visible then \@slidesw :=G T \fi % fi % \endgroup % fi % if \@slidesw = T % then \newpage % \thispagestyle{slide} % else \end{slide} % \@gobbletoend{slide} % fi % END % \endslide ::= % BEGIN % \par\break % END \def\slide#1{\stepcounter{slide}\gdef\@slidesw{T}\if@onlyslidesw \@whilenum \c@slide >\@doslidehigh\relax \do{\@setlimits\@doslidelist\@doslidelow\@doslidehigh}\ifnum \c@slide <\@doslidelow\relax\gdef\@slidesw{F}\fi\fi \if\@slidesw T\gdef\@slidesw{F}\begingroup\if@bw\gdef\@slidesw{T}\else \@color{#1}\if@visible \gdef\@slidesw{T}\fi\fi\endgroup\fi \if\@slidesw T\newpage\thispagestyle{slide}% \else\end{slide}\@gobbletoend{slide}\fi} \def\endslide{\par\break} % \overlay COLORS ::= % BEGIN % \stepcounter{overlay} % \@slidesw :=G T % if @onlyslidesw = T % set \@slidesw = T iff page to % then % be output % if \c@slide < \@doslidelow % then \@slidesw :=G F % fi % fi % if \@slidesw = T % \@slidesw :=G F % \begingroup % if @bw = true % then \@slidesw :=G T % else \@color{COLORS} % \if@visible then \@slidesw :=G T \fi % fi % \endgroup % fi % if \@slidesw = T % then \newpage % \thispagestyle{overlay} % else \end{overlay} % \@gobbletoend{overlay} % fi % END % \endoverlay ::= % BEGIN % \par\break % END \def\overlay#1{\stepcounter{overlay}\gdef\@slidesw{T}% \if@onlyslidesw\ifnum \c@slide <\@doslidelow\relax \gdef\@slidesw{F}\fi\fi \if\@slidesw T\gdef\@slidesw{F}\begingroup\if@bw\gdef\@slidesw{T}% \else\@color{#1}\if@visible \gdef\@slidesw{T}\fi\fi\endgroup\fi \if\@slidesw T\newpage\thispagestyle{overlay}% \else\end{overlay}\@gobbletoend{overlay}\fi} \def\endoverlay{\par\break} % \note ::= % BEGIN % \stepcounter{note} % if @bw = T % then % \@slidesw :=G T % if @onlynotesw = true % set \@notesw = T iff page to % then % be output % while \c@slide > \@donotehigh % do \@setlimits\@donotelist\@donotelow\@donotehigh od % if \c@slide < \@donotelow % then \@slidesw :=G F % fi % fi % else \@slidesw :=G F % fi % if \@slidesw = T % then \newpage % \thispagestyle{note} % else \end{note} % \@gobbletoend{note} % fi % END % \endnote ::= % BEGIN % \par\break % END \def\note{\stepcounter{note}% \if@bw \gdef\@slidesw{T}\if@onlynotesw\@whilenum \c@slide >\@donotehigh\relax \do{\@setlimits\@donotelist\@donotelow\@donotehigh}\ifnum \c@slide <\@donotelow\relax \gdef\@slidesw{F}\fi\fi \else\gdef\@slidesw{F}\fi \if\@slidesw T\newpage\thispagestyle{note}\else \end{note}\@gobbletoend{note}\fi} \def\endnote{\par\break} % \@color{COLORS} ::= % BEGIN % if math mode % then type warning % fi % if @bw % then @visible := T % else @visible := F % for \@tempa := COLORS % do if \@tempa = \@currcolor % then @visible := T % fi % od % fi % \@currsize -- sets the visibility of the current size % \@currfont -- sets the visibility of the current font % \ignorespaces % END \def\@color#1{\@mmodetest{ \if@bw \@visibletrue\else\@visiblefalse \@for \@tempa :=#1\do{\ifx\@tempa\@currcolor\@visibletrue\fi}\fi \@currsize\@currfont\ignorespaces}} \def\@mmodetest#1{\ifmmode\@warning{Color-changing command in math mode has been ignored}\else #1\fi} % \invisible ::= BEGIN type warning if math mode % \@visiblefalse \@currsize\@currfont\ignorespaces END \def\invisible{\@mmodetest{\@visiblefalse\@currsize\@currfont\ignorespaces}} \let\invisible=\invisible \let\endinvisible=\relax % \visible ::= BEGIN type warning if math mode % \@visibletrue \@currsize\@currfont\ignorespaces END % %\def\visible{\@mmodetest{\@visibletrue\@currsize\@currfont\ignorespaces}} % %\let\visible=\visible %\let\endvisible=\relax \message{picture,} % **************************************** % * MODIFICATIONS TO * % * THE PICTURE ENVIRONMENT * % **************************************** % % Below are the new definitions of the picture-drawing macros % required for SLiTeX. Only those commands that actually % draw something must be changed so that they do not produce % any output when the @visible switch is false. \def\line(#1,#2)#3{\if@visible\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vline \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi \fi\fi} \def\vector(#1,#2)#3{\if@visible\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vvector \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi \fi\fi} \def\dashbox#1(#2,#3){\leavevmode\if@visible\hbox to \z@{\baselineskip \z@ \lineskip \z@ \@dashdim #2\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 \@dashdim #1\unitlength\divide\@dashcnt \@dashdim \ifodd\@dashcnt\@dashdim \z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ \advance\@dashcnt \m@ne \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@dashdim}\put(0,0){\copy\@dashbox}% \put(0,#3){\copy\@dashbox}% \put(#2,0){\hskip-\@dashdim\copy\@dashbox}% \put(#2,#3){\hskip-\@dashdim\box\@dashbox}% \multiply\@dashdim \thr@@ \fi \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}% \@dashdim #3\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 \@dashdim #1\unitlength\divide\@dashcnt \@dashdim \ifodd\@dashcnt \@dashdim\z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ \advance\@dashcnt \m@ne \setbox\@dashbox\hbox{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \@dashdim}\put(0,0){\copy\@dashbox}% \put(#2,0){\copy\@dashbox}% \put(0,#3){\lower\@dashdim\copy\@dashbox}% \put(#2,#3){\lower\@dashdim\copy\@dashbox}% \multiply\@dashdim \thr@@ \fi \setbox\@dashbox\hbox{\vrule \@width \@wholewidth \@height #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}\@tempcnta\z@ \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \relax\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}}\fi\@makepicbox(#2,#3)} \def\@oval(#1,#2)[#3]{\if@visible\begingroup \boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx #1\unitlength \@ovyy #2\unitlength \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi \@getcirc \@tempdimb \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ \@circlefnt \setbox\@tempboxa \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi \if@ovt \@ovhorz \kern -\@ovxx \fi \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup\fi} \def\@circle#1{\if@visible \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength \ifdim \@tempdimb >15.5\p@\relax \@getcirc\@tempdimb \@ovro\ht\@tempboxa \setbox\@tempboxa\hbox{\@circlefnt \advance\@tempcnta\tw@ \char \@tempcnta \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima \advance\@tempcnta\tw@ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% \else \@circ\@tempdimb{96}\fi\endgroup\fi} \def\@dot#1{\if@visible\@tempdimb #1\unitlength \@circ\@tempdimb{112}\fi} \long\def\@iframebox[#1][#2]#3{\leavevmode \savebox\@tempboxa[#1][#2]{\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{ \if@visible \hrule \@height \else \vskip \fi \fboxrule \hbox{\if@visible \vrule \@width \fboxrule \hskip-\fboxrule \fi \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\if@visible \vrule \@width \fboxrule \hskip-\fboxrule \fi}\if@visible \hrule \@height \else \vskip\fi\fboxrule}}}} \long\def\frame#1{\if@visible\leavevmode \vbox{\vskip-\@halfwidth\hrule \@height\@halfwidth \@depth \@halfwidth \vskip-\@halfwidth\hbox{\hskip-\@halfwidth \vrule \@width\@wholewidth \hskip-\@halfwidth #1\hskip-\@halfwidth \vrule \@width \@wholewidth \hskip -\@halfwidth}\vskip -\@halfwidth\hrule \@height \@halfwidth \@depth \@halfwidth\vskip -\@halfwidth}\else #1\fi} \long\def\fbox#1{\leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{\if@visible \hrule \@height \else \vskip\fi\fboxrule \hbox{\if@visible\vrule \@width \else \hskip \fi\fboxrule \hskip\fboxsep \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip \fboxsep \if@visible\vrule \@width\else\hskip \fi\fboxrule}% \if@visible\hrule \@height \else \vskip \fi\fboxrule}}}} \message{mods,} % **************************************** % * OTHER MODIFICATIONS TO * % * TeX AND LaTeX COMMANDS * % **************************************** % % \rule \def\@rule[#1]#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode \hbox{\if@visible\vrule \@width#2 \@height\@tempdima \@depth-#1\else \vrule \@width \z@ \@height\@tempdima \@depth-#1\vrule \@width#2 \@height\z@\fi}} % \_ (Added 10 Nov 86) \def\_{\leavevmode \kern.06em \if@visible\vbox{\hrule \@width.3em}\else \vbox{\hrule \@height \z@ \@width.3em}\vbox{\hrule \@width \z@}\fi} % \overline, \underline, \frac and \sqrt % % \@mathbox{STYLE}{BOX}{MTEXT} : Called in math mode, typesets MTEXT and % stores result in BOX, using style STYLE. % % \@bphant{BOX} : Creates a phantom with dimensions BOX. % \@vbphant{BOX} : Creates a phantom with ht of BOX and zero width. % \@hbphant{BOX} : Creates a phantom with width of BOX and zero ht & dp. % \@hvsmash{STYLE}{MTEXT} : Creates a copy of MTEXT with zero height and width % in style STYLE. \def\@mathbox#1#2#3{\setbox#2\hbox{$\m@th#1{#3}$}} \def\@vbphantom#1{\setbox\tw@\null \ht\tw@\ht #1\dp\tw@\dp #1% \box\tw@} \def\@bphantom#1{\setbox\tw@\null \wd\tw@\wd #1\ht\tw@\ht #1\dp\tw@\dp #1% \box\tw@} \def\@hbphantom#1{\setbox\tw@\null \wd\tw@\wd #1\ht\tw@\z@ \dp\tw@\z@ \box\tw@} \def\@hvsmash#1#2{\@mathbox#1\z@{#2}\ht\z@\z@ \dp\z@\z@ \wd\z@\z@ \box\z@} \def\underline#1{\relax\ifmmode \@xunderline{#1}\else $\@math\@xunderline{\hbox{#1}}$\relax\fi} \def\@xunderline#1{\mathchoice{\@xyunderline\displaystyle{#1}}{\@xyunderline \textstyle{#1}}{\@xyunderline\scriptstyle{#1}}{\@xyunderline \scriptscriptstyle{#1}}} \def\@xyunderline#1#2{\@mathbox#1\@smashboxa{#2}\@hvsmash#1{\copy\@smashboxa}% \if@visible \@hvsmash#1{\@@underline{\@bphantom\@smashboxa}}\fi \@mathbox#1\@smashboxb{\@@underline{\box\@smashboxa}}% \@bphantom\@smashboxb} \let\@@overline=\overline \def\overline#1{\mathchoice{\@xoverline\displaystyle{#1}}{\@xoverline \textstyle{#1}}{\@xoverline\scriptstyle{#1}}{\@xoverline \scriptscriptstyle{#1}}} \def\@xoverline#1#2{\@mathbox#1\@smashboxa{#2}\@hvsmash#1{\copy\@smashboxa}% \if@visible \@hvsmash#1{\@@overline{\@bphantom\@smashboxa}}\fi \@mathbox#1\@smashboxb{\@@overline{\box\@smashboxa}}% \@bphantom\@smashboxb} % \@frac {STYLE}{DENOMSTYLE}{NUM}{DEN}{FONTSIZE} : Creates \frac{NUM}{DENOM} % in style STYLE with NUM and DENOM in style DENOMSTYLE % FONTSIZE should be \textfont \scriptfont or \scriptscriptfont \def\frac#1#2{\mathchoice {\@frac\displaystyle\textstyle{#1}{#2}\textfont}{\@frac \textstyle\scriptstyle{#1}{#2}\textfont}{\@frac \scriptstyle\scriptscriptstyle{#1}{#2}\scriptfont}{\@frac \scriptscriptstyle\scriptscriptstyle{#1}{#2}\scriptscriptfont}} \def\@frac#1#2#3#4#5{\@mathbox#2\@smashboxa{#3}\@mathbox#2\@smashboxb{#4}% \@mathbox#1\@smashboxc{\copy\@smashboxa\over\copy\@smashboxb}% \@vbphantom\@smashboxc \vcenter{\vbox to\z@{\hsize \wd\@smashboxc \vss\nointerlineskip \hbox to\wd\@smashboxc{\hss\box\@smashboxa\hss}% \hrule \@height \z@}% \vskip 7\fontdimen8#53 \if@visible\hrule \@height \fontdimen8#53\else \vskip \fontdimen8#53\fi \vskip 7\fontdimen8#53 \nointerlineskip \vbox to\z@{\nointerlineskip \hbox to\wd\@smashboxc{\hss\box\@smashboxb\hss}% \hrule \@height \z@\vss}% }} \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\@xysqrt#1{#2}$}% \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mskip5mu\raise.6\dimen@\copy\rootbox \mskip-10mu\box\z@} \def\sqrt{\@ifnextchar[{\@sqrt}{\@xsqrt}} \def\@sqrt[#1]{\root #1\of} \def\@xsqrt#1{\mathchoice{\@xysqrt\displaystyle{#1}}{\@xysqrt \textstyle{#1}}{\@xysqrt\scriptstyle{#1}}{\@xysqrt \scriptscriptstyle{#1}}} \def\@xysqrt#1#2{\@mathbox#1\@smashboxa{#2}\if@visible \@hvsmash#1{\@@sqrt{\@bphantom\@smashboxa}}\fi \phantom{\@@sqrt{\@vbphantom\@smashboxa}}\box\@smashboxa} \newbox\@smashboxa \newbox\@smashboxb \newbox\@smashboxc % array and tabular environments: changes to `|', \hline, \cline, and \vline % added 8 Jun 88 \def\@arrayrule{\if@visible\@addtopreamble{\hskip -.5\arrayrulewidth \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}\fi} \def\cline#1{\if@visible\@cline[#1]\fi} \def\hline{\noalign{\ifnum0=`}\fi \if@visible \hrule \@height \arrayrulewidth \else \hrule \@width \z@ \fi \futurelet \@tempa\@xhline} \def\vline{\if@visible \vrule \@width \arrayrulewidth \else \vrule \@width \arrayrulewidth \@height \z@ \@depth \z@ \fi} \message{output,} % **************************************** % * CHANGES TO LaTeX \output ROUTINE * % **************************************** % % \@makecol == % BEGIN % % Following test added for slides to check if extra page % if @makingslides = T % then if \c@page > 0 % then if \c@note > 0 % then type 'Note \thenote too long.' % else if \c@overlay > 0 % then type 'Overlay \theoverlay too long.' % else type 'Slide \theslide too long' % fi fi fi fi % ifvoid \insert\footins % then \@outputbox := \box255 % else \@outputbox := \vbox {\unvbox255 % \vskip \skip\footins % \footnoterule % \unvbox\@footinsert % } % fi % \@freelist :=G \@freelist * \@midlist % \@midlist :=G empty % \@combinefloats % \@outputbox := \vbox to \@colht{\boxmaxdepth := \maxdepth % \vfil %%\vfil added for slides % \unvbox\@outputbox % \vfil } %%\vfil added for slides % \maxdepth :=G \@maxdepth % END \def\@makecol{\if@makingslides\ifnum\c@page>\z@ \@extraslide\fi\fi \ifvoid\footins \setbox\@outputbox\box\@cclv \let\@botfil\vfil \else\let\@botfil\relax\setbox\@outputbox \vbox{\unvbox\@cclv\vfil \vskip\skip\footins\footnoterule\unvbox\footins\vskip \z@ plus.1fil\relax}\fi \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth \vfil\unvbox\@outputbox\@botfil}\global\maxdepth\@maxdepth} \def\@extraslide{\ifnum\c@note>\z@ \@warning{Note \thenote\space too long}\else \ifnum\c@overlay>\z@ \@warning{Overlay \theoverlay\space too long}\else \@warning{Slide \theslide\space too long}\fi\fi} \message{init} % **************************************** % * SPECIAL SLiTeX INITIALIZATIONS * % **************************************** % \nofiles \@visibletrue %% RmS 91/09/29: \SLiTeX logo removed since it is now defined in latex.tex. %\def\SLiTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern % -.1667em\lower.7ex\hbox{E}\kern-.125emX}} \endinput