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 >
Text File  |  1992-04-01  |  24KB  |  722 lines

  1. % SLITEX VERSION 2.09 <25 March 1992>
  2. % Copyright (C) 1992 by Leslie Lamport
  3.  
  4. \everyjob{\typeout{SliTeX Version 2.09 <25 March 1992>}}
  5. \immediate\write10{SliTeX Version 2.09 <25 March 1992>}
  6.  
  7. % NOTES FOR DEFINING FONTS AND STYLES FOR SLIDES
  8. %   Every font definition -- \rm, \it, etc. must \def\@currfont to itself.
  9. %   Every size definition such as \normalsize is defined to be
  10. %          \@normalsize
  11. %          \def\@currsize{\@normal}\rm
  12. %          commands to set:
  13. %             \baselineskip
  14. %             \lineskip
  15. %             the ...displayskip and ...displayshortskip parameters
  16. %             \strutbox
  17. %             \parskip and \@parskip
  18. %   where \@normal makes all the font definitions.
  19. %   \@normal must test the switch @visible and define its
  20. %   fonts equal to the visible or the invisible versions accordingly.
  21.  
  22. \message{hacks,}
  23. %      **********************************************
  24. %      *          HACKS FOR SLIDE MACROS            *
  25. %      **********************************************
  26. %
  27. % \@gobbletoend{FOO} gobbles all text up to and including the
  28. % next \end{FOO}.  Must be used inside an \if, right before the \fi.
  29.  
  30. \def\@gobbletoend#1{\def\@argend{#1}\@ggobtoend}
  31.  
  32. \long\def\@ggobtoend#1\end#2{\@xfi\def\@tempa{#2}%
  33. \ifx\@tempa\@argend\else\@ggobtoend\fi}
  34. \def\@xfi{\fi}
  35.  
  36. \message{slides,}
  37. %      **********************************************
  38. %      *               SLIDE  MACROS                *
  39. %      **********************************************
  40. %
  41. % Switches:
  42. % @bw      : true if making black and white slides
  43. % @visible : true if visible output to be produced.
  44. % @makingslides : true if executing \blackandwhite or \colorslides
  45.  
  46. \newif\if@bw
  47. \newif\if@visible
  48. \newif\if@onlyslidesw \@onlyslideswfalse
  49. \newif\if@onlynotesw  \@onlynoteswfalse
  50. \newif\if@makingslides
  51.  
  52. % Counters
  53. %  slide   = slide number
  54. %  overlay = overlay number for a slide
  55. %  note    = note number for a slide
  56.  
  57. \countdef\c@slide=0 \c@slide=0
  58. \def\cl@slide{}
  59. \countdef\c@overlay=1 \c@overlay=0
  60. \def\cl@overlay{}
  61. \countdef\c@note=2 \c@note=0
  62. \def\cl@note{}
  63.  
  64.  
  65. \@addtoreset{overlay}{slide}
  66. \@addtoreset{note}{slide}
  67.  
  68. % Redefine page counter to some other number.
  69. % The page counter will always be zero except when putting out an
  70. % extra page for a slide, note or overlay.
  71. %
  72. \@definecounter{page}
  73. \@addtoreset{page}{slide}
  74. \@addtoreset{page}{note}
  75. \@addtoreset{page}{overlay}
  76.  
  77.  
  78. \def\theslide{\@arabic\c@slide}
  79. \def\theoverlay{\theslide-\@alph\c@overlay}
  80. \def\thenote{\theslide-\@arabic\c@note}
  81.  
  82. % \@setlimits \LIST \LOW \HIGH
  83. %
  84. %    Assumes that \LIST = RANGE1,RANGE2,...,RANGEn  (n>0)
  85. %    Where RANGEi = j or j-k.
  86. %
  87. %    Then \@setlimits  globally sets
  88. %        (i) \LIST := RANGE2, ... , RANGEn
  89. %       (ii) \LOW  := p
  90. %      (iii) \HIGH := q
  91. %   where either RANGE1 = p-q   or  RANGE1 = p  and  q=p.
  92.  
  93. \def\@sl@getargs#1-#2-#3\relax#4#5{\xdef#4{#1}\xdef#5{#2}}
  94. \def\@sl@ccdr#1,#2\relax#3#4{\xdef#3{#1-#1-}\xdef#4{#2}}
  95.  
  96. \def\@setlimits #1#2#3{\expandafter\@sl@ccdr#1\relax\@sl@gtmp #1%
  97. \expandafter\@sl@getargs\@sl@gtmp\relax#2#3}
  98.  
  99. % \onlyslides{LIST} ::=
  100. %  BEGIN
  101. %    @onlyslidesw := true
  102. %    \@doglslidelist :=G LIST,999999,999999
  103. %   if @onlynotesw = true
  104. %     else @onlynotesw := true
  105. %          \@doglnotelist :=G LIST,999999,999999
  106. %   fi
  107. %   message: Only Slides LIST
  108. %  END
  109.  
  110. \def\onlyslides#1{\@onlyslideswtrue\gdef\@doglslidelist{#1,999999,999999}%
  111. \if@onlynotesw \else \@onlynoteswtrue\gdef\@doglnotelist{999999,999999}\fi
  112. \typeout{Only Slides #1}}
  113.  
  114. % \onlynotes{LIST} ::=
  115. %  BEGIN
  116. %    @onlynotesw := true
  117. %    \@doglnotelist :=G LIST,999999,999999
  118. %   if @onlyslidesw = true
  119. %     else \@onlyslidesw := true
  120. %          \@doglslidelist{999999,999999}
  121. %   fi
  122. %   message: Only Notes LIST
  123. %  END
  124.  
  125. \def\onlynotes#1{\@onlynoteswtrue\gdef\@doglnotelist{#1,999999,999999}%
  126. \if@onlyslidesw \else \@onlyslideswtrue\gdef\@doglslidelist{999999,999999}\fi
  127. \typeout{Only Notes #1}}
  128.  
  129.  
  130. % \blackandwhite #1  ::=
  131. %    \newpage
  132. %    page counter := 0
  133. %    @bw := T
  134. %    @visible := T
  135. %    if @onlyslidesw = true
  136. %      then  \@doslidelist := \@doglslidelist
  137. %            \@setlimits\@doslidelist\@doslidelow\@doslidehigh
  138. %    fi
  139. %    if @onlynotesw = true
  140. %      then  \@donotelist := \@doglnotelist
  141. %            \@setlimits\@donotelist\@donotelow\@donotehigh
  142. %    fi
  143. %    \normalsize    % Note, this sets font to \rm , which sets
  144. %                     % \@currfont to \rm
  145. %    counter slidenumber := 0
  146. %    counter note        := 0
  147. %    counter overlay     := 0
  148. %    @makingslides       := T
  149. %    input #1
  150. %    @makingslides       := F
  151.  
  152. \def\blackandwhite#1{\newpage\setcounter{page}{0}\@bwtrue\@visibletrue
  153. \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}%
  154. \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi
  155. \if@onlynotesw \xdef\@donotelist{\@doglnotelist}%
  156. \@setlimits\@donotelist\@donotelow\@donotehigh\fi
  157. \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}%
  158. \setcounter{note}{0}\@makingslidestrue\input #1\@makingslidesfalse}
  159.  
  160.  
  161. % \colors{COLORS} ::=
  162. %  for \@colortemp := COLORS
  163. %     do \csname \@colortemp \endcsname == \@color{\@colortemp} od
  164. %  if \@colorlist = empty
  165. %     then \@colorlist := COLORS
  166. %     else \@colorlist := \@colorlist , COLORS
  167. %  fi
  168. %
  169. \def\colors#1{\@for\@colortemp:=#1\do{\expandafter
  170.   \xdef\csname\@colortemp\endcsname{\noexpand\@color{\@colortemp}}}\ifx
  171.   \@colorlist\@empty \gdef\@colorlist{#1}%
  172.     \else \xdef\@colorlist{\@colorlist,#1}\fi}
  173.  
  174. \def\@colorlist{}
  175.  
  176. % \colorslides{FILE} ::=
  177. %    \newpage
  178. %    page counter := 0
  179. %    @bw := F
  180. %    for \@currcolor := \@colorlist
  181. %      do  @visible := T
  182. %          if @onlyslidesw = true
  183. %            then  \@doslidelist := \@doglslidelist
  184. %                  \@setlimits\@doslidelist\@doslidelow\@doslidehigh
  185. %          fi
  186. %          if @onlynotesw = true
  187. %            then  \@donotelist := \@doglnotelist
  188. %                  \@setlimits\@donotelist\@donotelow\@donotehigh
  189. %          fi
  190. %          \normalsize
  191. %          counter slide := 0
  192. %          counter overlay := 0
  193. %          counter note    := 0
  194. %          type message
  195. %          generate color layer output page
  196. %          @makingslides := T
  197. %          input #1
  198. %          @makingslides := F
  199. %      od
  200.  
  201. \def\colorslides#1{\newpage\setcounter{page}{0}\@bwfalse
  202. \@for\@currcolor:=\@colorlist\do
  203. {\@visibletrue
  204. \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}%
  205. \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi
  206. \if@onlynotesw \xdef\@donotelist{\@doglnotelist}%
  207. \@setlimits\@donotelist\@donotelow\@donotehigh\fi
  208. \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}%
  209. \setcounter{note}{0}\typeout{color \@currcolor}%
  210. \newpage
  211. \begin{huge}%
  212. \begin{center}%
  213. COLOR LAYER\\[.75in]%
  214. \@currcolor
  215. \end{center}%
  216. \end{huge}%
  217. \newpage
  218. \@makingslidestrue
  219. \input #1
  220. \@makingslidesfalse}}
  221.  
  222.  
  223. % \slide COLORS ::=
  224. %  BEGIN
  225. %   \stepcounter{slide}
  226. %   \@slidesw :=G T
  227. %   if @onlyslidesw = true                     % set \@slidesw = T iff page to
  228. %     then                                   % be output
  229. %       while \c@slide > \@doslidehigh
  230. %          do  \@setlimits\@doslidelist\@doslidelow\@doslidehigh  od
  231. %       if \c@slide < \@doslidelow
  232. %         then \@slidesw := F
  233. %       fi
  234. %   fi
  235. %   if \@slidesw = T
  236. %      then \@slidesw :=G F
  237. %           \begingroup
  238. %              if @bw = true
  239. %                then  \@slidesw :=G T
  240. %                else \@color{COLORS}
  241. %                     \if@visible then \@slidesw :=G T \fi
  242. %              fi
  243. %            \endgroup
  244. %  fi
  245. %  if \@slidesw = T
  246. %    then \newpage
  247. %         \thispagestyle{slide}
  248. %    else \end{slide}
  249. %          \@gobbletoend{slide}
  250. %  fi
  251. % END
  252.  
  253. % \endslide ::=
  254. %  BEGIN
  255. %    \par\break
  256. %  END
  257.  
  258. \def\slide#1{\stepcounter{slide}\gdef\@slidesw{T}\if@onlyslidesw
  259. \@whilenum \c@slide >\@doslidehigh\relax
  260. \do{\@setlimits\@doslidelist\@doslidelow\@doslidehigh}\ifnum
  261. \c@slide <\@doslidelow\relax\gdef\@slidesw{F}\fi\fi
  262. \if\@slidesw T\gdef\@slidesw{F}\begingroup\if@bw\gdef\@slidesw{T}\else
  263. \@color{#1}\if@visible \gdef\@slidesw{T}\fi\fi\endgroup\fi
  264. \if\@slidesw T\newpage\thispagestyle{slide}%
  265. \else\end{slide}\@gobbletoend{slide}\fi}
  266.  
  267. \def\endslide{\par\break}
  268.  
  269. % \overlay COLORS ::=
  270. %  BEGIN
  271. %   \stepcounter{overlay}
  272. %   \@slidesw :=G T
  273. %   if @onlyslidesw = T                       % se