tweb.tw,v 2.74 1995/07/05 10:38:39 web Exp

TWEB.TW

Włodek Bzyl matwb@halina.univ.gda.pl

⟨ * ⟩≡

1  \newlinechar `^^J

2

3  \def \savecat #1%
4  {\expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
5  \def \restorecat #1%
6  {\catcode`#1=\csname\string#1savedcat\endcsname}
7  \savecat\@

8

9  \catcode`\@ = 11

10

⟨ Web source formatting macros ⟩ ⟨ Setting layout of web source ⟩ ⟨ Macros written by web2tex script ⟩ ⟨ Multicolumn environment for indexes ⟩ ⟨ Index macros ⟩ ⟨ Cross-reference macros ⟩ ⟨ Initialize the layout ⟩

11

12  \restorecat\@

Layout of a web source

⟨ Setting layout of web source ⟩≡

⟨ Fonts for typeseting headings, chapter names, etc. ⟩ ⟨ Page dimensions ⟩ ⟨ Headlines ⟩ ⟨ Table of contents ⟩ ⟨ Title, chapter, section... macros ⟩

⟨ Fonts for typeseting headings, chapter names, etc. ⟩≡

13  \font \chapterfont = cmbx10 at 20pt
14  \font \titlefont   = cmssbx10 at 17pt
15  \font \authorfont  = cmssbx10 at 12pt
16  \font \sectionfont = cmbx10 at 12pt
17  \font \tocfont     = cmssbx10 at 12pt

18

19  \font \tenbxit     = cmbxti10 \def \bfit {\tenbxit}
20  \font \tenss       = cmss10
21  \font \tenssbf     = cmssbx10
22  \font \ninerm      = cmr9
23  \font \sevenrm     = cmr7
24  \font \ninebf      = cmbx9
25  \font \nineit      = cmti9
26  \font \ninebxit    = cmbxti10 at 8.5pt
27  \font \ninett      = cmtt9
28  \font \ninei       = cmmi9
29  \font \seveni      = cmmi7
30  \font \ninesy      = cmsy9
31  \font \nineex      = cmex9

⟨ Page dimensions ⟩≡

32  \hoffset = 0.5in % extra space used to print code line numbers
33  \hsize   = 6.0in % less 0.5 than plain.tex value
34  \vsize   = 8.9in % default value

⟨ Round \vsize to the nearest multiple of \baselineskip ⟩

⟨ Headlines ⟩≡

35  \def \RCS {\jobname.tw}  \def \RCSversion {Experimental}

36

37  \newdimen\textsize \textsize=\hsize

38

39  \def \pagenumber
40  {\folio}

41

42  \headline =
43  {\hbox to \textsize{\strut%
44  \ifnum\pageno>1
45  \tenss\filename\hfil Version \RCSversion%
46  \hbox to 4em{\hfil\pagenumber}%
47  \else
48  \hfil\tenss\RCS%
49  \fi}\hss}

50

51  \footline = {\hfil}

⟨ Table of contents ⟩≡

52  \def \tocline #1#2%
53  {\line{{\ignorespaces#1}\leaders\hbox to 3pt{.\hfil}\hfil
54  \hbox to 15pt{\hss#2}}}

55

56  \def \settocparms #1%
57  {\count@=#1
58  \ifnum\count@<1
59  \def\tocskip
60  {\vskip 3pt plus 1in

61  \penalty-100
62  \vskip 0pt plus -1in^^J}
63  \def\tocstyle{\tenssbf}
64  \def\tocindent{\z@}
65  \else
66  \def\tocskip{}
67  \def\tocstyle{\tenss}
68  \dimen@=20pt \advance\count@ by \m@ne \dimen@=\count@\dimen@
69  \edef\tocindent{\the\dimen@}
70  \fi}

71

72  \def \topofcontents
73  {\vskip2\baselineskip
74  \leftline{\tocfont Contents}
75  \vskip2ex
76  \begingroup\rm}

77

78  \def \botofcontents
79  {\endgroup
80  \semifilbreak{0.9}
81  \vskip3\baselineskip}

82

83  \def \printcontents
84  {\topofcontents
85  \Input{\jobname.toc}
86  \botofcontents}
         \startsection{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{HEADING}
                       #1     #2      #3          #4         #5      #6

#1 LEVEL: depth; e.g. chapter=0 sectino=1... #2 INDENT: indentation of heading from left margin #3 BEFORESKIP: skip before header #4 AFTERSKIP: skip after header #5 STYLE: style of heading; e.g. \bf

         #6  HEADING

⟨ Title, chapter, section... macros ⟩≡

87  \def \title #1#2%
88  {\vglue4\baselineskip
89  \noindent{\rightskip = 0in plus 4em
90  \hyphenpenalty = 10000 \exhyphenpenalty = 10000
91  \baselineskip = 20pt
92  \titlefont#1\par}
93  \vskip 0.5\baselineskip
94  \hrule height 2pt width \hsize
95  \vskip 0.5\baselineskip
96  \noindent
97  \line{\authorfont #2}
98  \vskip2\baselineskip}

99

100  \def \startsection#1#2#3#4#5#6%
101  {\ifnum#1<2

102  \semifilbreak{0.8}
103  \fi
104  \vskip #3
105  \def\titl@{#6}
106  \edef\themodtitle{\sanitize\titl@}
107  \message{[\themodtitle]}
108  \settocparms{#1}
109  {\edef\next
110  {\noexpand\write\cont{\tocskip\string\tocline%
111  {\hskip\tocindent\tocstyle\space\sanitize\themodtitle}%
112  {\noexpand\the\pageno}}}%
113  \next}% write to toc
114  \vbox{\leftskip=#2
115  \rightskip=0.5true in plus 4em minus 0.5 true in
116  \hyphenpenalty=9999 \exhyphenpenalty=9999
117  \noindent#5#6}%
118  \nobreak
119  \vskip#4}

120

121  \def \gobblemeaning#1:->{}
122  \def \sanitize {\expandafter\gobblemeaning\meaning}

123

124  \def \chapter#1%
125  {\vfil\eject\startsection{0}{\z@}{\z@}{6ex}{\chapterfont}{#1}}
126  \def \section#1%
127  {\startsection{1}{\z@}{4ex}{2ex}{\sectionfont}{#1}}
128  \def \subsection#1%
129  {\startsection{2}{\z@}{2ex}{1ex}{\tenbf}{#1}}
130  \def \subsubsection#1%
131  {\startsection{3}{\z@}{1ex}{0ex}{\tenit}{#1}}
132  \def \paragraph#1%
133  {\startsection{4}{\z@}{1.5ex}{0ex}{\tenit}{#1}}

Indexes

The user sets the pagenumber style with the \pagenumbering{FOO} command, which sets the page counter to 1 and defines \thepage to be \FOO. For example, \pagenumbering{roman} causes pages to be numbered i, ii, etc.

⟨ Index macros ⟩≡

134  \def \newwrite
135  {\alloc@7\write\chardef\sixt@@n} % remove \outer

136

137  \def \@nameuse#1%
138  {\csname #1\endcsname}

139

140  \def \arabic#1{\@arabic{\@nameuse{c@#1}}}
141  \def \roman#1{\@roman{\@nameuse{c@#1}}}
142  \def \Roman#1{\@Roman{\@nameuse{c@#1}}}
143  \def \alph#1{\@alph{\@nameuse{c@#1}}}
144  \def \Alph#1{\@Alph{\@nameuse{c@#1}}}

145

146  \def \@arabic#1{\ifnum #1>0 \number #1\fi}
147  \def \@roman#1{\romannumeral #1}
148  \def \@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
149  \def \@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
150  \def \@ialph#1%
151  {\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or k\or l\or
152  m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
153  z\else\@ctrerr\fi}
154  \def \@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
155  \def \@Ialph#1%
156  {\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or K\or L\or
157  M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or
158  Z\else\@ctrerr\fi}

159

160  \def \pagenumbering#1%
161  {\global\pageno \@ne \gdef\thepage{\csname @#1\endcsname\pageno}}

162

163  \pagenumbering {arabic}

Environment \@bsphack ... \@esphack is used by macros such as \index that want to be invisible i.e., not leave any extra space when used in the middle of text. Such a macro should begin with \@bsphack and end with \@esphack. The macro in question should not create any text, nor change the mode.

⟨ Index macros ⟩+≡

164  \newdimen \@savsk
165  \newcount \@savsf

166

167  \def \@bsphack
168  {\@savsk\lastskip\ifhmode\@savsf\spacefactor\fi}

169

170  \def \@esphack
171  {\relax%
172  \ifhmode\spacefactor\@savsf
173  {}\ifdim \@savsk >\z@ \ignorespaces\fi
174  \fi}

175

The command \@sanitize changes the catcode of all special characters except for braces to ‘other’. It can be used for commands like \index that want to write their arguments verbatim.

⟨ Index macros ⟩+≡

176  \def \makeother #1{\catcode`#1=12\relax}

