# Invoking Eplain

The simplest way to use Eplain is simply to put:

\input eplain


at the beginning of your input file. The macro file is small enough that reading it does not take an unbearably long time--at least on contemporary machines.

In addition, if a format (.fmt') file has been created for Eplain (see the previous section), you can eliminate the time spent reading the macro source file. You do this by responding &eplain or &etex to TeX's **' prompt. For example:

initex
This is TeX, ...
**&eplain myfile


Depending on the implementation of TeX which you are using, you might also be able to invoke TeX as etex' and have the format file automatically read.

If you write something which you will be distributing to others, you won't know if the Eplain format will be loaded already. If it is, then doing \input eplain will waste time; if it isn't, then you must load it. To solve this, Eplain defines the control sequence \eplain to be the letter t (a convention borrowed from Lisp; it doesn't actually matter what the definition is, only that the definition exists). Therefore, you can do the following:

\ifx\eplain\undefined \input eplain \fi


where \undefined must never acquire a definition.

Eplain consists of several source files:

xeplain.tex'
most of the macros;
arrow.tex'
commutative diagram macros, see section Arrow theoretic diagrams (written by Steven Smith);
btxmac.tex'
bibliography-related macros, see section Citations;
texnames.sty'
abbreviations for various TeX-related names, see section Logos (edited by Nelson Beebe).

The file eplain.tex' is all of these files merged together, with comments removed.

All of these files except xeplain.tex' can be input individually, if all you want are the definitions in that file.

Also, since the bibliography macros are fairly extensive, you might not want to load them, to conserve TeX's memory. Therefore, if the control sequence \nobibtex is defined, then the bibliography definitions are skipped. You must set \nobibtex before eplain.tex' is read, naturally. For example, you could start your input file like this:

\let\nobibtex = t
\input eplain


By default, \nobibtex is undefined, and so the bibliography definitions are made.

Likewise, define \noarrow if you don't want to include the commutative diagram macros from arrow.tex', perhaps because you already have conflicting ones.

If you don't want to read or write an aux' file at all, for any kind of cross-referencing, define \noauxfile before reading eplain.tex'. This also turns off all warnings about undefined labels.

Eplain conflicts with AMSTeX (more precisely, with amsppt.sty') The macros \cite and \ref are defined by both.

If you want to use AMSTeX's \cite, the solution is to define \nobibtex before reading Eplain, as described above.

If you have amsppt.sty' loaded and use \ref, Eplain writes a warning on your terminal. If you want to use the AMSTeX \ref, do \let\ref = \amsref after reading Eplain. To avoid the warning, do \let\ref = \eplainref after reading Eplain and before using \ref`.