LitTEX.mac 1

1. Preamble By default, LitTEX typesets the file name on the title page. This is after the path has been removed. No other processing of the name is performed. So the name will be in the case the user typed on the command line. LitTEX.mac should be typeset slightly different. The filename is just littex.mac. So we override that definition here. Also this section is used to generate the version and date-time stamp. This is automatically done using the TLib version control system. This is done by using combination of %! and %# formatting lines. None of the commands actually appear in the formatted output.

LitTEX is a relatively simple macro that is based on the TEX macro.

\def\LitTeX{Lit\TeX}

Typesetting a backslash is a pain in text mode. \backslash is only defined to work in math mode. \BS simplifies the problem. It takes a parameter so it is easier to override the font that token names use. In many cases it is desirable to typeset them in monospaces. That can easilly be done via a trivial modification to this macro. I prefer to let the token name typeset in roman.

\def\BS#1{{\tt\char’134}#1}

Just a little meaningless macro to test to see if active characters are properly indexed.

\def\IndexTestOfActive{Just˜ some˜ junk˜ text.}

The running head is currently a constant. It is just the \JobName. In a future version it may be desirable to print the current major or minor section in the running head.

\headline={\tenit%

\ifodd\pageno%

\hfil\JobName\rlap{\bf\quad\folio}% \else

\llap{\bf\folio\quad}\JobName\hfil%

    \fi}

\footline={\hfil} 2. Fonts. Here is were any fonts that are needed are defined. Currently, LitTEX uses just the standard set of Computer Modern fonts loaded by plain. It is relatively easy to override this seletion. If that is desired, here is the place to do it.

\font\titlefont=cmr7␣scaled\magstep4 % title on the contents page 3. Character Definitions. This section defines the relacement code sequences for the special characters in TEX. Some of the characters can be simple chardefs. Others require the character to be selected from a font that has them. In this case the monospaced font is used.

\def\A{{\tt\char”5C}} % the backslash character ”\” \def\B{{\tt\char”7B}} % left curly brace ”{” \def\C{{\tt\char”7D}} % right curly brace ”}”

\chardef\D=”24 % dollar sign ”£” \chardef\E=”26 % ampersand ”&” \chardef\F=”23 % number sign ”#”

\def\G{{\tt\char”0B}} % up arrow ”↑” \def\H{{\tt\char”5F}} % underscore ”_”

\chardef\I=”7E % tilde ”˜ ” \chardef\J=”25 % percent ”%”

% an escaped carridge return is relatively rare. To % get one requires a line to end with an escape char. \def\K{$\hookleftarrow$} % the carridge return 4. Indentation. Leading indentation requires a lot of special handling. The macros to actually output the result are quite simple.

\newdimen\IndentDimen \IndentDimen=5pt

\def\1#1{\hskip#1\IndentDimen}

4.1. The Space Character. If a space or tab is embedded in a macro this needs to be shown. cmtt10 has a character designed specifically for this purpose.

\def\S{{\tt\char”20}}

4.2. Blank Lines. Multiple blank lines are processed by the LitTEX program. When it is appropriate, blank lines are added to the output via the \BL command. Currently this is let equal to a medium break.

\let\BL=\medbreak 5. Comments. All percent characters, % are processed. Depending on the location in on the line comments are processed differently. If they occur in the left most postion then the line is output using \ComL. Otherwise they are set left flush by \Com. Lines are prepared using the \L macro.

\def\ComL#1{{\it\%#1}}

\def\Com#1{\hfill{\it\%#1}}

\def\L#1{\hbox␣to␣\hsize{#1\hfil}} 6. Rules. Multiple percent characters, %, in the left hand margin are used to simulate rules. 64 or more will generate a 2 half point rules. 16 or more will generate one half point rule. 4 or more will generate a hairline rule. The macros for rules do play a few tricks. Each rule issues a negative penalty. This means that it is a good place to break the page. Because of the way the rules are generated, if the rule would fall at the top of the page it is supressed. This is done via vertical leaders.

6.1. Hairline Rules. Hairline rules are only one tenth of a point thick. They have a penalty of -200.

\def\HairLine{% \par% \begingroup%

\offinterlineskip% \setbox0=\vbox{\vskip2pt\line{\leaders\hrule␣height␣.1pt\hfil}\vskip2pt}% \penalty-200\bigskip% \cleaders\copy0\vskip\ht0% \bigskip%

\endgroup}

6.2. SingleHeavyLine. The rules are half a point wide. The penalty is -300.