177

178  \def \@sanitize
179  {\makeother\ \makeother\\\makeother\$%
180  \makeother\&\makeother\#\makeother\^%
181  \makeother\_\makeother\%\makeother\~\relax}

Default command name \indexentry is shortened to \E. This change will make input files for makeindex shorter. This would allow to process some indexes on MSDOS (there is no ‘big’ version of makeindx.exe). Above change must be told to makeindex via style files, where the following line should be added:

          keyword "\\E"

⟨ Index macros ⟩+≡

182  \def \makeindex
183  {\newwrite\@indexfile
184  \immediate\openout \@indexfile = \jobname.idx
185  \def\index {\@bsphack\begingroup\@sanitize\@wrindex\@indexfile}
186  \message{^^J--> Writing index file \jobname.idx }}
187  \def \@wrindex#1#2%
188  {\let \thepage = \relax%
189  \xdef\gtempa
190  {\write#1{\string\E{#2}{\thepage}}}%
191  \endgroup\gtempa\@esphack}
192  \def \index
193  {\@bsphack\begingroup\@sanitize\@index}
194  \def \@index#1%
195  {\endgroup\@esphack}

196

197  \def \makeglossary
198  {\newwrite\@glossaryfile
199  \immediate\openout\@glossaryfile=\jobname.glo
200  \def\glossary{\@bsphack\begingroup\@sanitize\@wrindex\@glossaryfile}
201  \message{Writing glossary file \jobname.glo }\fi}
202  \def \glossary {\@bsphack\begingroup\@sanitize\index}

203

204  \def \@idxitem {\par\hangindent 20pt }
205  \def \subitem {\par\hangindent 20pt \hskip 20pt }
206  \def \subsubitem {\par\hangindent 20pt \hskip 30pt }

207

208  \def \seeterm{see}
209  \def \see#1#2%
210  {{\it \seeterm\/} #1}

211

⟨ Macros for printing web indexes ⟩

⟨ Macros for printing web indexes ⟩≡

212  \def \Input#1%
213  {\openin1 #1
214  \ifeof1
215  \message{^^J--- I cannot find file #1 }
216  \else
217  \closein1
218  \input #1
219  \message{^^J<-- Reading file #1 }
220  \fi}

221

222  \def \indexspace
223  {\relax}

224

225  \def \printuserleveldefs
226  {\singlecolumn
227  \vfill\eject
228  \Input{\jobname.und}}
229  \def \printdefs
230  {\singlecolumn
231  \vfill\eject
232  \Input{\jobname.dnd}}
233  \def \printchunks
234  {\singlecolumn
235  \vfill\eject
236  \let \pagenumber = \relax
237  \Input{\jobname.chn}}

238

239  \def \beginuserleveldefs
240  {\begingroup

241 ⟨ Ninepoint environment for printing indexes ⟩

242  \section{User-level definitions}
243  \let\item\@idxitem
244  \triplecolumns \tt}
245  \def \begindefs
246  {\begingroup

247 ⟨ Ninepoint environment for printing indexes ⟩

248  \section{Definitions}
249  \let\item\@idxitem
250  \triplecolumns \tt}
251  \def \beginchunks
252  {\begingroup

253 ⟨ Ninepoint environment for printing indexes ⟩

254  \parskip = 2\p@ plus 2\p@
255  \let\item\@idxitem
256  \section{Chunks}
257  \bf}

258

259  \def \endindex
260  {\endgroup}

261

262  \def \makeindexes
263  {\par
264  \newwrite\@userleveldefsfile
265  \immediate\openout\@userleveldefsfile=\jobname.udx
266  \def\udx{\@bsphack\begingroup\@sanitize\@wrindex\@userleveldefsfile}
267  \message{^^J--> Writing index file \jobname.udx }
268  \newwrite\@defsfile
269  \immediate\openout\@defsfile=\jobname.ddx
270  \def\ddx{\@bsphack\begingroup\@sanitize\@wrindex\@defsfile}
271  \message{^^J--> Writing index file \jobname.ddx }
272  \newwrite\@chunkfile
273  \immediate\openout\@chunkfile=\jobname.chk
274  \def\chk{\@bsphack\begingroup\@sanitize\@wrindex\@chunkfile}
275  \message{^^J--> Writing index file \jobname.chk }}

⟨ Ninepoint environment for printing indexes ⟩≡

276  \textfont0 = \ninerm \scriptfont0 = \sevenrm%
277  \textfont1 = \ninei \scriptfont1 = \seveni%
278  \textfont2 = \sevensy%
279  \textfont3 = \nineex%
280  \def \rm {\fam0\ninerm} \rm%
281  \def \it {\nineit}%
282  \def \bfit {\ninebxit}%
283  \def \bf {\ninebf}%
284  \def \tt {\ninett}%
285  \def \oldstyle {\fam\@ne\ninei}%
286  \chardef\\  = "5C%
287  \parindent = \z@ \parskip = \z@%
288  \hfuzz = \hsize % index pages are wider
289  \baselineskip = 11pt \topskip = \baselineskip%

⟨ Round \vsize to the nearest multiple of \baselineskip ⟩

⟨ Round \vsize to the nearest multiple of \baselineskip ⟩≡

290  \advance \vsize by 0.5\baselineskip
291  \divide \vsize by \baselineskip
292  \multiply \vsize by \baselineskip

Multicolumn environment for index formatting

⟨ Multicolumn environment for indexes ⟩≡

293  \def \gobble#1{}
294  \let \wlog = \gobble

295

296  \newskip\abovecolumnskip \abovecolumnskip = \bigskipamount
297  \newskip\belowcolumnskip \belowcolumnskip = \bigskipamount
298  \newdimen \gutter \gutter = 2pc
299  \newdimen \c@lumnhsize
300  \newdimen \pagegoal@limit
301  \newdimen \htp@rtialpage
302  \newtoks \previousoutput
303  \newcount \number@fcolumns
304  \newbox \@partialpage
305  \newdimen \singlec@lumnhsize
306  \newdimen \singlec@lumnvsize
307  \newtoks \previousoutput
308  \let \@ndcolumns = \relax

We have a few synonymous ways to refer to multiple column modes.

⟨ Multicolumn environment for indexes ⟩+≡

309  \def \doublecolumns {\@columns2}
310  \def \triplecolumns {\@columns3}
311  \def \quadcolumns   {\@columns4}

312

313  \def \singlecolumn
314  {\@ndcolumns\vskip\belowcolumnskip\nointerlineskip}

315

316  \let \endcolumns = \singlecolumn

317

318  \def \@columns #1%
319  {\@ndcolumns%
320  \begingroup
321  \global\let\@ndcolumns=\@@endcolumns
322  \par % Shouldn't start in horizontal mode.
323  \global\previousoutput = \expandafter{\the\output}
324  \pagegoal@limit = \pagegoal
325  \advance \pagegoal@limit by -5\baselineskip
326  \ifdim\pagetotal > \pagegoal@limit
327  \vfill\eject
328  \else
329  \global\output =
330  {\global\setbox\@partialpage =
331  \vbox{\unvbox255\vskip\abovecolumnskip}}
332  \pagegoal = \pagetotal
333  \eject % now expand the \output just above.
334  \fi
335  \global\number@fcolumns=#1
336  \global\c@lumnhsize = \hsize % if \hsize changed, get the new value.
337  \global\advance\c@lumnhsize by -#1\gutter
338  \global\divide\c@lumnhsize by #1
339  \global\output = {\c@lumnoutput}
340  \global\singlec@lumnhsize = \hsize
341  \global\singlec@lumnvsize = \vsize
342  \hsize = \c@lumnhsize
343  \htp@rtialpage = \ht\@partialpage
344  \advance \htp@rtialpage by 0.5\baselineskip
345  \divide \htp@rtialpage by \baselineskip
346  \multiply \htp@rtialpage by \baselineskip
347  \ht\@partialpage = \htp@rtialpage
348  \global\advance\vsize by -\htp@rtialpage
349  \global\vsize = #1\vsize }

When this is invoked \box 255 should contain just the right amount of material, whether triggered by an output routine or a change in the number of columns. Because columns have to contain a whole number of lines of type, we take a bit of care with balancing the heights of the columns to prevent either losing material or having a very short last column.

Note: when a page ends due to \bye or \eject, \box255 will contain lots of white space, so the columns will not look balanced. To fix this use \singlecolumn before ending the page.

⟨ Multicolumn environment for indexes ⟩+≡

350  \def \@columnsplit

351 {⟨ Balance columns ⟩

352  \global\setbox255 = \vbox{% see the last line on p.417 (wb)
353  \unvbox\@partialpage
354  \ifnum\number@fcolumns>0%
355  \setbox1 = \vbox to \dimen0{\dimen2=\dp1 \unvbox1\kern-\dimen2\vfil}
356  \ifnum\number@fcolumns=1%

357  \hbox to \singlec@lumnhsize{\box1}
358  \fi
359  \fi
360  \ifnum\number@fcolumns>1%
361  \setbox3 = \vbox to \dimen0{\dimen2=\dp3 \unvbox3\kern-\dimen2\vfil}
362  \ifnum\number@fcolumns=1%
363  \hbox to \singlec@lumnhsize{\box1\hfil\box3}
364  \fi
365  \fi
366  \ifnum\number@fcolumns>2%
367  \setbox5 = \vbox to \dimen0{\dimen2=\dp5 \unvbox5\kern-\dimen2\vfil}
368  \ifnum\number@fcolumns=3%
369  \hbox to\singlec@lumnhsize{\box1\hfil\box3\hfil\box5}
370  \fi
371  \fi
372  \ifnum\number@fcolumns>3%
373  \setbox7 = \vbox to \dimen0{\dimen2=\dp7 \unvbox7\kern-\dimen2\vfil}
374  \ifnum\number@fcolumns=4%
375  \hbox to\singlec@lumnhsize{\box1\hfil\box3\hfil\box5\hfil\box7}
376  \fi
377  \fi}}

378

379  \def \c@lumnoutput
380  {\@columnsplit
381  \hsize = \singlec@lumnhsize % local to the \output group
382  \vsize = \singlec@lumnvsize
383  \the\previousoutput
384  \global\vsize=\number@fcolumns\singlec@lumnvsize}

385

386  \def \@@endcolumns
387  {\global\let\@ndcolumns=\relax%
388  \par % Shouldn't start in horizontal mode.
389  \global\output = {\global\setbox1 = \box255}%
390  \pagegoal = \pagetotal
391  \eject
392  \global\setbox255 = \box1
393  \@columnsplit
394  \global\vsize = \singlec@lumnvsize
395  \global\output = \expandafter{\the\previousoutput}%
396  \endgroup
397  \unvbox255}

⟨ Balance columns ⟩≡

398  \dimen0 = \ht255
399  \advance \dimen0 by \topskip
400  \advance \dimen0 by -\baselineskip
401  \divide\dimen0 by \number@fcolumns
402  \splittopskip = \topskip
403  \begingroup
404  \vbadness = 10000
405  \loop
406  \setbox8=\copy255

407  \global\setbox1 = \vsplit8 to \dimen0
408  \global\setbox3 = \vsplit8 to \dimen0
409  \ifnum\number@fcolumns>2%
410  \global\setbox5 = \vsplit8 to \dimen0
411  \fi
412  \ifnum\number@fcolumns>3%
413  \global\setbox7 = \vsplit8 to \dimen0
414  \fi
415  \ifdim\ht8>\z@ \global\advance\dimen0 by 1pt
416  \repeat
417  \endgroup

Cross references

          \ref{value}{name} gives value to name
          \pageref{name} writes \ref{page number}{name} to .ref file

\refpage{name} prints page number referenced by name \showmissestrue if you want to see missing references

⟨ Cross-reference macros ⟩≡

418  \newcount\miscount      % number of unknown references
419  \newif\ifshowmisses

420

421  \def \ref #1#2%
422  {\xdef\temp{#1}
423  \expandafter\dordef\csname#2\endcsname}
424  \def \dordef #1%
425  {\global\let#1\temp}

426

427  \Input{\jobname.ref}
428  \newwrite\refo \immediate\openout\refo=\jobname.ref

429

430  \def \pageref #1%
431  {\write\refo{\string\ref{\number\pageno}{#1}}}
432  \def \refpage #1%
433  {\expandafter\usedef\csname#1\endcsname}

434

435  \def \usedef #1%
436  {\ifx#1\relax%
437  \ifshowmisses\showmiss #1 \fi%
438  \global\advance\miscount by 1 ???%
439  \else%
440  #1%
441  \fi}

442

443  \def \showmiss #1%
444  {{\escapechar=-1%
445  \message{^^J*** WARNING: Undefined reference > #1<}}}

446

447  \outer \def \bye
448  {\write \cont {\string\restorecat\string\@}
449  \closeout\cont

450  \ifnum\miscount>0
451  \message{^^J!!! \the\miscount\space %
452  undefined reference(s) were present }%
453  \fi
454  \par\vfill\supereject
455  \end}

Web2tex macros

⟨ Macros written by web2tex script ⟩≡

456  {\obeyspaces\global\let = \ } % from texbook, p.381

457

458  {\catcode`\`=\active \gdef`{\relax\lq}}
459  {\catcode`\^^I=\active \gdef^^I{\ \ \ }}

460

461  {\obeyspaces\global\def\gobblespace#1{\ifx#1 \else#1\fi}}

462

463  \def \setupmodname
464  {\catcode`\$=3 \catcode`\&=4%
465  \catcode`\#=6 \catcode`\%=14%
466  \catcode`\~=13 \catcode`\_=8%
467  \catcode`\^=7 \catcode`\ =10%
468  \catcode`\^^M=5\relax}

469

470  \def \LA {\begingroup\setupmodname$\langle\,$\bfit}
471  \def \RA {\/$\,\rangle$\endgroup}

472

473  \gdef \ttverbatim
474  {\begingroup%
475  \makeother\\\makeother\{\makeother\}\makeother\$%
476  \makeother\&\makeother\#\makeother\%\makeother\~%
477  \makeother\_\makeother\^\makeother\"%
478  \obeyspaces\obeylines\tt}

479

480  \newskip\ttglue
481  \ttglue=.5em plus.25em minus.15em

482

483  {\catcode`\|=\active
484  \obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\  \let|=\endgroup}}

485

486  \def \CODE%
487  {\ttverbatim%
488  \let\par=\endgraf%
489  \parskip=\z@%
490  \leavevmode%
491  \ttfinish}% written by web2tex script itself

492

493  %%% {\catcode`\| = 0 |catcode`|\ = 12 %
494  %%% |obeylines |gdef|ttfinish#1<EDOC>{|gobblespace#1|endgroup}}

495

496  \def \NO #1% line numbers which appear in the margin

497  {\noindent\llap{\ninei #1\qquad}\kern\parindent}

498

499  \def \N #1#2% page number -- line number (indexes)
500  {$#2_{\oldstyle#1}$}

501

502  \def \BEGINCODE
503  {\semifilbreak{0.9}
504  \bigskip
505  \begingroup
506  \obeylines}
507  \def \ENDCODE
508  {\endgroup
509  \semifilbreak{0.9}}

510

511  \def \BEGINDOC
512  {\bigskip
513  \begingroup
514  \catcode`\|=\active}
515  \def \ENDDOC
516  {\endgroup}

517

518  \newif \iffullpages

519

520  \newdimen \upperbound

521

522  \def \semifilbreak #1%
523  {\par
524  \upperbound = #1\vsize       %% 0.1\vsize \approx 5\baselineskip
525  \ifdim\pagetotal > \pagegoal %% page already overfull;
526  %% left to page builder
527  \else
528  \ifdim\pagetotal > \upperbound
529  \vfill\eject
530  \fi
531  \fi}

Macros used for web source formatting

⟨ Web source formatting macros ⟩≡

⟨ Changing font ⟩

⟨ Typeseting font tables ⟩ ⟨ Non-centered displays ⟩ ⟨ Typeseting units of measure and syntactic quantities ⟩

⟨ Typeseting font tables ⟩≡

532  \def \oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
533  \def \hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant

534

535  \def \oddline#1%
536  {\cr

537  \noalign{\nointerlineskip}
538  \multispan{19}\hrulefill&
539  \setbox0=\hbox{\lower 2.3pt\hbox{\hex{#1x}}}\smash{\box0}\cr
540  \noalign{\nointerlineskip}}

541

542  \def \evenline {\cr\noalign{\hrule}}

543

544  \def \chartstrut {\lower4.5pt\vbox to14pt{}}

545

546  \def \beginchart#1%
547  {$$\postdisplaypenalty=-10000 \global\count@=0 #1
548  \halign to\hsize\bgroup
549  \chartstrut##\tabskip0pt plus10pt&
550  &\hfil##\hfil&\vrule##\cr
551  \lower6.5pt\null
552  &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}

553

554  \def \endchart
555  {\raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
556  &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$}

557

558  \def \:{\setbox0=\hbox{\char\count@}%
559  \ifdim\ht0>7.5pt\reposition
560  \else\ifdim\dp0>2.5pt\reposition\fi\fi
561  \box0\global\advance\count@ by1 }

562

563  \def \reposition {\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}

564

565  \def \normalchart
566  {&\oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline0
567  &\oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
568  &\oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline1
569  &\oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
570  &\oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline2
571  &\oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
572  &\oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline3
573  &\oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
574  &\oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline4
575  &\oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
576  &\oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline5
577  &\oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
578  &\oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline6
579  &\oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
580  &\oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline7
581  &\oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline}

582

⟨ Non-centered displays ⟩≡

583  \outer\def \begindisplay
584  {\obeylines\startdisplay}

585

586  {\obeylines\gdef\startdisplay#1

587  {\catcode`\^^M=5$$#1\halign\bgroup\indent##\hfil&&\qquad##\hfil\cr}}

588

589  \outer\def\enddisplay{\crcr\egroup$$}

⟨ Changing font ⟩≡

590  \def \bold#{\bgroup\bf\let\next = }

591

592  \def \ttt#{\bgroup\tt\let\next = }% typewriter

593

594  \def \stress #1%
595  {\begingroup
596  \def \next
597  {\def \next
598  {\setbox 0 = \hbox {\nexttoken}%
599  \ifdim \ht 0< \fontdimen 5 \font
600  \it #1%
601  \else
602  \it #1\/%
603  \fi}%
604  \ifcat A\noexpand \nexttoken
605  \next
606  \else
607  \ifcat 0\noexpand \nexttoken
608  \next
609  \else
610  \ifcat \space \noexpand \nexttoken
611  \else
612  %%% \message {?: \meaning \nexttoken}%
613  \fi
614  \it #1\/%
615  \fi
616  \fi
617  \endgroup}%
618  \futurelet \nexttoken \next }

⟨ Typeseting units of measure and syntactic quantities ⟩≡

619  \def \<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}}

620

621  \def \pt {\,{\rm pt}} % units of points, in math formulas
622  \def \in {\,{\rm in}} % units of inches, in math formulas
623  \def \em {\,{\rm em}} % units of em, in math formulas

⟨ Initialize the layout ⟩≡

624  \raggedbottom
625  \frenchspacing
626  \fullpagesfalse
627  \newwrite \cont
628  \openout \cont = \jobname.toc
629  \write \cont {\string\savecat\string\@}
630  \write \cont {\string\catcode`\string\@=11}

tweb.tw  Version 2.74  16

User-level definitions

\@@endcolumns 10_{386}
\@Alph 5_{154}
\@Ialph 5_{155}
\@Roman 5_{148}
\@alph 5_{149}
\@arabic 5_{146}
\@bsphack 5_{167}
\@columns 9_{318}
\@columnsplit 9_{350}
\@esphack 5_{170}
\@ialph 5_{150}
\@idxitem 6_{204}
\@index 6_{194}
\@nameuse 4_{137}
\@partialpage 8_{304}
\@roman 5_{147}
\@sanitize 5_{178}
\@savsf 5_{165}
\@savsk 5_{164}
\@wrindex 6_{187}
\abovecolumnskip 8_{296}
\Alph 4_{144}
\alph 4_{143}
\arabic 4_{140}
\beginchart 14_{546}
\beginchunks 7_{251}
\BEGINCODE 13_{502}
\begindefs 7_{245}
\begindisplay 14_{583}
\BEGINDOC 13_{511}
\beginuserleveldefs 7_{239}
\belowcolumnskip 8_{297}

\bf 8_{283} \bfit 2_{19}, 8_{282}

\bold 15_{590}
\botofcontents 3_{78}

\bye 11_{447}

\c@lumnhsize 8_{299}
\c@lumnoutput 10_{379}
\chapter 4_{124}
\chartstrut 14_{544}
\chk 7_{274}
\CODE 12_{486}
\csname 1_{4}
\ddx 7_{270}
\dordef 11_{424}
\doublecolumns 8_{309}

\em 15_{623}

                                 \endchart 14_{554}
                                 \ENDCODE 13_{507}
                                 \enddisplay 15_{589}
                                 \ENDDOC 13_{515}
                                 \endindex 7_{259}
                                 \evenline 14_{542}
                                 \glossary 6_{200}, 6_{202}
                                 \gobble 8_{293}
                                 \gobblemeaning 4_{121}
                                 \gobblespace 12_{461}
                                 \gtempa 6_{189}
                                 \gutter 8_{298}

\hex 13_{533}

                                 \htp@rtialpage 8_{301}
                                 \iffullpages 13_{518}
                                 \ifshowmisses 11_{419}

\in 15_{622}

\index 6_{185}, 6_{192}

                                 \indexspace 7_{222}
                                 \Input 6_{212}

\it 8_{281} \LA 12_{470}

                                 \makeglossary 6_{197}
                                 \makeindex 6_{182}
                                 \makeindexes 7_{262}
                                 \makeother 5_{176}
                                 \miscount 11_{418}

\N 13_{499}

                                 \newwrite 4_{134}

\next 4_{109}, 15_{596}, 15_{597} \NO 12_{496}

                                 \normalchart 14_{565}
                                 \number@fcolumns 8_{303}

\oct 13_{532}

                                 \oddline 13_{535}
                                 \oldstyle 8_{285}
                                 \pagegoal@limit 8_{300}
                                 \pagenumber 2_{39}
                                 \pagenumbering 5_{160}
                                 \pageref 11_{430}
                                 \paragraph 4_{132}
                                 \previousoutput 8_{302}, 8_{307}
                                 \printchunks 7_{233}
                                 \printcontents 3_{83}
                                 \printdefs 7_{229}
                                 \printuserleveldefs 7_{225}

\pt 15_{621}

                                 \quadcolumns 8_{311}

\RA 12_{471}

                                                                  \RCS 2_{35}
                                                                  \RCSversion 2_{35}

\ref 11_{421}

                                                                  \refpage 11_{432}
                                                                  \reposition 14_{563}
                                                                  \restorecat 1_{5}

\rm 8_{280}

                                                                  \Roman 4_{142}
                                                                  \roman 4_{141}
                                                                  \sanitize 4_{122}
                                                                  \savecat 1_{3}
                                                                  \section 4_{126}
                                                                  \see 6_{209}
                                                                  \seeterm 6_{208}
                                                                  \semifilbreak 13_{522}
                                                                  \settocparms 2_{56}
                                                                  \setupmodname 12_{463}
                                                                  \showmiss 11_{443}
                                                                  \singlec@lumnhsize 8_{305}
                                                                  \singlec@lumnvsize 8_{306}
                                                                  \singlecolumn 9_{313}
                                                                  \sixt@@n 4_{135}
                                                                  \startsection 3_{100}
                                                                  \stress 15_{594}
                                                                  \subitem 6_{205}
                                                                  \subsection 4_{128}
                                                                  \subsubitem 6_{206}
                                                                  \subsubsection 4_{130}
                                                                  \temp 11_{422}
                                                                  \textsize 2_{37}
                                                                  \themodtitle 4_{106}
                                                                  \titl@ 4_{105}
                                                                  \title 3_{87}
                                                                  \tocindent 3_{64}, 3_{69}
                                                                  \tocline 2_{52}
                                                                  \tocskip 2_{59}, 3_{66}
                                                                  \tocstyle 3_{63}, 3_{67}
                                                                  \topofcontents 3_{72}
                                                                  \triplecolumns 8_{310}

\tt 8_{284}

                                                                  \ttglue 12_{480}

\ttt 15_{592}

                                                                  \udx 7_{266}
                                                                  \upperbound 13_{520}
                                                                  \usedef 11_{435}

Definitions

\@ 1_{12}, 1_{7}, 1_{9}, 11_{448}, 15_{629},

15_{630}

\@@endcolumns 9_{321}
\@Alph 4_{144}
\@Ialph 5_{154}
\@Roman 4_{142}
\@alph 4_{143}
\@arabic 4_{140}
\@bsphack 6_{185}, 6_{193}, 6_{200},

6_{202}, 7_{266}, 7_{270}, 7_{274}

\@chunkfile 7_{272}, 7_{273}, 7_{274}

\@columns 8_{309}, 8_{310}, 8_{311}

\@columnsplit 10_{380}, 10_{393}
\@ctrerr 5_{153}, 5_{158}
\@defsfile 7_{268}, 7_{269}, 7_{270}
\@esphack 6_{191}, 6_{195}
\@glossaryfile 6_{198}, 6_{199},

6_{200}

\@ialph 5_{149}

\@idxitem 7_{243}, 7_{249}, 7_{255}

\@index 6_{193}
\@indexfile 6_{183}, 6_{184}, 6_{185}
\@nameuse 4_{140}, 4_{141}, 4_{142},

4_{143}, 4_{144}

\@ndcolumns 8_{308}, 9_{314}, 9_{319},

9_{321}, 10_{387} \@ne 5_{161}, 8_{285}

\@partialpage 9_{330}, 9_{343}, 9_{347},

9_{353}

\@roman 4_{141}
\@sanitize 6_{185}, 6_{193}, 6_{200},

6_{202}, 7_{266}, 7_{270}, 7_{274}

\@savsf 5_{168}, 5_{172}
\@savsk 5_{168}, 5_{173}
\@userleveldefsfile 7_{264},

7_{265}, 7_{266}

\@wrindex 6_{185}, 6_{200}, 7_{266},

7_{270}, 7_{274}

\abovecolumnskip 8_{296}, 9_{331}

\active 12_{458}, 12_{459}, 12_{483},

13_{514} \advance 3_{68}, 8_{290}, 9_{325}, 9_{337},

9_{344}, 9_{348}, 10_{399}, 10_{400},

11_{415}, 11_{438}, 14_{561}

\alloc@ 4_{135}
\authorfont 1_{15}, 3_{97}
\baselineskip 3_{73}, 3_{81}, 3_{88},

3_{91}, 3_{93}, 3_{95}, 3_{98}, 8_{289},

8_{290}, 8_{291}, 8_{292}, 9_{325},
9_{344}, 9_{345}, 9_{346}, 10_{400}

\begingroup 3_{76}, 6_{185}, 6_{193},

6_{200}, 6_{202}, 7_{240}, 7_{246},

7_{252}, 7_{266}, 7_{270}, 7_{274},

9_{320}, 10_{403}, 12_{470}, 12_{474},

13_{505}, 13_{513}, 15_{595}

\belowcolumnskip 8_{297}, 9_{314}

\bf 7_{257}, 15_{590}

                                 \bfit 12_{470}

\bgroup 14_{548}, 15_{587}, 15_{590},

15_{592}

\bigskip 13_{504}, 13_{512}

                                 \bigskipamount 8_{296}, 8_{297}
                                 \botofcontents 3_{86}

\box 10_{357}, 10_{363}, 10_{369}, 10_{375},

10_{389}, 10_{392}, 14_{539}, 14_{561},
14_{563}

                                 \c@lumnhsize 9_{336}, 9_{337}, 9_{338},

9_{342}

                                 \c@lumnoutput 9_{339}
                                 \catcode 1_{4}, 1_{6}, 1_{9}, 5_{176},

12_{458}, 12_{459}, 12_{464}, 12_{465},
12_{466}, 12_{467}, 12_{468}, 12_{483},
13_{514}, 15_{587}, 15_{630}

                                 \chapterfont 1_{13}, 4_{125}
                                 \char 14_{558}
                                 \chartstrut 14_{549}
                                 \closein 6_{217}
                                 \closeout 11_{449}

\cont 4_{110}, 11_{448}, 11_{449}, 15_{627},

15_{628}, 15_{629}, 15_{630}

                                 \copy 10_{406}

\count@ 2_{57}, 2_{58}, 3_{68}, 14_{547},

14_{558}, 14_{561}

\cr 13_{536}, 14_{539}, 14_{542}, 14_{550},

14_{556}, 15_{587}

                                 \crcr 15_{589}

\csname 1_{6}, 4_{138}, 5_{161}, 11_{423},

11_{433}

\dimen 9_{355}, 10_{361}, 10_{367},

10_{373}, 10_{398}, 10_{399}, 10_{400},
10_{401}, 11_{407}, 11_{408}, 11_{410},
11_{413}, 11_{415}

                                 \dimen@ 3_{68}, 3_{69}

\divide 8_{291}, 9_{338}, 9_{345}, 10_{401}

                                 \dordef 11_{423}

\dp 9_{355}, 10_{361}, 10_{367}, 10_{373},

14_{560}

\E 6_{190}

\egroup 14_{556}, 15_{589}

\eject 4_{125}, 7_{227}, 7_{231}, 7_{235},

9_{327}, 9_{333}, 10_{391}, 13_{529}

\else 2_{47}, 3_{65}, 5_{149}, 5_{153},

5_{154}, 5_{158}, 6_{216}, 9_{328},
11_{439}, 12_{461}, 13_{527}, 14_{560},
15_{601}, 15_{606}, 15_{609}, 15_{611}

\end 12_{455}

                                 \endcolumns 9_{316}
                                 \endcsname 1_{4}, 1_{6}, 4_{138}, 5_{161},

11_{423}, 11_{433}

                                 \endgraf 12_{488}
                                 \endgroup 3_{79}, 6_{191}, 6_{195},

7_{260}, 10_{396}, 11_{417}, 12_{471},

12_{484}, 13_{508}, 13_{516}, 15_{617}

                                                                  \escapechar 11_{444}

\evenline 14_{552}, 14_{567}, 14_{569},

14_{571}, 14_{573}, 14_{575}, 14_{577},
14_{579}, 14_{581}

                                                                  \exhyphenpenalty 3_{90}, 4_{116}
                                                                  \expandafter 1_{4}, 4_{122}, 5_{148},

9_{323}, 10_{395}, 11_{423}, 11_{433}

\fam 8_{280}, 8_{285}

\fi 2_{49}, 3_{70}, 4_{103}, 5_{146}, 5_{149},

5_{153}, 5_{154}, 5_{158}, 5_{168},
5_{173}, 5_{174}, 6_{201}, 6_{220},
9_{334}, 10_{358}, 10_{359}, 10_{364},
10_{365}, 10_{370}, 10_{371}, 10_{376},
10_{377}, 11_{411}, 11_{414}, 11_{437},
11_{441}, 12_{453}, 12_{461}, 13_{530},
13_{531}, 14_{560}, 15_{603}, 15_{613},
15_{615}, 15_{616}

                                                                  \filename 2_{45}
                                                                  \folio 2_{40}

\font 1_{13}, 1_{14}, 1_{15}, 1_{16}, 1_{17},

2_{19}, 2_{20}, 2_{21}, 2_{22}, 2_{23},
2_{24}, 2_{25}, 2_{26}, 2_{27}, 2_{28},
2_{29}, 2_{30}, 2_{31}, 15_{599}

                                                                  \fontdimen 15_{599}
                                                                  \footline 2_{51}
                                                                  \frenchspacing 15_{625}
                                                                  \fullpagesfalse 15_{626}
                                                                  \futurelet 15_{618}

\gdef 5_{161}, 12_{458}, 12_{459}, 12_{473},

12_{484}, 14_{586}

\global 5_{161}, 9_{321}, 9_{323}, 9_{329},

9_{330}, 9_{335}, 9_{336}, 9_{337},
9_{338}, 9_{339}, 9_{340}, 9_{341},
9_{348}, 9_{349}, 9_{352}, 10_{384},

10_{387}, 10_{389}, 10_{392}, 10_{394}, 10_{395}, 11_{407}, 11_{408}, 11_{410}, 11_{413}, 11_{415}, 11_{425}, 11_{438}, 12_{456}, 12_{461}, 14_{547}, 14_{561}

                                                                  \gobble 8_{294}
                                                                  \gobblemeaning 4_{122}
                                                                  \gtempa 6_{191}
                                                                  \gutter 8_{298}, 9_{337}

\H 13_{533}

\halign 14_{548}, 15_{587}

                                                                  \hangindent 6_{204}, 6_{205}, 6_{206}

\hbox 2_{43}, 2_{46}, 2_{53}, 2_{54}, 10_{357}, 10_{363}, 10_{369}, 10_{375}, 13_{532}, 13_{533}, 14_{539}, 14_{558}, 14_{563},

15_{598}, 15_{619}

                                                                  \headline 2_{42}

\hex 14_{539}, 14_{555}, 14_{556}

\hfil 2_{45}, 2_{46}, 2_{48}, 2_{51}, 2_{53}, 10_{363}, 10_{369}, 10_{375}, 14_{550},

15_{587}

                                                                  \hfuzz 8_{288}

\hoffset 2_{32}

\hrule 3_{94}, 14_{542}

\hrulefill 14_{538}

\hsize 2_{33}, 2_{37}, 3_{94}, 8_{288}, 9_{336}, 9_{340}, 9_{342}, 10_{381}, 14_{548}

\hskip 4_{111}, 6_{205}, 6_{206} \hss 2_{49}, 2_{54} \ht 9_{343}, 9_{347}, 10_{398}, 11_{415},

14_{559}, 15_{599}

\htp@rtialpage 9_{343}, 9_{344},

9_{345}, 9_{346}, 9_{347}, 9_{348}

\hyphenpenalty 3_{90}, 4_{116}

\ifcase 5_{149}, 5_{151}, 5_{154}, 5_{156} \ifcat 15_{604}, 15_{607}, 15_{610} \ifdim 5_{173}, 9_{326}, 11_{415}, 13_{525},

13_{528}, 14_{559}, 14_{560}, 15_{599}

\ifeof 6_{214}
\ifhmode 5_{168}, 5_{172}

\ifnum 2_{44}, 2_{58}, 3_{101}, 5_{146}, 9_{354}, 9_{356}, 10_{360}, 10_{362}, 10_{366}, 10_{368}, 10_{372}, 10_{374}, 11_{409}, 11_{412}, 12_{450}

\ifshowmisses 11_{437}

\ifx 11_{436}, 12_{461}

\ignorespaces 2_{53}, 5_{173}
\immediate 6_{184}, 6_{199}, 7_{265},

7_{269}, 7_{273}, 11_{428}

\indent 15_{587}
\index 6_{202}

\Input 3_{85}, 7_{228}, 7_{232}, 7_{237},

11_{427}

\input 6_{218}

\it 6_{210}, 13_{532}, 15_{600}, 15_{602},

15_{614} \item 7_{243}, 7_{249}, 7_{255} \jobname 2_{35}, 3_{85}, 6_{184}, 6_{186},

6_{199}, 6_{201}, 7_{228}, 7_{232}, 7_{237}, 7_{265}, 7_{267}, 7_{269}, 7_{271}, 7_{273}, 7_{275}, 11_{427}, 11_{428}, 15_{628}

\kern 9_{355}, 10_{361}, 10_{367}, 10_{373},

13_{497}, 13_{532}, 14_{563} \langle 12_{470}, 15_{619}

\lastskip 5_{168}
\leaders 2_{53}
\leavevmode 12_{490}, 15_{619}
\leftline 3_{74}
\leftskip 4_{114}

\let 6_{188}, 7_{236}, 7_{243}, 7_{249}, 7_{255}, 8_{294}, 8_{308}, 9_{316}, 9_{321}, 10_{387}, 11_{425}, 12_{456}, 12_{484}, 12_{488}, 15_{590}, 15_{592}

\line 2_{53}, 3_{97}
\llap 13_{497}
\loop 10_{405}

\lower 14_{539}, 14_{544}, 14_{551} \lq 12_{458}

\m@ne 3_{68}

\makeother 5_{179}, 5_{180}, 5_{181},

12_{475}, 12_{476}, 12_{477}

\meaning 4_{122}

\message 4_{107}, 6_{186}, 6_{201}, 6_{215}, 6_{219}, 7_{267}, 7_{271}, 7_{275}, 11_{445}, 12_{451}

\miscount 11_{438}, 12_{450}, 12_{451}

\multiply 8_{292}, 9_{346}
\multispan 14_{538}
\newlinechar 1_{1}
\newwrite 6_{183}, 6_{198}, 7_{264},

7_{268}, 7_{272}, 11_{428}, 15_{627} \next 4_{113}, 15_{590}, 15_{592}, 15_{605},

15_{608}, 15_{618} \nexttoken 15_{598}, 15_{604}, 15_{607},

15_{610}, 15_{618}

\ninebf 2_{24}, 8_{283}
\ninebxit 2_{26}, 8_{282}
\nineex 2_{31}, 8_{279}

\ninei 2_{28}, 8_{277}, 8_{285}, 13_{497}

\nineit 2_{25}, 8_{281}

\ninerm 2_{22}, 8_{276}, 8_{280}

\ninesy 2_{30}
\ninett 2_{27}, 8_{284}

\noalign 14_{537}, 14_{540}, 14_{542}

\nobreak 4_{118}

\noexpand 4_{110}, 4_{112}, 15_{604},

15_{607}, 15_{610} \noindent 3_{89}, 3_{96}, 4_{117}, 13_{497}

\nointerlineskip 9_{314}, 14_{537},

14_{540} \null 14_{551}, 14_{555} \number 5_{146}, 11_{431}

\number@fcolumns 9_{335}, 9_{354},

9_{356}, 10_{360}, 10_{362}, 10_{366}, 10_{368}, 10_{372}, 10_{374}, 10_{384}, 10_{401}, 11_{409}, 11_{412}

\obeylines 12_{478}, 12_{484}, 13_{506},

14_{584}, 14_{586} \obeyspaces 12_{456}, 12_{461}, 12_{478} \oct 14_{552}, 14_{566}, 14_{567}, 14_{568},

14_{569}, 14_{570}, 14_{571}, 14_{572}, 14_{573}, 14_{574}, 14_{575}, 14_{576}, 14_{577}, 14_{578}, 14_{579}, 14_{580}, 14_{581}

\oddline 14_{566}, 14_{568}, 14_{570}, 14_{572}, 14_{574}, 14_{576}, 14_{578}, 14_{580}

\oldstyle 13_{500}
\openin 6_{213}

\openout 6_{184}, 6_{199}, 7_{265},

7_{269}, 7_{273}, 11_{428}, 15_{628} \or 5_{149}, 5_{151}, 5_{152}, 5_{154},

5_{156}, 5_{157} \outer 11_{447}, 14_{583}, 15_{589} \output 9_{323}, 9_{329}, 9_{339}, 10_{389},

10_{395} \p@ 7_{254} \pagegoal 9_{324}, 9_{332}, 10_{390},

13_{525}

\pagegoal@limit 9_{324}, 9_{325},

9_{326} \pageno 2_{44}, 4_{112}, 5_{161}, 11_{431}

\pagenumber 2_{46}, 7_{236}
\pagenumbering 5_{163}
\pagetotal 9_{326}, 9_{332}, 10_{390},

13_{525}, 13_{528} \par 3_{92}, 6_{204}, 6_{205}, 6_{206},

7_{263}, 9_{322}, 10_{388}, 12_{454},

12_{488}, 13_{523}

\parindent 8_{287}, 13_{497}

\parskip 7_{254}, 8_{287}, 12_{489}

\penalty 3_{61}
\postdisplaypenalty 14_{547}
\previousoutput 9_{323}, 10_{383},

10_{395} \qquad 13_{497}, 15_{587}

\raggedbottom 15_{624}
\raise 14_{555}

\rangle 12_{471}, 15_{619}

\RCS 2_{48}
\RCSversion 2_{45}

\ref 11_{431} \refo 11_{428}, 11_{431} \relax 5_{171}, 5_{176}, 6_{188}, 7_{223},

7_{236}, 8_{308}, 10_{387}, 11_{436},

12_{458}, 12_{468}

\repeat 11_{416}
\reposition 14_{559}, 14_{560}
\restorecat 1_{12}, 11_{448}
\rightskip 3_{89}, 4_{115}

\rm 3_{76}, 8_{280}, 13_{532}, 13_{533},

15_{621}, 15_{622}, 15_{623}

\romannumeral 5_{147}, 5_{148}
\sanitize 4_{106}, 4_{111}
\savecat 1_{7}, 15_{629}
\scriptfont 8_{276}, 8_{277}

\section 7_{242}, 7_{248}, 7_{256}

\sectionfont 1_{16}, 4_{127}
\seeterm 6_{210}
\semifilbreak 3_{80}, 4_{102}, 13_{503},

13_{509} \setbox 9_{330}, 9_{352}, 9_{355}, 10_{361},

10_{367}, 10_{373}, 10_{389}, 10_{392}, 10_{406}, 11_{407}, 11_{408}, 11_{410}, 11_{413}, 14_{539}, 14_{558}, 14_{563},

15_{598}

\settocparms 4_{108}
\setupmodname 12_{470}
\seveni 2_{29}, 8_{277}
\sevenrm 2_{23}, 8_{276}
\sevensy 8_{278}
\showmiss 11_{437}
\singlec@lumnhsize 9_{340}, 10_{357},

10_{363}, 10_{369}, 10_{375}, 10_{381}

\singlec@lumnvsize 9_{341}, 10_{382},

10_{384}, 10_{394}

\singlecolumn 7_{226}, 7_{230}, 7_{234},

9_{316}

\smash 14_{539}

\space 4_{111}, 12_{451}, 15_{610}

\spacefactor 5_{168}, 5_{172}
\spaceskip 12_{484}
\splittopskip 10_{402}
\startdisplay 14_{584}, 14_{586}
\startsection 4_{125}, 4_{127}, 4_{129},

4_{131}, 4_{133} \string 1_{4}, 1_{6}, 4_{110}, 6_{190},

11_{431}, 11_{448}, 15_{629}, 15_{630}

\strut 2_{43}
\supereject 12_{454}
\tabskip 14_{549}
\temp 11_{425}
\tenbf 4_{129}
\tenbxit 2_{19}

\tenit 4_{131}, 4_{133} \tenss 2_{20}, 2_{45}, 2_{48}, 3_{67}

\tenssbf 2_{21}, 3_{63}
\textfont 8_{276}, 8_{277}, 8_{278},

8_{279}

\textsize 2_{37}, 2_{43}

\the 1_{4}, 3_{69}, 4_{112}, 9_{323}, 10_{383},

10_{395}, 12_{451}

\themodtitle 4_{107}, 4_{111}

\thepage 5_{161}, 6_{188}, 6_{190}

\titl@ 4_{106}
\titlefont 1_{14}, 3_{92}
\tocfont 1_{17}, 3_{74}
\tocindent 4_{111}
\tocline 4_{110}
\tocskip 4_{110}
\tocstyle 4_{111}
\topofcontents 3_{84}

\topskip 8_{289}, 10_{399}, 10_{402}

\triplecolumns 7_{244}, 7_{250}

\tt 7_{244}, 7_{250}, 12_{478}, 13_{533},

15_{592}

\ttfinish 12_{491}

\ttglue 12_{481}, 12_{484} \ttverbatim 12_{473}, 12_{484}, 12_{487} \unvbox 9_{331}, 9_{353}, 9_{355}, 10_{361},

10_{367}, 10_{373}, 10_{397}

\upperbound 13_{524}, 13_{528}
\uppercase 5_{148}
\usedef 11_{433}
\vbadness 10_{404}

\vbox 4_{114}, 9_{331}, 9_{352}, 9_{355},
10_{361}, 10_{367}, 10_{373}, 14_{544}

                                 \vcenter 14_{563}

\vfil 4_{125}, 9_{355}, 10_{361}, 10_{367},
10_{373}
\vfill 7_{227}, 7_{231}, 7_{235}, 9_{327},
12_{454}, 13_{529}

                                 \vglue 3_{88}
                                 \vrule 14_{550}

\vsize 2_{34}, 8_{290}, 8_{291}, 8_{292},
9_{341}, 9_{348}, 9_{349}, 10_{382},
10_{384}, 10_{394}, 13_{524}
\vskip 2_{60}, 3_{62}, 3_{73}, 3_{75},
3_{81}, 3_{93}, 3_{95}, 3_{98}, 4_{104},
4_{119}, 9_{314}, 9_{331}
\vsplit 11_{407}, 11_{408}, 11_{410},
11_{413}

                                 \wlog 8_{294}

\write 4_{110}, 4_{135}, 6_{190}, 11_{431},
11_{448}, 15_{629}, 15_{630}
\z@ 3_{64}, 4_{125}, 4_{127}, 4_{129},
4_{131}, 4_{133}, 5_{173}, 8_{287},
11_{415}, 12_{489}

Chunks

⟨ * ⟩ 1

⟨ Balance columns ⟩ 9, 10 ⟨ Changing font ⟩ 13, 15 ⟨ Cross-reference macros ⟩ 1, 11 ⟨ Fonts for typeseting headings, chapter names, etc. ⟩ 1 ⟨ Headlines ⟩ 1, 2 ⟨ Index macros ⟩ 1, 4–6 ⟨ Initialize the layout ⟩ 1, 15 ⟨ Macros for printing web indexes ⟩ 6 ⟨ Macros written by web2tex script ⟩ 1, 12 ⟨ Multicolumn environment for indexes ⟩ 1, 8, 9 ⟨ Ninepoint environment for printing indexes ⟩ 7, 8 ⟨ Non-centered displays ⟩ 13, 14 ⟨ Page dimensions ⟩ 1, 2 ⟨ Round \vsize to the nearest multiple of \baselineskip ⟩ 2, 8 ⟨ Setting layout of web source ⟩ 1 ⟨ Table of contents ⟩ 1, 2 ⟨ Title, chapter, section... macros ⟩ 1, 3 ⟨ Typeseting font tables ⟩ 13 ⟨ Typeseting units of measure and syntactic quantities ⟩ 13, 15 ⟨ Web source formatting macros ⟩ 1, 13