@c Copyright (C) 1992, 93, 94 Karl Berry. @c This is part of the Eplain manual. @c For copying conditions, see the file eplain.texi. @node Invoking Eplain @chapter Invoking Eplain @cindex Eplain, invoking The simplest way to use Eplain is simply to put: @example \input eplain @end example @noindent 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 (@file{.fmt}) @pindex .fmt @r{file} 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 @code{&eplain} or @code{&etex} to @TeX{}'s @samp{**} prompt. For example: @example initex This is TeX, ... **&eplain myfile @end example Depending on the implementation of @TeX{} which you are using, you might also be able to invoke @TeX{} as @file{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 @code{\input eplain} will waste time; if it isn't, then you must load it. To solve this, Eplain defines the control sequence @code{\eplain} @findex eplain to be the letter @code{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: @example \ifx\eplain\undefined \input eplain \fi @end example @noindent where @code{\undefined} must never acquire a definition. Eplain consists of several source files: @table @file @item xeplain.tex most of the macros; @item arrow.tex commutative diagram macros, @pxref{Arrow theoretic diagrams} (written by Steven Smith); @item btxmac.tex bibliography-related macros, @pxref{Citations}; @item texnames.sty abbreviations for various @TeX{}-related names, @pxref{Logos} (edited by Nelson Beebe). @end table @noindent The file @file{eplain.tex} is all of these files merged together, with comments removed. All of these files except @file{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 @code{\nobibtex} @findex nobibtex is defined, then the bibliography definitions are skipped. You must set @code{\nobibtex} before @file{eplain.tex} is read, naturally. For example, you could start your input file like this: @example \let\nobibtex = t \input eplain @end example By default, @code{\nobibtex} is undefined, and so the bibliography definitions @emph{are} made. @findex noarrow Likewise, define @code{\noarrow} if you don't want to include the commutative diagram macros from @file{arrow.tex}, perhaps because you already have conflicting ones. If you don't want to read or write an @file{aux} file at all, for any kind of cross-referencing, define @code{\noauxfile} @findex noauxfile before reading @file{eplain.tex}. This also turns off all warnings about undefined labels. @pindex amsppt.sty @cindex AMS@TeX{} conflicts Eplain conflicts with AMS@TeX{} (more precisely, with @file{amsppt.sty}) The macros @code{\cite} and @code{\ref} are defined by both. If you want to use AMS@TeX{}'s @code{\cite}, the solution is to define @code{\nobibtex} before reading Eplain, as described above. If you have @file{amsppt.sty} loaded and use @code{\ref}, Eplain writes a warning on your terminal. If you want to use the AMS@TeX{} @code{\ref}, do @code{\let\ref = \amsref} after reading Eplain. To avoid the warning, do @code{\let\ref = \eplainref} after reading Eplain and before using @code{\ref}.