\input /afs/athena/user/a/amgreene/mitex/mi.tex
title=The \MITeX Manual
author=Andrew Marc Greene
LaTeX=La\TeX
begin

This is a very simple manual to the \MITeX system.  It is not
necessarily complete or accurate, although it tries to be both.  Any
comments, suggestions, or bug reports in either this manual or the
\MITeX package should be directed to "amgreene@athena.mit.edu".  This
manual assumes some knowledge of \TeX or \LaTeX.  \MITeX is not yet
stable enough to be used by neophytes.

> Basic Rules

There are some basic differences between \TeX (including \LaTeX) and
\MITeX.  The two biggest danger spots are the //prologue// and the
//backslash//.  These two features work quite differently from their
Plain \TeX counterparts.

>> The Prologue

A \MITeX file begins with a //prologue,// in which various
declarations are made.  There are three types of declarations that may
be made in the prologue: //state declarations, field declarations,//
and //abbreviation declarations.//  We will examine each of these.

>>> State declarations

These appear on a line by themseleves.  Examples are "12pt" or
"nopagenumbers" or "debugging" (none of which are currently
implemented correctly).

>>> Field declarations

These appear in the format "title=Jabberwocky" or "author=Lewis
Carroll".  Those are the only two fields currently defined, and they
cannot span multiple lines.  They are the same as //abbreviation//
declarations from an implementation point of view.

>>> Abbreviation declarations

You know them as //macros.//  They cannot take arguments and are
defined with "foo=bar" (similarly to //field// declarations).  These
can be accessed in your document with a //backslash// (see below).

Please note that you **cannot** use "\def" in \MITeX, for reasons to
be explained later.

>> The Backslash Parser

In an attempt to catch errors before \TeX does, and to fix other
``problems'' with the standard escape-character parser, I have
replaced it.  First I will explain breifly the method of doing so,
then I will detail its implications.

>>> How Backslash was Usurped (optional reading)

In a nutshell, I made character 31 be the escape character (since \TeX
will not let you eliminate the escape character), then made backslash
active and, using "\futurelet", I scan the csname.  The resulting word
is checked for csname existance, then either "\csname" is used or my
error handler is called.

>>> Implications

First of all, mistyped backslash commands now result in //my// error
handler being called.  This means context information is not given,
and various other things that we find useful but that scare most users
have also been eliminated.

Secondly, spaces after text-inserting backslash commands are now
significant.  "\TeX", for instance, no longer needs a backslash-space
after it.  Commands that wish to gobble following whitespace should
end with the Plain \TeX command "\ignorespaces".

Thirdly, **it would be disasterous** to use "\def" for the following
reason:  "\def\foo{bar}" would be parsed thus.  My parser would grab
the first backslash, and read the "def" correctly.  It would determine
that "def" is a valid \TeX command, and invoke it.  The following
token would be an //active// backslash, so it would be the redefined
string.  It would have delimiters "foo" and replacement text "bar".
I trust you understand the consequences.

> What other useful features are there?

Well, let's see.  There are so many, I'm going to group them in
subsections.

>> Subsections (and other levels).

You will have noticed the levels of sectioning used in this manual.
Each header was specified by a paragraph beginning with the correct
number of ">"'s.  (One for each digit of the header.)  There is no
enforced limit to the number of levels deep you may go, but you may
not descend more than one level at a time.

>> Fonts

You can get //italics// by surrounding your text with double-slashes,
like this: "//italics//".  Similar constructions are available for
**boldface** (asterisks) and ..Small Caps.. (periods).

You can change the size of your text with a resize command.  Right
now, these are words from the set (small, smaller, smallest, tiny,
tiniest, large, larger, largest, huge, huger, hugest, normalsize).
This will be supplanted soon by an open-angle-bracket ("<") followed
by the desired number of //biggers// ("^") or //smallers// ("_"), and
closed at the other end by a bigger or smaller and a
close-angle-bracket.

>> Footnotes

Footnotes are entered between double square-brackets.  [[For example,
this footnote was entered with "brackets.[[For example, ... recursion.]]"
and a phrase to prevent recursion.]]  They are automatically numbered
and may be nested; also simple brackets may appear at any point.

>> Other nicities

Ellipses may be entered as three consecutive dots ... that is, if you
want to use them.  Four dots may be used at the end of a sentence, if
it is full of sound and fury and signifying....  

The usually-troublesome characters have been made less so, so that G&S
fans will pay $2.00 to see 75% of the #1 production.

Verbatim mode is delimited by the single-charcter double-quote.

>> Ending it all

"\bye"

\bye
