is what is termed a `mark up' language. The input to consists of the raw text of a document, interspersed with directives that indicate how each part of a document is to be processed. supplies a generous set of structures, as well as the means of adjusting some of their parameters where necessary. Overall, the effect is very like that of compiling a program.
The output from is not immediately printable. While a number of files of information may be produced (the exact number depending upon the options selected), the main textual output is a device-independent file, usually given the extension .dvi. This file needs to be further processed so that it can be displayed on a screen or printed on a particular printer. A wide range of programs to performs the translation are available. For example, tools are available to transform .dvi files into line-printable output for cheap proof-reading purposes (highly recommended and environmentally sound), various different programs are available locally to preview output approximating the page display on a workstation screen (depending on the exact type of your workstation), and at least two programs are locally available to transform .dvi file into PostScript for output to a laser printer for `fair copy'.
is itself built upon Donald Knuth's typesetting language. is enormously powerful, but writing in is rather akin to writing programs in assembler-and is not recommended for the inexperienced. Because is implemented as a set of style macros for we occasionally become aware of its presence when errors occur, since some of the error messages may be generated from rather than from . Neither give particularly clear messages, but those from can be particularly obscure!