HomePage | Recent Changes | Preferences

TEX is a powerful macro-based text formatter written by Donald Knuth, popular in academia, especially in the mathematics, physics and computer science communities. It has largely displaced Unix troff, the other favored formatter, in many Unix installations. TEX is generally considered to be the best way to typeset complex mathematical formulas, but, especially in the form of LaTeX and other template packages, is now also being used for many other typesetting tasks.

Knuth began TEX because he had become annoyed at the declining quality of the typesetting in volumes I-III of his monumental "The Art of Computer Programming". In a manifestation of the typical hackish urge to solve the problem at hand once and for all, he began to design his own typesetting language. He thought he would finish it on his sabbatical in 1978; he was wrong by only about 8 years. The language was finally frozen around 1985. [Guy Steele]? happened to be at Stanford during the summer of 1978, when Knuth was developing his first version of TEX. When he returned to MIT that fall, he rewrote TEX's I/O to run under ITS?.

The first version of TEX was written in the [SAIL programming language]? to run on a PDP-10 under Stanford's [WAITS operating system]?. For later versions of TEX, Knuth invented the concept of literate programming, a way of producing compilable source code and high quality cross-linked documentation (typeset in TEX of course) from the same original file. The language used is called WEB? and produces programs in the Pascal programming language. The ultimate reference works for TEX are the first two volumes of Knuth's [Computers and Typesetting]?, The TEXbook and TEX: The Program (which includes the complete documented source code for TEX).

Though well-written, TEX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every Pascal system it has been compiled with. TEX runs on almost all operating systems.

TEX is a noteworthy example of freely shared but high-quality software. The license of TEX allows free distribution and modification but demands that any changed version not be called TEX, TeX, or anything confusingly similar, providing rights similar to those of a trademark. Knuth offers monetary awards to people who find and report a bug? in it. The award per bug started at one cent and doubled every year until it was frozen at its current value of $327.68. This has not made Knuth poor, however, as there have been very few bugs and in any case a cheque proving that the owner found a bug in TEX is usually framed instead of cashed.

The name TEX is intended to be pronounced "tekh", where "kh" represents the sound at the end of Scotish "loch" (the X is meant to be the Greek letter χ). The name is properly typeset with the "E" below the baseline; systems that do not support subscript layout use the approximation "TeX". Fans like to proliferate names from the word "TEX" - such as TeXnician (user of TEX software), TeXhacker (TEX programmer), TeXmaster (competent TEX programmer), TeXhax, and TeXnique.

Several document processing systems are based on TEX, notably LaTeX (Lamport TEX), which incorporates document styles for books, letters, slides, etc., and adds support for referencing and automatic numbering of sections and equations, jadeTeX which uses TEX as a backend for printing from James' [DSSSL Engine]?, and Texinfo?, the GNU documentation processing system. Numerous extensions to TEX exist, among them BibTeX? for bibliographies (distributed with LaTeX), PDFTeX?, which provides TEX output in Adobe Systems' Portable Document Format, and Omega, which allows TEX to use the Unicode character set. All TEX extensions are available for free from CTAN?, the Comprehensive TEX Archive Network.

See also:


This article (or an earlier version of it) contains material from FOLDOC's [article on TeX], used with permission.

HomePage | Recent Changes | Preferences
This page is read-only | View other revisions
Last edited December 8, 2001 2:30 am by AxelBoldt (diff)