summaryrefslogtreecommitdiff
path: root/Master/texmf-doc/doc/english/impatient/eplain.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-doc/doc/english/impatient/eplain.tex')
-rw-r--r--Master/texmf-doc/doc/english/impatient/eplain.tex1196
1 files changed, 0 insertions, 1196 deletions
diff --git a/Master/texmf-doc/doc/english/impatient/eplain.tex b/Master/texmf-doc/doc/english/impatient/eplain.tex
deleted file mode 100644
index 19ad8cf59f6..00000000000
--- a/Master/texmf-doc/doc/english/impatient/eplain.tex
+++ /dev/null
@@ -1,1196 +0,0 @@
-%% @texfile{
-%% author = "Karl Berry et al.",
-%% version = "1.9a",
-%% date = "28jul03",
-%% filename = "eplain.tex",
-%% email = "karl@cs.umb.edu",
-%% codetable = "ISO/ASCII",
-%% supported = "yes",
-%% docstring = "This file defines macros that expand on plain TeX, and
-%% is used in the production of the book TeX for the Impatient. It was
-%% originally version 1.9 from 11mar91, and differs only in this header
-%% material. Sadly, newer versions of eplain have more
-%% incompatibilities with the features we used to produce TFTI. Of
-%% course new documents should use the latest eplain, available from
-%% http://tug.org/eplain and from http://www.ctan.org/macros/eplain.
-%% ",
-%% }
-\def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
-\chardef\letter = 11
-\chardef\other = 12
-\catcode`@ = \letter
-\def\uncatcodespecials{%
- \def\do##1{\catcode`##1 = \other}%
- \dospecials
-}%
-{%
- \makeactive\^^M
- \long\gdef\letreturn#1{\let^^M = #1}%
-}%
-\def\gobble#1{}%
-\def\gobbletwo#1#2{}%
-\def\gobblethree#1#2#3{}%
-\def\@gobblemeaning#1:->{}%
-\def\sanitize{\expandafter\@gobblemeaning\meaning}%
-\def\futurenonspacelet#1{\def\cs{#1}%
- \afterassignment\@stepone\let\nexttoken=
-}%
-\def\\{\let\@stoken= }%
-\\ % now \@stoken is a space token (\\ is a control symbol, so that
-\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
-\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
- \else\let\@@next=\nexttoken\fi \@@next}%
-\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
-\let\@plainwlog = \wlog
-\let\wlog = \gobble
-\newlinechar = `^^J
-\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
- \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
- \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\def\tracingboxes{\showboxbreadth = \maxdimen \showboxdepth = \maxdimen}%
-\newdimen\hruledefaultheight \hruledefaultheight = 0.4pt
-\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
-\newdimen\vruledefaultwidth \vruledefaultwidth = 0.4pt
-\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
-\def\evrule{\vrule width\vruledefaultwidth}%
-\begingroup
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \gdef\lbracechar[{]%
- \gdef\rbracechar[}]%
- \catcode`\% = \other
- \gdef\percentchar[%]\endgroup
-\def^^L{\par}%
-\let\@ifempty = \iffalse
-\ifx\@undefinedmessage\@undefined
- \def\@undefinedmessage
- {No .aux file; I won't warn you about undefined labels.}%
-\fi
-%% @texfile{
-%% author = "Karl Berry and Oren Patashnik",
-%% version = "0.99h",
-%% date = "24 Apr 1991",
-%% filename = "btxmac.tex",
-%% address = "Please use electronic mail",
-%% checksum = "812 4053 30557",
-%% email = "opbibtex@neon.stanford.edu",
-%% codetable = "ISO/ASCII",
-%% supported = "yes",
-%% docstring = "Defines macros that make BibTeX work with plain TeX",
-%% }
-\edef\cite{\the\catcode`@}%
-\catcode`@ = 11
-\let\@oldatcatcode = \cite
-\chardef\@letter = 11
-\chardef\@other = 12
-\def\@innerdef#1#2{\edef#1{\expandafter\noexpand\csname #2\endcsname}}%
-\@innerdef\@innernewcount{newcount}%
-\@innerdef\@innernewdimen{newdimen}%
-\@innerdef\@innernewif{newif}%
-\@innerdef\@innernewwrite{newwrite}%
-\def\@gobble#1{}%
-\ifx\inputlineno\@undefined
- \let\@linenumber = \empty % Pre-3.0.
-\else
- \def\@linenumber{\the\inputlineno:\space}%
-\fi
-\def\@getoptionalarg#1{\let\temp = #1\futurelet\next\@bracketcheck}%
-\def\@bracketcheck{\begingroup
- \if [\next
- \aftergroup\@@getoptionalarg
- \else
- \global\let\@optionalarg = \empty
- \aftergroup\temp
- \fi
-\endgroup}%
-\def\@@getoptionalarg[#1]{%
- \def\@optionalarg{#1}%
- \temp
-}%
-\def\@tokstostring#1{\@ttsA#1 \@ttsmarkA}%
-\def\@ttsA#1 #2\@ttsmarkA{%
- \@ifempty{#1}\else
- \@ttsB #1\@ttsmarkB
- \@ifempty{#2}\else
- \@spacesub\@ttsA#2\@ttsmarkA
- \fi
- \fi
-}%
-\def\@ttsB#1{%
- \ifx #1\@ttsmarkB\else
- \string #1%
- \expandafter\@ttsB
- \fi
-}%
-\def\@ttsmarkB{\@ttsmarkB}% should never be expanded
-\def\@spacesub{+}%
-\def\@ifempty#1{\@@ifempty #1\@emptymarkA\@emptymarkB}%
-\def\@@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
-\def\@emptymarkA{\@emptymarkA}% Again, so \ifx won't complain.
-\def\@nnil{\@nil}%
-\def\@fornoop#1\@@#2#3{}%
-\def\@for#1:=#2\do#3{%
- \edef\@fortmp{#2}%
- \ifx\@fortmp\empty \else
- \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
- \fi
-}%
-\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
- #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi
-}%
-\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
- \let\@nextwhile=\@fornoop \else
- #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}%
-}%
-\@innernewif\if@fileexists
-\def\@testfileexistence{\@getoptionalarg\@finishtestfileexistence}%
-\def\@finishtestfileexistence#1{%
- \begingroup
- \def\extension{#1}%
- \immediate\openin0 =
- \ifx\@optionalarg\empty\jobname\else\@optionalarg\fi
- \ifx\extension\empty \else .#1\fi
- \space
- \ifeof 0
- \global\@fileexistsfalse
- \else
- \global\@fileexiststrue
- \fi
- \immediate\closein0
- \endgroup
-}%
-\toks0 = {%
-\def\bibliographystyle#1{%
- \@readauxfile
- \@writeaux{\string\bibstyle{#1}}%
-}%
-\let\bibstyle = \@gobble
-\def\bibliography#1{%
- \@readauxfile
- \@writeaux{\string\bibdata{#1}}%
- \@testfileexistence{bbl}%
- \if@fileexists
- \@readbblfile
- \fi
-}%
-\let\bibdata = \@gobble
-\def\nocite#1{%
- \@readauxfile
- \@writeaux{\string\citation{#1}}%
-}%
-\@innernewif\if@notfirstcitation
-\def\cite{\begingroup\catcode`_ = \@letter \@getoptionalarg\@cite}%
-\def\@cite#1{%
- \nocite{#1}%
- \printcitestart
- \@notfirstcitationfalse
- \@for \@citation :=#1\do
- {%
- \expandafter\@onecitation\@citation\@@
- }%
- \ifx\empty\@optionalarg\else
- \printcitenote{\@optionalarg}%
- \fi
- \printcitefinish
- \endgroup
-}%
-\def\@onecitation#1\@@{%
- \if@notfirstcitation
- \printbetweencitations
- \fi
- \expandafter \ifx \csname\@citelabel{#1}\endcsname \relax
- \if@citewarning
- \message{\@linenumber Undefined citation `#1'.}%
- \fi
- \expandafter\gdef\csname\@citelabel{#1}\endcsname{%
- {\tt \nobreak\hskip0pt#1\nobreak\hskip0pt}}%
- \fi
- \csname\@citelabel{#1}\endcsname
- \@notfirstcitationtrue
-}%
-\def\@citelabel#1{\@tokstostring{b@#1}}%
-\def\@citedef#1{%
- \begingroup
- \@resetnumerals
- \@finishcitedef{#1}%
-}%
-\def\@finishcitedef#1#2{%
- \expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}%
- \endgroup
-}%
-\def\@resetnumerals{%
- \catcode`0 = \@other \catcode`1 = \@other \catcode`2 = \@other
- \catcode`3 = \@other \catcode`4 = \@other \catcode`5 = \@other
- \catcode`6 = \@other \catcode`7 = \@other \catcode`8 = \@other
- \catcode`9 = \@other \catcode`" = \@other \catcode`' = \@other
- \catcode`` = \@other \catcode`, = \@other \catcode`. = \@other
-}%
-\def\@readbblfile{%
- \@innernewcount\@itemnum
- \begingroup
- \def\begin##1##2{%
- \setbox0 = \hbox{\biblabelcontents{##2}}%
- \biblabelwidth = \wd0
- }%
- \def\end##1{}% ##1 is `thebibliography' again.
- \@itemnum = 0
- \def\bibitem{\futurelet\next\@bibitem}%
- \def\@bibitem{%
- \begingroup \if [\next
- \aftergroup\@alphabibitem
- \else
- \aftergroup\@numberedbibitem
- \fi \endgroup
- }%
- \def\@alphabibitem[##1]##2{%
- \expandafter \xdef\csname\@citelabel{##2}\endcsname {##1}%
- \@finishbibitem{##2}%
- }%
- \def\@numberedbibitem##1{%
- \advance\@itemnum by 1
- \expandafter \xdef\csname\@citelabel{##1}\endcsname{\number\@itemnum}%
- \@finishbibitem{##1}%
- }%
- \def\@finishbibitem##1{%
- \biblabelprint{\csname\@citelabel{##1}\endcsname}%
- \@writeaux{\string\@citedef{##1}{\csname\@citelabel{##1}\endcsname}}%
- \ignorespaces
- }%
- \let\em = \bblem
- \let\newblock = \bblnewblock
- \let\sc = \bblsc
- \frenchspacing
- \clubpenalty = 4000 \widowpenalty = 4000
- \tolerance = 10000 \hfuzz = .5pt
- \everypar = {\hangindent = \biblabelwidth
- \advance\hangindent by \biblabelextrahang}%
- \bblrm
- \parskip = 1.5ex plus .5ex minus .5ex
- \biblabelextrahang = .5em
- \bblhook
- \input \jobname.bbl
- \endgroup
-}%
-\@innernewdimen\biblabelwidth
-\@innernewdimen\biblabelextrahang
-\def\biblabelprint#1{%
- \noindent\hbox to \biblabelwidth{\biblabelcontents{#1}\hss}\enspace}%
-\def\biblabelcontents#1{\bblrm [#1]}%
-\def\bblrm{\rm}%
-\def\bblem{\it}%
-\def\bblsc{\ifx\@scfont\@undefined
- \font\@scfont = cmcsc10
- \fi
- \@scfont
-}%
-\def\bblnewblock{\hskip .11em plus .33em minus .07em}%
-\let\bblhook = \empty
-\def\printcitestart{[}% left bracket
-\def\printcitefinish{]}% right bracket
-\def\printbetweencitations{, }% comma, space
-\def\printcitenote#1{, #1}% comma, space, note (if it exists)
-\let\citation = \@gobble
-\@innernewcount\@numparams
-\def\newcommand#1{%
- \def\@commandname{#1}%
- \futurelet\@next\@continuenewcommand
-}%
-\def\@continuenewcommand{\begingroup
- \if [\@next
- \aftergroup\@newcommandwithargs
- \else
- \global\@numparams = 0
- \aftergroup\@newcommand
- \fi
-\endgroup}%
-\def\@newcommandwithargs[#1]{%
- \global\@numparams = #1
- \@newcommand
-}%
-\def\@newcommand#1{%
- \def\@startdef{\expandafter\edef\@commandname}%
- \ifnum\@numparams=0
- \let\@paramdef = \empty
- \else
- \ifnum\@numparams>9
- \errmessage{\the\@numparams\space is too many parameters}%
- \else
- \ifnum\@numparams<0
- \errmessage{\the\@numparams\space is too few parameters}%
- \else
- \edef\@paramdef{%
- \ifcase\@numparams
- \empty No arguments.
- \or ####1%
- \or ####1####2%
- \or ####1####2####3%
- \or ####1####2####3####4%
- \or ####1####2####3####4####5%
- \or ####1####2####3####4####5####6%
- \or ####1####2####3####4####5####6####7%
- \or ####1####2####3####4####5####6####7####8%
- \or ####1####2####3####4####5####6####7####8####9%
- \fi
- }%
- \fi
- \fi
- \fi
- \expandafter\@startdef\@paramdef{#1}%
-}%
-}%
-\ifx\nobibtex\@undefined \the\toks0 \fi
-\def\@readauxfile{%
- \if@auxfiledone \else % remember: \@auxfiledonetrue if \noauxfile is defined
- \global\@auxfiledonetrue
- \@testfileexistence{aux}%
- \if@fileexists
- \begingroup
- \endlinechar = -1
- \@setletters
- \input \jobname.aux
- \endgroup
- \else
- \message{\@undefinedmessage}%
- \global\@citewarningfalse
- \fi
- \immediate\openout\@auxfile = \jobname.aux
- \fi
-}%
-\newif\if@auxfiledone
-\ifx\noauxfile\@undefined \else \@auxfiledonetrue\fi
-\def\@setletters{%
- \count255 = 0
- \edef\temp{\ifx\inputlineno\@undefined 128\else 256\fi}%
- \loop
- \ifnum\catcode\count255 = \@other
- \catcode\count255 = \@letter
- \fi
- \advance\count255 by 1
- \ifnum\count255<\temp
- \repeat
- \catcode`\_ = \@letter
-}%
-\@innernewwrite\@auxfile
-\def\@writeaux#1{\ifx\noauxfile\@undefined \write\@auxfile{#1}\fi}%
-\ifx\@undefinedmessage\@undefined
- \def\@undefinedmessage{No .aux file; I won't give you warnings about
- undefined citations.}%
-\fi
-\@innernewif\if@citewarning
-\ifx\noauxfile\@undefined \@citewarningtrue\fi
-\catcode`@ = \@oldatcatcode
-\let\auxfile = \@auxfile
-\let\for = \@for
-\let\getoptionalarg = \@getoptionalarg
-\let\ifempty = \@ifempty
-\def\iffileexists{\if@fileexists}%
-\let\innerdef = \@innerdef
-\let\innernewcount = \@innernewcount
-\let\innernewdimen = \@innernewdimen
-\let\innernewif = \@innernewif
-\let\innernewwrite = \@innernewwrite
-\let\linenumber = \@linenumber
-\let\readauxfile = \@readauxfile
-\let\spacesub = \@spacesub
-\let\testfileexistence = \@testfileexistence
-\let\tokstostring = \@tokstostring
-\let\writeaux = \@writeaux
-\def\innerinnerdef#1{\expandafter\innerdef\csname inner#1\endcsname{#1}}%
-\innerinnerdef{newbox}%
-\innerinnerdef{newfam}%
-\innerinnerdef{newhelp}%
-\innerinnerdef{newinsert}%
-\innerinnerdef{newlanguage}%
-\innerinnerdef{newmuskip}%
-\innerinnerdef{newread}%
-\innerinnerdef{newskip}%
-\innerinnerdef{newtoks}%
-\def\immediatewriteaux#1{%
- \ifx\noauxfile\@undefined
- \immediate\write\@auxfile{#1}%
- \fi
-}%
-\begingroup
- \makeactive\^^M \makeactive\ % No spaces or ^^M's from here on.
-\gdef\obeywhitespace{%
-\makeactive\^^M\def^^M{\par\futurelet\next\@finishobeyedreturn}%
-\makeactive\ \def {\ }%
-\aftergroup\@removebox%
-\futurelet\next\@finishobeywhitespace%
-}%
-\gdef\@finishobeywhitespace{{%
-\ifx\next %
-\aftergroup\@obeywhitespaceloop%
-\else\ifx\next^^M%
-\aftergroup\gobble%
-\fi\fi}}%
-\gdef\@finishobeyedreturn{%
-\ifx\next^^M\vskip\blanklineskipamount\fi%
-\indent%
-}%
-\endgroup
-\def\@obeywhitespaceloop#1{\futurelet\next\@finishobeywhitespace}%
-\def\@removebox{%
- \setbox0 = \lastbox
- \ifdim\wd0=\parindent
- \setbox2 = \hbox{\unhbox0}%
- \ifdim\wd2=0pt
- \ignorespaces
- \else
- \box2 % Put it back: it wasn't empty.
- \fi
- \else
- \box0 % Put it back: it wasn't the right width.
- \fi
-}%
-\newskip\blanklineskipamount
-\blanklineskipamount = 0pt
-\def\frac#1/#2{\leavevmode
- \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
- \kern-.1em $/$%
- \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}%
-}%
-\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\null}%
-\def\LaTeX{L\kern -.26em \raise .6ex \hbox{\sevenrm A}\kern -.15em \TeX}%
-\def\AMSTeX{$\cal A\kern -.1667em
- \lower .5ex\hbox{$\cal M$}%
- \kern -.125em S$-\TeX
-}%
-\def\BibTeX{{\rm B\kern-.05em{\sevenrm I\kern-.025em B}\kern-.08em
- T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}%
-\font\mflogo = logo10
-\def\MF{{\mflogo META}{\tenrm \-}{\mflogo FONT}}%
-\def\blackbox{\vrule height .8ex width .6ex depth -.2ex }% square bullet
-\def\makeblankbox#1#2{%
- \ifvoid0
- \errmessage{Box 0 is void}%
- \errhelp = \@makeblankboxhelp
- \fi
- \hbox{\lower\dp0
- \vbox{\hidehrule{#1}{#2}%
- \kern -#1% overlap rules
- \hbox to \wd0{\hidevrule{#1}{#2}%
- \raise\ht0\vbox to #1{}% vrule height
- \lower\dp0\vtop to #1{}% vrule depth
- \hfil\hidevrule{#2}{#1}%
- }%
- \kern-#1\hidehrule{#2}{#1}%
- }%
- }%
-}%
-\newhelp\@makeblankboxhelp{Assigning to the dimensions of a void^^J%
- box has no effect. Do `\string\setbox0=\string\null' before you^^J%
- define its dimensions.}%
-\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2}%
-\def\hidevrule#1#2{%
- \kern-#1%
- \dimen0=#1\advance\dimen0 by #2%
- \vrule width\dimen0
- \kern-#2%
-}%
-\newdimen\boxitspace \boxitspace = 3pt
-\def\boxit#1{%
- \vbox{%
- \hrule
- \hbox{%
- \vrule
- \kern\boxitspace
- \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
- \kern\boxitspace
- \vrule
- }%
- \hrule
- }%
-}%
-\def\numbername#1{\ifcase#1%
- zero%
- \or one%
- \or two%
- \or three%
- \or four%
- \or five%
- \or six%
- \or seven%
- \or eight%
- \or nine%
- \or ten%
- \or #1%
- \fi
-}%
-\def\environment#1{%
- \ifx\@groupname\@undefined\else
- \errhelp = \@unnamedendgrouphelp
- \errmessage{`\@groupname' was not closed by \string\endenvironment}%
- \fi
- \def\@groupname{#1}%
- \begingroup
- \let\@groupname = \@undefined
-}%
-\def\endenvironment#1{%
- \endgroup
- \def\@thearg{#1}%
- \ifx\@groupname\@thearg
- \else
- \ifx\@groupname\@undefined
- \errhelp = \@isolatedendenvironmenthelp
- \errmessage{Isolated \string\endenvironment\space for `#1'}%
- \else
- \errhelp = \@mismatchedenvironmenthelp
- \errmessage{Environment `#1' ended, but `\@groupname' started}%
- \endgroup % Probably a typo in the names.
- \fi
- \fi
- \let\@groupname = \@undefined
-}%
-\newhelp\@unnamedendgrouphelp{Most likely, you just forgot an^^J%
- \string\endenvironment. Maybe you should try inserting another^^J%
- \string\endgroup to recover.}%
-\newhelp\@isolatedendenvironmenthelp{You ended an environment X, but^^J%
- no \string\environment\space to start it is anywhere in sight.^^J%
- You might also be at an \string\endenvironment\space that would match^^J%
- a \string\begingroup, i.e., you forgot an \string\endgroup.}%
-\newhelp\@mismatchedenvironmenthelp{You started an environment X, but^^J%
- you ended it with Y. Maybe you made a typo in one or the other^^J%
- of the names.}%
-\newif\ifenvironment
-\def\checkenv{\ifenvironment \errhelp = \@interwovenenvhelp
- \errmessage{Interwoven environments}%
- \endgroup \fi
-}%
-\newhelp\@interwovenenvhelp{Perhaps you forgot to end the previous^^J%
- environment? I'm finishing off the current group,^^J%
- hoping that will fix it.}%
-\newif\ifeqno
-\newif\ifleqno
-\def\eq{\the\@eqtoks}%
-\def\eqn{\the\@eqnotoks}%
-\newtoks\@eqtoks
-\newtoks\@eqnotoks
-\long\def\displaysetup#1$${%
- \@ddisplaytest#1\eqdef\eqdef\@ddisplaytest
- \expandafter\@displaytest\the\toks0\eqno\eqno\@displaytest
-}%
-\def\@removetrailingspaces#1 #2 \endmark{#1}%
-\long\def\@ddisplaytest#1\eqdef#2\eqdef#3\@ddisplaytest{%
- \if !\noexpand#3!%
- \toks0 = {#1}%
- \else
- \toks2 = {#1}%
- \begingroup
- \def\temp{\@removetrailingspaces #2}%
- \def\\{ }%
- \xdef\temp{{\expandafter\temp\\ \endmark}}%
- \endgroup
- \toks4 = \expandafter\expandafter\expandafter{\expandafter\eqdef\temp}%
- \edef\@setupeq{\toks0 = {\the\toks2 \the\toks4}}%
- \@setupeq
- \fi
-}%
-\long\def\@displaytest#1\eqno#2\eqno#3\@displaytest{%
- \if !\noexpand#3!%
- \@ldisplaytest#1\leqno\leqno\@ldisplaytest
- \else
- \eqnotrue
- \leqnofalse
- \@eqnotoks = {#2}%
- \@eqtoks = {#1}%
- \fi
- \generaldisplay$$%
-}%
-\long\def\@ldisplaytest#1\leqno#2\leqno#3\@ldisplaytest{%
- \@eqtoks = {#1}%
- \if !\noexpand#3!%
- \eqnofalse
- \else
- \eqnotrue
- \leqnotrue
- \@eqnotoks = {#2}%
- \fi
-}%
-\newdimen\leftdisplayindent
-\newtoks\previouseverydisplay
-\newtoks\displayhook
-\def\leftdisplays{%
- \previouseverydisplay = \everydisplay
- \everydisplay = {\the\previouseverydisplay \the\displayhook \displaysetup}%
- \def\generaldisplay{%
- \leftline{%
- \strut
- \indent \hskip\leftskip \hskip\leftdisplayindent
- \dimen0 = \parindent \advance\dimen0 by \leftskip
- \advance\dimen0 by \leftdisplayindent
- \advance\displaywidth by -\dimen0
- \@redefinealignmentdisplays
- \ifeqno\ifleqno
- \kern-\dimen0\rlap{$\displaystyle\eqn$}\kern\dimen0
- \fi\fi
- $\displaystyle\eq$%
- \ifeqno\ifleqno\else
- \hfill $\displaystyle\eqn$%
- \fi\fi
- }%
- }%
-}%
-\def\@redefinealignmentdisplays{%
- \def\displaylines##1{\displ@y
- \vcenter{%
- \let\oldeqprint = \eqprint
- \def\eqprint{\hfill\oldeqprint}%
- \halign{\hbox to\displaywidth{$\@lign\displaystyle####\hfil$}\crcr
- ##1\crcr}}}%
- \def\eqalignno##1{\displ@y
- \vcenter{%
- \halign to\displaywidth{%
- $\@lign\displaystyle{####}$\tabskip\z@skip
- &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
- &\llap{$\@lign####$}\tabskip\z@skip\crcr
- ##1\crcr}}}%
- \def\leqalignno##1{\displ@y
- \vcenter{%
- \halign to\displaywidth{%
- $\@lign\displaystyle{####}$\tabskip\z@skip
- &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
- &\kern-\displaywidth
- \rlap{\kern-\parindent\kern-\leftskip$\@lign####$}%
- \tabskip\displaywidth\crcr
- ##1\crcr}}}%
-}%
-\def\centereddisplays{\let\displaysetup = \relax}%
-\def\monthname{%
- \ifcase\month
- \or Jan\or Feb\or Mar\or Apr\or May\or Jun%
- \or Jul\or Aug\or Sep\or Oct\or Nov\or Dec%
- \fi
-}%
-\def\fullmonthname{%
- \ifcase\month
- \or January\or February\or March\or April\or May\or June%
- \or July\or August\or September\or October\or November\or December%
- \fi
-}%
-\def\timestring{\begingroup
- \count0 = \time
- \divide\count0 by 60
- \count2 = \count0 % The hour, from zero to 23.
- \count4 = \time
- \multiply\count0 by 60
- \advance\count4 by -\count0 % The minute, from zero to 59.
- \ifnum\count4<10
- \toks1 = {0}%
- \else
- \toks1 = {}%
- \fi
- \ifnum\count2<12
- \toks0 = {a.m.}%
- \else
- \toks0 = {p.m.}%
- \advance\count2 by -12
- \fi
- \ifnum\count2=0
- \count2 = 12
- \fi
- \number\count2:\the\toks1 \number\count4 \thinspace \the\toks0
-\endgroup}%
-\def\timestamp{\number\day\space\monthname\space\number\year\quad\timestring}%
-\newskip\abovelistskip \abovelistskip = .5\baselineskip
-\newskip\interitemskip \interitemskip = 0pt
-\newskip\belowlistskip \belowlistskip = .5\baselineskip
-\newdimen\listleftindent \listleftindent = 0pt
-\newdimen\listrightindent \listrightindent = 0pt
-\def\listcompact{\interitemskip = 0pt \relax}%
-\newdimen\@listindent
-\def\beginlist{%
- \@listindent = \parindent
- \advance\@listindent by \listleftindent
- \everydisplay = \expandafter{\the\everydisplay
- \advance\displayindent by \@listindent
- \advance\displaywidth by -\@listindent
- \advance\displaywidth by -\listrightindent}%
- \nobreak\vskip\abovelistskip
- \advance\leftskip by \@listindent
- \advance\rightskip by \listrightindent
-}%
-\def\printitem{%
- \par
- \vskip-\parskip
- \noindent
- \llap{\marker \enspace}%
-}%
-\def\endlist{\vskip\belowlistskip}%
-\newcount\numberedlistdepth
-\newcount\itemnumber
-\newcount\itemletter
-\def\numberedmarker{%
- \ifcase\numberedlistdepth
- (impossible)%
- \or \itemnumberout)%
- \or \itemletterout)%
- \else *%
- \fi
-}%
-\def\numberedlist{\environment{@numbered-list}%
- \advance\numberedlistdepth by 1
- \itemnumber = 1
- \itemletter = `a
- \beginlist
- \let\marker = \numberedmarker
- \def\li{%
- \ifnum\itemnumber=1\else
- \vskip\interitemskip
- \fi
- \printitem
- \advance\itemnumber by 1
- \advance\itemletter by 1
- }%
-}%
-\def\itemnumberout{\number\itemnumber}%
-\def\itemletterout{\char\itemletter}%
-\def\endnumberedlist{%
- \par
- \endenvironment{@numbered-list}%
- \endlist
-}%
-\newcount\unorderedlistdepth
-\def\unorderedmarker{%
- \ifcase\unorderedlistdepth
- (impossible)%
- \or \blackbox
- \or ---%
- \else *%
- \fi
-}%
-\def\unorderedlist{\environment{@unordered-list}%
- \advance\unorderedlistdepth by 1
- \beginlist
- \itemnumber = 1
- \let\marker = \unorderedmarker
- \def\li{%
- \ifnum\itemnumber=1\else
- \vskip\interitemskip
- \fi
- \printitem
- \advance\itemnumber by 1
- }%
-}%
-\def\endunorderedlist{%
- \par
- \endenvironment{@unordered-list}%
- \endlist
-}%
-\def\listing#1{%
- \par \begingroup
- \@setuplisting
- \setuplistinghook
- \input #1
- \endgroup
-}%
-\let\setuplistinghook = \empty
-\def\@setuplisting{%
- \uncatcodespecials
- \obeywhitespace
- \makeactive\`
- \makeactive\^^I
- \def^^L{\vfill\eject}%
- \tt
-}%
-{%
- \makeactive\`
- \gdef`{\relax\lq}% Defeat ligatures.
-}%
-{%
- \makeactive\^^I
- \tt
- \gdef^^I{\hskip8\fontdimen2\font \relax}%
-}%
-\newif\if@tocfileopened
-\newwrite\tocfile
-\def\opentocfile{%
- \if@tocfileopened\else
- \global\@tocfileopenedtrue
- \immediate\openout\tocfile = \jobname.toc
- \fi
-}%
-\def\writetocentry#1#2{\writenumberedtocentry{#1}{#2}\empty}%
-\def\writenumberedtocentry#1#2#3{%
- \ifrewritetocfile
- \opentocfile
- \toks0 = {\expandafter\noexpand \csname toc#1entry\endcsname}%
- \def\temp{#2}%
- \def\cs{#3}%
- \edef\@wr{%
- \write\tocfile{%
- \the\toks0
- {\sanitize\temp}%
- \ifx \empty\cs\else{#3}\fi
- {\noexpand\folio}%
- }%
- }%
- \@wr
- \fi
- \ignorespaces
-}%
-\newif\ifrewritetocfile \rewritetocfiletrue
-\def\readtocfile{%
- \testfileexistence{toc}%
- \if@fileexists
- \input \jobname.toc
- \ifrewritetocfile
- \opentocfile
- \fi
- \fi
-}%
-\def\tocchapterentry#1#2{\line{\bf #1 \dotfill\ #2}}%
-\def\tocsectionentry#1#2{\line{\quad\sl #1 \dotfill\ \rm #2}}%
-\def\tocsubsectionentry#1#2{\line{\qquad\rm #1 \dotfill\ #2}}%
-\def\xrdef#1{%
- \@readauxfile
- \begingroup
- \xrlabel{#1}%
- \edef\@wr{\@writexrdef{\the\xrlabeltoks}}%
- \@wr
- \endgroup
- \ignorespaces
-}%
-\def\@writexrdef#1{%
- \@writeaux{%
- \string\gdef\expandafter\string\csname#1\endcsname {\noexpand\folio}%
- }%
-}%
-\newtoks\xrlabeltoks
-\def\xrlabel#1{%
- \begingroup
- \escapechar = `\_
- \edef\tts{\tokstostring{#1_}}%
- \global\xrlabeltoks = \expandafter{\tts}%
- \endgroup
-}%
-\let\ifxrefwarning = \iftrue
-\def\xrefwarningtrue{\@citewarningtrue \let\ifxrefwarning = \iftrue}%
-\def\xrefwarningfalse{\@citewarningfalse let\ifxrefwarning = \iffalse}%
-\def\xrefn#1{%
- \@readauxfile
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
- \expandafter \ifx\the\toks0\relax
- \if@citewarning
- \message{\linenumber Undefined label `\tokstostring{#1}'.}%
- \fi
- \begingroup
- \let\spacesub = \space
- \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
- \endgroup
- \fi
- \the\toks0 % Always produce something.
-}%
-\def\xref#1{p.\thinspace\xrefn{#1}}%
-\newcount\eqnumber
-\def\eqdefn#1{%
- \@readauxfile
- \global\advance\eqnumber by 1
- \begingroup
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \edef\@wr{\@writeeqdef{\the\xrlabeltoks}{\the\eqnumber}}%
- \@wr
- \endgroup
- \expandafter\xdef\csname\the\xrlabeltoks\endcsname{\the\eqnumber}%
- \ignorespaces
-}%
-\def\@writeeqdef#1#2{%
- \immediatewriteaux{%
- \string\gdef\expandafter\string\csname#1\endcsname{#2}%
- }%
-}%
-\def\eqdef#1{%
- \@maybedisableeqno
- \eqno \eqdefn{#1}\eqprint{\the\eqnumber}%
- \@mayberestoreeqno
- \ignorespaces
-}%
-\let\@mayberestoreeqno = \empty
-\def\@maybedisableeqno{%
- \ifinner
- \global\let\eqno = \relax
- \global\let\@mayberestoreeqno = \@restoreeqno
- \fi
-}%
-\let\@primitiveeqno = \eqno
-\def\@restoreeqno{%
- \global\let\eqno = \@primitiveeqno
- \global\let\@mayberestoreeqno = \empty
-}%
-\def\eqref#1{%
- \@readauxfile
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
- \expandafter \ifx\the\toks0\relax
- \if@citewarning
- \message{\linenumber Undefined equation label `\tokstostring{#1}'.}%
- \fi
- \begingroup
- \let\spacesub = \space
- \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
- \endgroup
- \fi
- \eqprint{\the\toks0}%
-}%
-\def\eqprint#1{(#1)}%
-\begingroup
- \catcode `\^^M = \active %
- \globaldefs = 1 %
- \def\flushleft{\beforejustify %
- \aftergroup\@endflushleft %
- \def^^M{\null\hfil\break}%
- \def\@eateol^^M{}%
- \@eateol %
- }%
- \def\flushright{\beforejustify %
- \aftergroup\@endflushright %
- \def^^M{\break\null\hfil}%
- \def\@eateol^^M{\hfil\null}%
- \@eateol %
- }%
- \def\center {\beforejustify %
- \aftergroup\@endcenter %
- \def^^M{\hfil\break\null\hfil}%
- \def\@eateol^^M{\hfil\null}%
- \@eateol %
- }%
-\endgroup
-\def\@endflushleft{\unpenalty{\parfillskip = 0pt plus 1 fil\par}\ignorespaces}%
-\def\@endflushright{% Remove the \hfil\null\break we just put on.
- \unskip \setbox0=\lastbox \unpenalty
- {\parfillskip = 0pt \par}\ignorespaces
-}%
-\def\@endcenter{% Remove the \hfil\null\break we just put on.
- \unskip \setbox0=\lastbox \unpenalty
- {\parfillskip = 0pt plus 1fil \par}\ignorespaces
-}%
-\def\beforejustify{%
- \par\noindent
- \catcode`\^^M = \active
- \checkenv \environmenttrue
-}%
-\newcount\abovecolumnspenalty \abovecolumnspenalty = 10000
-\newcount\@linestogo % Lines remaining to process.
-\newcount\@linestogoincolumn % Lines remaining in column.
-\newcount\@columndepth % Number of lines in a column.
-\newdimen\@columnwidth % Width of each column.
-\newtoks\crtok \crtok = {\cr}%
-\newcount\currentcolumn
-\def\makecolumns#1/#2: {\par \begingroup
- \@columndepth = #1
- \advance\@columndepth by #2
- \advance\@columndepth by -1
- \divide \@columndepth by #2
- \@linestogoincolumn = \@columndepth
- \@linestogo = #1
- \currentcolumn = 1
- \def\@endcolumnactions{%
- \ifnum \@linestogo<2
- \the\crtok \egroup \endgroup \par % End \valign and \makecolumns.
- \else
- \global\advance\@linestogo by -1
- \ifnum\@linestogoincolumn<2
- \global\advance\currentcolumn by 1
- \global\@linestogoincolumn = \@columndepth
- \the\crtok
- \else
- &\global\advance\@linestogoincolumn by -1
- \fi
- \fi
- }%
- \makeactive\^^M
- \letreturn \@endcolumnactions
- \@columnwidth = \hsize
- \advance\@columnwidth by -\parindent
- \divide\@columnwidth by #2
- \penalty\abovecolumnspenalty
- \noindent % It's not a paragraph (usually).
- \valign\bgroup
- &\hbox to \@columnwidth{\strut \hsize = \@columnwidth ##\hfil}\cr
-}%
-\newcount\footnotenumber
-\newdimen\footnotemarkseparation \footnotemarkseparation = .5em
-\newskip\interfootnoteskip \interfootnoteskip = 0pt
-\newtoks\everyfootnote
-\newdimen\footnoterulewidth \footnoterulewidth = 2true in
-\newdimen\footnoteruleheight \footnoteruleheight = 0.4pt
-\newdimen\belowfootnoterulespace \belowfootnoterulespace = 2.6pt
-\let\@plainfootnote = \footnote
-\let\@plainvfootnote = \vfootnote
-\def\vfootnote#1{\insert\footins\bgroup
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \advance\splittopskip by \interfootnoteskip
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
- \everypar = {}%
- \the\everyfootnote
- \vskip\interfootnoteskip
- \indent\llap{#1\kern\footnotemarkseparation}\footstrut\futurelet\next\fo@t
-}%
-\def\footnoterule{\dimen0 = \footnoteruleheight
- \advance\dimen0 by \belowfootnoterulespace
- \kern-\dimen0
- \hrule width\footnoterulewidth height\footnoteruleheight depth0pt
- \kern\belowfootnoterulespace
- \vskip-\interfootnoteskip
-}%
-\def\numberedfootnote{%
- \global\advance\footnotenumber by 1
- \@plainfootnote{$^{\number\footnotenumber}$}%
-}%
-\newdimen\paperheight \paperheight = 11in
-\def\topmargin{\afterassignment\@finishtopmargin \dimen0}%
-\def\@finishtopmargin{%
- \dimen2 = \voffset % Remember the old \voffset.
- \voffset = \dimen0 \advance\voffset by -1in
- \advance\dimen2 by -\voffset % Compute the change in \voffset.
- \advance\vsize by \dimen2 % Change type area accordingly.
-}%
-\def\advancetopmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancetopmargin \advance\dimen0
-}%
-\def\@finishadvancetopmargin{%
- \advance\voffset by \dimen0
- \advance\vsize by -\dimen0
-}%
-\def\bottommargin{\afterassignment\@finishbottommargin \dimen0}%
-\def\@finishbottommargin{%
- \@computebottommargin % Result in \dimen2.
- \advance\dimen2 by -\dimen0 % Compute the change in the bottom margin.
- \advance\vsize by \dimen2 % Change the type area.
-}%
-\def\advancebottommargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancebottommargin \advance\dimen0
-}%
-\def\@finishadvancebottommargin{%
- \advance\vsize by -\dimen0
-}%
-\def\@computebottommargin{%
- \dimen2 = \paperheight % The total paper size.
- \advance\dimen2 by -\vsize % Less the text size.
- \advance\dimen2 by -\voffset % Less the offset at the top.
- \advance\dimen2 by -1in % Less the default offset.
-}%
-\newdimen\paperwidth \paperwidth = 8.5in
-\def\leftmargin{\afterassignment\@finishleftmargin \dimen0}%
-\def\@finishleftmargin{%
- \dimen2 = \hoffset % Remember the old \hoffset.
- \hoffset = \dimen0 \advance\hoffset by -1in
- \advance\dimen2 by -\hoffset % Compute the change in \hoffset.
- \advance\hsize by \dimen2 % Change type area accordingly.
-}%
-\def\advanceleftmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvanceleftmargin \advance\dimen0
-}%
-\def\@finishadvanceleftmargin{%
- \advance\hoffset by \dimen0
- \advance\hsize by -\dimen0
-}%
-\def\rightmargin{\afterassignment\@finishrightmargin \dimen0}%
-\def\@finishrightmargin{%
- \@computerightmargin % Result in \dimen2.
- \advance\dimen2 by -\dimen0 % Compute the change in the right margin.
- \advance\hsize by \dimen2 % Change the type area.
-}%
-\def\advancerightmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancerightmargin \advance\dimen0
-}%
-\def\@finishadvancerightmargin{%
- \advance\hsize by -\dimen0
-}%
-\def\@computerightmargin{%
- \dimen2 = \paperwidth % The total paper size.
- \advance\dimen2 by -\hsize % Less the text size.
- \advance\dimen2 by -\hoffset % Less the offset at the left.
- \advance\dimen2 by -1in % Less the default offset.
-}%
-\newskip\abovedoublecolumnskip \abovedoublecolumnskip = \bigskipamount
-\newskip\belowdoublecolumnskip \belowdoublecolumnskip = \bigskipamount
-\newdimen\gutter \gutter = 2pc
-\newdimen\doublecolumnhsize
-\newbox\@partialpage \newdimen\singlecolumnhsize \newdimen\singlecolumnvsize
-\newtoks\previousoutput
-\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
-}%
-\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}%
- }%
-}%
-\def\doublecolumnoutput{%
- \@doublecolumnsplit
- \hsize = \singlecolumnhsize % Local to the \output group.
- \vsize = \singlecolumnvsize
- \the\previousoutput
- \unvbox4
-}%
-\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
-}%
-\let\wlog = \@plainwlog
-\catcode`@ = \other
-\def\fmtname{eplain}%
-\def\eplain{t}%
-{\edef\plainversion{\fmtversion}%
- \xdef\fmtversion{1.9: 26 April 1991 (and plain \plainversion)}%
-}%