1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
%%%--- Cut here -----------------------------------------------------------
%%% File toc.tex
%
% Automatically generate a Table Of Contents (TOC) while the
% document is being processed by PLAIN TeX
%
% Use \tocref{ texta }{ textb } to insert TOC entries. `texta'
% will be typeset in the TOC and at the current location,
% for example `\centerline{\tocref{Chapter 1}{}}' inserts
% `Chapter 1' at the current location in your document
% centered, and enters it in the TOC (not centered).
% `textb' is a prefix text/TeX commands to precede `texta'
% in the TOC only (it will not appear in the current loc-
% ation of your document -- {{`textb'`texta'}.....\folio}).
% Use \tocline to add info only intended for the TOC (no page number or
% dotfill is used for tocline entries).
% Use \tocgen to force the last TOC page to be printed (last command
% before \end?)
% To specialize, look at the below comments in the right
%
% Uses variable names
% tocnew, tocopage, tocbox, tocsize, tocstrut, tocref,
% tocbanner, tocsuffix, tocline, tocstart, tocont, tocgen
%
% Created by Dan Zirin. Copyright (c) 1987 Zar Limited.
% Permission given for inclusion in TeXMaG.
%
\newcount\tocnew\tocnew=1\newcount\tocopage
\newbox\tocbox\newdimen\tocsize
\def\tocstrut{{\vrule height8.5pt depth3.5pt width0pt}} % TOC baselineskip -1pt
\def\tocref#1#2{\tocbanner#1 % Where `texta' is duplicated
\global\setbox\tocbox=\vbox{
\box\tocbox\vbox{
\line{\tocstrut{#2#1}~\dotfill~\folio} % Where the TOC line is made
}}\tocsuffix}
\def\tocline#1{\tocbanner
\global\setbox\tocbox=\vbox{
\box\tocbox\vbox{
\line{\tocstrut{#1}}
}}\tocsuffix}
\def\tocbanner{\ifnum\tocnew=1\tocstart\fi
\ifnum\tocnew=3\tocont\fi}
\def\tocsuffix{\ifdim\tocsize<\ht\tocbox\tocgen
\global\tocnew=3\fi}
% Do not change tocsize = 1.0 (TeX may go into an infinite loop)
\def\tocstart{\global\tocsize=.95\vsize % TOC page >95% full, print it
\global\setbox\tocbox=\vbox{
\centerline{\tocstrut\bf Table Of Contents} % TOC page 1 banner line 1
\line{\tocstrut\hfil} % TOC page 1 banner line 2 blank line
}\global\tocnew=2}
\def\tocont{\global\setbox\tocbox=\vbox{
\centerline{\tocstrut Table Of Contents (Continued)} % TOC page <> 1 banner
}\global\tocnew=2}
\def\tocgen{\ifnum\tocnew=1
\message{No TOC entries found.}\else
\tocopage=\pageno\pageno=0\message{(TOC}
\shipout\box\tocbox\message{)}
\pageno=\tocopage\global\tocnew=1\fi}
%%%--- Cut here -----------------------------------------------------------
|