\def\SingleHeavyLine{% \par% \begingroup%

\offinterlineskip% \setbox0=\vbox{\vskip2pt\line{\leaders\hrule␣height␣.5pt\hfil}\vskip2pt}% \penalty-300\bigskip% \cleaders\copy0\vskip\ht0% \bigskip%

\endgroup}

6.3. DoubleHeavyLine. The rules are half a point wide. The penalty is -400.

\def\DoubleHeavyLine{% \par% \begingroup%

\offinterlineskip% \setbox0=\vbox{\vskip2pt\line{\leaders\hrule␣height␣1pt\hfil}\vskip2pt}% \penalty-400\bigskip% \cleaders\copy0\vskip2\ht0% \bigskip%

\endgroup} 7. Table of Contents Setup. To generate a table of contents an output file needs to be created.

\newwrite\TOCAux \openout\TOCAux=\jobname.aux

\def\ReadTOC{\input\jobname.aux}

7.1. Table of Contents Tricks. Generating the table of contents requires a few minor tricks. First we need to globally fake some the macros that are used in the table of contents.

\let\TocMajor=\let \let\TocMinor=\let

\def\TOCNumber#1#2{\hbox␣to␣2em{\hfil#1}.\hbox␣to␣2.5em{#2\hfil}}

\def\TOCLeaders{\leaders\hbox␣to␣.5em{.\hfil}\hfil}

