home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
useful
/
dist
/
text
/
tex
/
pastex
/
macros
/
latex
/
general
/
slitex.tex
< prev
next >
Wrap
Text File
|
1992-04-01
|
24KB
|
722 lines
% SLITEX VERSION 2.09 <25 March 1992>
% Copyright (C) 1992 by Leslie Lamport
\everyjob{\typeout{SliTeX Version 2.09 <25 March 1992>}}
\immediate\write10{SliTeX Version 2.09 <25 March 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 % se