\def\RealTocMajor␣[#1][#2][#3]{% \line{\TOCNumber{#1}{}#2\TOCLeaders#3}}

\def\RealTocMinor␣[#1][#2][#3][#4]{% \line{\TOCNumber{#1}{#2.}\quad#3\TOCLeaders#4}} 8. Section Macros. Major and Minor section macros are quite simple. Major sections force a page eject. Minor macros do a good break. Major sections force comments to start on the next line. Minor sections allow text to run-in.

The table of contents is generated using the Major and Minor section entries.

\def\MajorSection#1#2{%

\vfil\eject%

% little trick stolen from The TeXBook page 332, answer to 21.10

{\let\the=0\edef\next{\write\TOCAux{\TocMajor[#1][#2][\the\count0]}}\next}% \L{\bf␣#1.\quad#2}\noindent\ignorespaces}

\def\MinorSection#1#2#3{%

\bigbreak%

% little trick stolen from The TeXBook page 332, answer to 21.10

{\let\the=0\edef\next{\write\TOCAux{\TocMinor[#1][#2][#3][\the\count0]}}\next}% \noindent{\bf␣#1.#2.\quad#3}} 9. End of File. \EndOfFile is the last line in the file. This macro closes the table of contents file, prepares the definitions to process the table of contents file, and reads in the table of contents file

\outer\def\EndOfFile{% \par\vfill\supereject% \let\TocMajor=\RealTocMajor% \let\TocMinor=\RealTocMinor% \headline={\hfil} \pageno=0 % Now the contents appears on page 0. \vbox␣to␣\vsize{%

\vfill%

\centerline{\titlefont\JobName}% \centerline{\titlefont\Version}% \centerline{\titlefont\Dated}% \vfill% \ReadTOC\relax% \par\vfill}

\supereject% \end}

% There needs to be a default value for Version and Dated.

\def\Version{} \def\Dated{} 10. Index Macros. The index processing quite simple. One possible enhancement would be to support printing the page number. This would require two passes over the data.

\def\Index{% \write\TOCAux{} % Ensure that the table of contents file isn’t empty \closeout\TOCAux% \doublecolumns% \parindent=0pt}

\newdimen\ICalc

\def\IEntry#1#2{{\parfillskip=0pt\hangafter=1\hangindent=3em\relax␣#1\TOCLeaders#2\par}}

\def\EndIndex{\singlecolumn} 11. Column Macros Going from single to double column and back can be done many ways. This code is stolen from eplain.tex.

% make @ a character \catcode‘@=11

% define some variables and assign them default values

\newskip\abovedoublecolumnskip␣\abovedoublecolumnskip␣=␣\bigskipamount \newskip\belowdoublecolumnskip␣\belowdoublecolumnskip␣=␣\bigskipamount \newdimen\gutter␣\gutter␣=␣2pc \newdimen\doublecolumnhsize \newbox\@partialpage \newdimen\singlecolumnhsize \newdimen\singlecolumnvsize \newtoks\previousoutput

11.1. Double Columns Going from single columns to double columns is not difficult. First some simple calculations and assignments. The previous output routine is saved. Then the page is flushed. Then a new output routine is assigned as well as the the various sizes.

The eplain macros set the vertical size to twice the normal length and then split it at the end.

\def\doublecolumns{% \doublecolumnhsize␣=␣\hsize % If \hsize changed, get the new value. \par % Shouldn’t start in horizontal mode. \previousoutput␣=␣\expandafter{\the\output}% \advance\doublecolumnhsize␣by␣-\gutter \divide\doublecolumnhsize␣by␣2 \output␣=␣{%

\global\setbox\@partialpage␣=

\vbox{\unvbox255\vskip\abovedoublecolumnskip}%

   }%

\pagegoal␣=␣\pagetotal

\break % Now expand the \output just above. \output␣=␣{\doublecolumnoutput}% \singlecolumnhsize␣=␣\hsize \singlecolumnvsize␣=␣\vsize \hsize␣=␣\doublecolumnhsize \vsize␣=␣2\vsize

}%

11.2. Splitting the Column The long output column is split.

\def\@doublecolumnsplit{% \splittopskip␣=␣\topskip \splitmaxdepth␣=␣\maxdepth \dimen0␣=␣\singlecolumnvsize

\advance\dimen0␣by␣-\ht\@partialpage

\advance\dimen0␣by␣-\ht\footins

\ifvoid\footins\else␣\advance\dimen0␣by␣-\skip\footins␣\fi \advance\dimen0␣by␣-\ht\topins \ifvoid\topins\else␣\advance\dimen0␣by␣-\skip\topins␣\fi

\begingroup \vbadness␣=␣10000 \global\setbox1␣=␣\vsplit255␣to␣\dimen0 \wd1␣=␣\hsize \global\setbox3␣=␣\vsplit255␣to␣\dimen0 \wd3␣=␣\hsize␣

\endgroup \global\setbox4␣=␣\vbox{\unvbox255␣\penalty\outputpenalty}% \global\setbox255

=␣\vbox{% \unvbox\@partialpage \hbox␣to␣\singlecolumnhsize{\box1\hfil\box3}%

    }%
}%

11.3. Double Column Output Routine. Splits the output and rebuilds the output box. Then calls the original output routine.

\def\doublecolumnoutput{% \@doublecolumnsplit \hsize␣=␣\singlecolumnhsize % Local to the \output group. \vsize␣=␣\singlecolumnvsize \the\previousoutput \unvbox4

}%

11.4. Single Column Restores from double column mode. First must flush out the partial double column page. Then restores it into the output stream. Finally restores the dimensions and original output routine.

\def\singlecolumn{% \par % Shouldn’t start in horizontal mode. \output␣=␣{\global\setbox1␣=␣\box255}% \pagegoal␣=␣\pagetotal \break % Exercise the page builder, i.e., \output. \setbox255␣=␣\box1 % Retrieve what the fake \output set. \begingroup

\singlecolumnvsize␣=␣\ht\@partialpage

\advance\singlecolumnvsize␣by␣\ht\footins

\ifvoid\footins\else␣\advance\singlecolumnvsize␣by␣\skip\footins\fi \advance\singlecolumnvsize␣by␣\ht\topins \ifvoid\topins\else␣\advance\singlecolumnvsize␣by␣\skip\topins\fi \dimen0␣=␣\ht255␣\divide\dimen0␣by␣2 \advance\singlecolumnvsize␣by␣\dimen0 \advance\singlecolumnvsize␣by␣.5\baselineskip \@doublecolumnsplit

\endgroup \hsize␣=␣\singlecolumnhsize \vsize␣=␣\singlecolumnvsize \output␣=␣\expandafter{\the\previousoutput}% \unvbox255 \vskip\belowdoublecolumnskip \nointerlineskip

}%

% restore @ to being an other. \catcode‘@=12 % at signs are no longer letters 12. Index. A complete cross reference of all the macros used.

\@doublecolumnsplit . . . . . . . . . . . . 11.2, 11.3, 11.4 \@partialpage . . . . . . . . . . . . . . . 11, 11.1, 11.2, 11.4 \A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \abovedoublecolumnskip . . . . . . . . . . . . . . . 11, 11.1 \advance. . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.2, 11.4 \B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \baselineskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 \begingroup. . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.2, 11.4 \belowdoublecolumnskip . . . . . . . . . . . . . . . 11, 11.4 \bf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 8 \bigbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \bigskip . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3 \bigskipamount. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \BL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 \box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \break. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.4 \BS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \catcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11, 11.4 \centerline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \char. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 3, 4.1 \chardef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \cleaders. . . . . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3 \closeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \Com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 \ComL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 \copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3 \count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \Dated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \def . . . . . . . . . . . . . . . . . . . . . . . . 1, 3, 4, 4.1, 5, 6.1,

6.2, 6.3, 7, 7.1, 8, 9, 10, 11.1, 11.2, 11.3, 11.4 \dimen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \divide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.4 \doublecolumnhsize . . . . . . . . . . . . . . . . . . . 11, 11.1 \doublecolumnoutput . . . . . . . . . . . . . . . . 11.1, 11.3 \doublecolumns. . . . . . . . . . . . . . . . . . . . . . . 10, 11.1 \DoubleHeavyLine . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 \E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 11.2, 11.4 \end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \endgroup . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.2, 11.4 \EndIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \EndOfFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \expandafter . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.4 \F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 11.2, 11.4 \folio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 \footins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \footline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \global . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.2, 11.4 \gutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11, 11.1 \H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \HairLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 \hangafter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \hangindent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \hbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 7.1, 11.2 \headline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 9 \hfil. . . . . . . . . . . . . . . 1, 5, 6.1, 6.2, 6.3, 7.1, 9, 11.2 \hfill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 \hookleftarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \hrule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3 \hsize . . . . . . . . . . . . . . . . . . 5, 11.1, 11.2, 11.3, 11.4 \hskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \ht. . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.2, 11.4 \I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \ICalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \IEntry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \ifodd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \ifvoid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \ignorespaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \IndentDimen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \IndexTestOfActive . . . . . . . . . . . . . . . . . . . . . . . . . 1 \input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 \J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \JobName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 9 \jobname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 8 \leaders . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 7.1 \let . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2, 7.1, 8, 9 \line . . . . . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 7.1 \LitTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \llap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \magstep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 \MajorSection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \maxdepth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \medbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 \MinorSection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \newbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \newdimen. . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 10, 11 \newskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \newtoks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \newwrite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \noindent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \nointerlineskip. . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 \offinterlineskip. . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3 \openout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \outer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \output. . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.3, 11.4 \outputpenalty . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \pagegoal . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.4 \pageno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 9 \pagetotal . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1, 11.4 \par. . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 9, 10, 11.1, 11.4 \parfillskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \parindent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \penalty . . . . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.2 \previousoutput . . . . . . . . . . . . . 11, 11.1, 11.3, 11.4 \quad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 7.1, 8 \ReadTOC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 9 \RealTocMajor . . . . . . . . . . . . . . . . . . . . . . . . . 7.1, 9 \RealTocMinor . . . . . . . . . . . . . . . . . . . . . . . . . 7.1, 9 \relax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 10 \rlap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 \setbox . . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.1, 11.2, 11.4 \singlecolumn . . . . . . . . . . . . . . . . . . . . . . . . 10, 11.4 \singlecolumnhsize . . . . . . 11, 11.1, 11.2, 11.3, 11.4 \singlecolumnvsize . . . . . . 11, 11.1, 11.2, 11.3, 11.4 \SingleHeavyLine . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 \skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \splitmaxdepth . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \splittopskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \supereject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \tenit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 \the. . . . . . . . . . . . . . . . . . . . . . . . . 8, 11.1, 11.3, 11.4 \titlefont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2, 9 \TOCAux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 8, 10 \TOCLeaders . . . . . . . . . . . . . . . . . . . . . . . . . 7.1, 10 \TocMajor . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1, 8, 9 \TocMinor . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1, 8, 9 \TOCNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 \topins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2, 11.4 \topskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \tt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 3, 4.1 \unvbox . . . . . . . . . . . . . . . . . . 11.1, 11.2, 11.3, 11.4 \vbadness. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \vbox . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 9, 11.1, 11.2 \Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \vfil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \vfill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \vsize . . . . . . . . . . . . . . . . . . . . . . . 9, 11.1, 11.3, 11.4 \vskip . . . . . . . . . . . . . . . . . . 6.1, 6.2, 6.3, 11.1, 11.4 \vsplit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \wd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 \write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 10 ˜ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 3

Version 0.1 (23-Feb-94 0:51:04)

1. Preamble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Fonts.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Character Definitions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Indentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. The Space Character. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2. Blank Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5. Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6. Rules.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.1. Hairline Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2. SingleHeavyLine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.3. DoubleHeavyLine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. Table of Contents Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.1. Table of Contents Tricks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8. Section Macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9. End of File.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10. Index Macros.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11. Column Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11.1. Double Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11.2. Splitting the Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11.3. Double Column Output Routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 11.4. Single Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12. Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13