% $Id: faq-backgrnd.tex,v 1.1 2009/06/13 20:56:34 rf10 Exp rf10 $

\section{The Background}

\Question[Q-whatTeX]{What is \TeX{}?}

\TeX{} is a typesetting system written by
\href{http://sunburn.stanford.edu/~knuth/}{Donald E. Knuth}, who
says in the Preface to his book on \TeX{}
(see \Qref[question]{books about TeX}{Q-books}) that it is
%% !line wrap avoided by two commands
``\emph{intended for the creation of beautiful books~---}
\emph{and especially for books that contain a lot of mathematics}''.
(If \TeX{} were \emph{only} good for mathematical books, much of its
use nowadays would not happen: it's actually a pretty good general
typesetting system.)

Knuth is Emeritus Professor of the Art of Computer Programming at
Stanford University in California, \acro{USA}.  Knuth developed the
first version of \TeX{} in 1978 to deal with revisions to his series
``the Art of Computer Programming''.  The idea proved popular and
Knuth produced a second version (in 1982) which is the basis of what
we use today.

Knuth developed a system of % ! line breaks
`\Qref*{literate programming}{Q-lit}' to write \TeX{},
and he provides the literate (\acro{WEB}) source of \TeX{} free of charge,
together with tools for processing the |web| source into something
that can be compiled and something that can be printed; there's never
any mystery about what \TeX{} does.  Furthermore, the \acro{WEB} system
provides mechanisms to port \TeX{} to new operating systems and
computers; and in order that one may have some confidence in the ports,
Knuth supplied a \Qref*{test}{Q-triptrap} by
means of which one may judge the fidelity of a \TeX{} system.  \TeX{}
and its documents are therefore highly portable.

\TeX{} is a macro processor, and offers its users a powerful
programming capability.  For this reason, \TeX{} on its own is a
pretty difficult beast to deal with, so Knuth provided a package of
macros for use with \TeX{} called \plaintex{}; \plaintex{} is
effectively the minimum set of macros one can usefully employ with
\TeX{}, together with some demonstration versions of higher-level
commands (the latter are better regarded as models than used as-is).
When people say they're ``programming in \TeX{}'', they usually mean
they're programming in \plaintex{}.

\Question[Q-TeXpronounce]{How should I pronounce ``\TeX{}''?}

The `X' is ``really'' the Greek letter % ! line break
Chi\nothtml{ (\ensuremath{\chi}, in lower case)}, and is pronounced by
English-speakers either a bit like the `ch' in the Scots word `loch'
([x] in the IPA) or (at a pinch, if you can't do the Greek sound) like
`k'.  It definitely is not pronounced `ks' (the Greek letter with that
sound doesn't look remotely like the Latin alphabet `X').

This curious usage derives from Knuth's explanation in the \TeX{}book
that the name comes from the Greek word for `art' or `craft'
(`\latexhtml{\ensuremath{\tau\epsilon\chi\nu\eta}}{\emph{techni}}'),
which is the root of the English word `technology'.  Knuth's logo for \TeX{} is
merely the uppercase version of the first three (Greek) letters of the
word, jiggled about a bit; we don't use that logo (and logos like it)
in this \acro{FAQ} (see % ! line break
\Qref[question]{Typesetting \TeX{}-related logos}{Q-logos}).

\Question[Q-MF]{What is \MF{}?}

\MF{} was written by Knuth as a companion to \TeX{}; whereas \TeX{}
defines the layout of glyphs on a page, \MF{} defines the shapes of
the glyphs and the relations between them.  \MF{} details the sizes of
glyphs, for \TeX{}'s benefit, and details the rasters used to
represent the glyphs, for the benefit of programs that will produce
printed output as post processes after a run of \TeX{}.

\MF{}'s language for defining fonts permits the expression of several
classes of things: first (of course), the simple geometry of the
glyphs; second, the properties of the print engine for which the
output is intended; and third, `meta'-information which can
distinguish different design sizes of the same font, or the difference
between two fonts that belong to the same (or related) families.

Knuth (and others) have designed a fair range of fonts using \MF{},
but font design using \MF{} is much more of a minority skill than is
\TeX{} macro-writing.  The complete \TeX{}-user nevertheless needs to
be aware of \MF{}, and to be able to run \MF{} to generate personal
copies of Meta-fonts that come her way.

\Question[Q-MP]{What is \MP{}?}

The \MP{} system (by John Hobby) implements a picture-drawing language
very much like that of \MF{} except that it outputs Encapsulated \PS{}
files instead of run-length-encoded bitmaps.  \MP{} is a powerful
language for producing figures for documents to be printed on \PS{}
printers, either directly or embedded in \AllTeX{} documents. It
includes facilities for directly integrating \TeX{} text and
mathematics with the graphics. (Knuth tells us that he uses nothing
but \MP{} for diagrams in text that he is writing.)

Although \PDFLaTeX{} cannot ordinarily handle \PS{} graphics, the
output of \MP{} is sufficiently simple and regular that \PDFLaTeX{}
can handle it direct, using code borrowed from \CONTeXT{}~--- see
\Qref[question]{graphics in \PDFLaTeX{}}{Q-pdftexgraphics}.

Much of \MP{}'s source code was copied from \MF{}'s sources, with
Knuth's permission.

A mailing list discussing \MP{} is available;
\begin{narrowversion} % really non-hyper
  subscribe via the \acro{TUG} \ProgName{mailman} interface at
  \URL{http://lists.tug.org/metapost}
\end{narrowversion}
\begin{wideversion} % really hyper
  subscribe via the % ! line break
  \href{http://lists.tug.org/metapost}{\acro{TUG} \ProgName{mailman} interface}.
\end{wideversion}
The \acro{TUG} website also hosts a % ! line break
\href{http://tug.org/metapost.html}{\MP{} summary page}.

%****
\Question[Q-texthings]{Things with ``\TeX{}'' in the name}

New \TeX{} users are often baffled by the myriad terms with ``\TeX{}''
in the name.  The goal of this answer is to clarify some of the more
common \TeX{} terms.

\paragraph{\TeX{} itself}
\TeX{} proper is a typesetting system based on a set of low-level
control sequences that instruct \TeX{} how to lay out text on the
page.  For example, \csx{hskip} inserts a given amount of horizontal
space into the document, and \csx{font} makes a given font available
to \TeX{}.  \TeX{} is fully programmable using an integrated macro
scripting language that supports variables, scoping, conditional
execution, control flow, and function (really, macro) definitions.
See % ! line break
\Qref[question]{What is \TeX{}?}{Q-whatTeX} for some background
information on \TeX{} and % ! line break
\Qref[question]{Reference documents}{Q-ref-doc} for pointers to
descriptions of \TeX{} control sequences, data types, and other key
parts of \TeX{}.

\paragraph{\TeX{} macro packages (a.k.a.~\TeX{} formats)}
\TeX{}'s control sequences are tedious to use directly; they are
intended primarily as building blocks for higher-level---and therefore
more user-friendly---abstractions.  For example, there is no way in
base \TeX{} to specify that a piece of text should be typeset in a
larger font.  Instead, one must keep track of the current size and
typeface, load a new font with the same typeface but a (specified)
larger size, and tell \TeX{} to use that new font until instructed
otherwise.  Fortunately, because \TeX{} is programmable, it is
possible to write a macro that hides this complexity behind a simple,
new control sequence.  For example,
%
\cmdinvoke{larger}{my text} can be defined to typeset ``my text'' in
the next larger font).

While some users write their own, perfectly customized set of
macros---which they then typically reuse across many documents---it is
far more common to rely upon a \emph{macro package}, a collection of
\TeX{} macros written by experts.  For the user's convenience, these
macro packages are often combined with the base \TeX{} engine into a
standalone executable.  The following are some of that macro packages
that you are likely to encounter:
\begin{description}
  \item[Plain \TeX{} (executable: \ProgName{tex})]
  See
  \Qref[questions]{Books on \TeX{} and its relations}{Q-books},
  \Qref[]{Online introductions: \TeX{}}{Q-man-tex},
  \Qref[]{Should I use Plain \TeX{} or \LaTeX{}?}{Q-plainvltx} and
  \Qref[]{Freely available \AllTeX{} books}{Q-ol-books}.
  Note that the Plain \TeX{} executable is called \ProgName{tex}; the
  base \TeX{} engine is generally provided by a separate executable
  such as \ProgName{initex} or as a \texttt{-ini} flag to
  \ProgName{tex}.

  \item[\LaTeX{} (executable: \ProgName{latex})]
  See
  \Qref[questions]{Books on \TeX{} and its relations}{Q-books},
  \Qref[]{\AllTeX{} Tutorials, etc.}{Q-tutorials*},
  \Qref[]{Online introductions: \LaTeX{}}{Q-man-latex},
  \Qref[]{Specialized \AllTeX{} tutorials}{Q-tutbitslatex} and
  \Qref[]{Directories of \AllTeX{} information}{Q-doc-dirs}.
  Note that there have been two major versions of \LaTeX{}: \LaTeXe{}
  refers to the current version of \LaTeX{} while \LaTeXo{} is the
  long-since-obsolete (since 1994) version (cf.~%
  \Qref[question]{What is \LaTeXe{}?}{Q-latex2e} for more information).

  \item[\CONTeXT{} (executable: \ProgName{texexec})]
  See
  \Qref[question]{What is \CONTeXT{}?}{Q-context}.

  \item[Texinfo (executables: \ProgName{tex}, \ProgName{makeinfo})]
  See
  \Qref[question]{What is Texinfo?}{Q-texinfo}.  \ProgName{makeinfo}
  converts Texinfo documents to \acro{HTML}, DocBook, Emacs info,
  \acro{XML}, and plain text.  \ProgName{Tex} (or wrappers such as
  \ProgName{texi2pdf} and \ProgName{texi2pdf}) produce one of \TeX{}'s
  usual output formats such as \acro{DVI} or \acro{PDF}.  Because
  \ProgName{tex} loads the Plain \TeX{} macros, not the Texinfo ones,
  a Texinfo document must begin with \cmdinvoke{input}{texinfo} to
  explicitly load the Texinfo macro package.

  \item[\Eplain{}---Extended Plain \TeX{} (executable: \ProgName{eplain})]
  See
  \Qref[question]{What is \Eplain{}?}{Q-eplain}.
\end{description}

\paragraph{Modified \ProgName{tex} executables}
The original \ProgName{tex} executable was produced in the late 1970s
(cf.~\Qref[question]{What is \TeX{}?}{Q-whatTeX}) and consequently
lacked some features that users have come to expect from today's
software.  The following programs address these issues by augmenting
the \TeX{} engine with some additional useful features:

\begin{description}
  \item[\PDFTeX{} (executable: \ProgName{pdftex})]
  \TeX{}, which predates the \acro{PDF} file format by a decade,
  outputs files in a \TeX{}-specific format called \acro{DVI}
  (cf.~\Qref[question]{What is a \acro{DVI} file?}{Q-dvi}).  In
  contrast, \PDFTeX{} can output both \acro{DVI} \emph{and} \acro{PDF}
  files.  In \acro{PDF} mode, it lets documents exploit various
  \acro{PDF} features such as hyperlinks, bookmarks, and annotations,
  \PDFTeX{} additionally supports two sophisticated micro-typographic
  features: character protrusion and font expansion.  See
  \Qref[question]{What is \PDFTeX{}?}{Q-whatpdftex}.

  \item[\xetex{} (executable: \ProgName{xetex})]
  \TeX{} not only predates all major font technologies in use today
 (e.g.,~TrueType, OpenType, and PostScript Type~1) but also predates
  the notion that fonts be included with an operating system.
  Consequently, \TeX{} uses its own font formats, which are
  incompatible with anything a user is likely to have preinstalled.
  \xetex{} addresses this issue by enhancing \TeX{}'s \csx{font}
  control sequence to support all of the fonts made available by the
  operating system.  See
  \Qref[question]{What is \xetex{}?}{Q-xetex}.

  \item[\LuaTeX{} (executable: \ProgName{luatex})]
  \TeX{} is programmed in its own, integrated, macro-based programming
  language.  Many users have criticized this language for being
  needlessly difficult to program.  \LuaTeX{} addresses that criticism
  by integrating a modern scripting language, Lua, into the base
  \TeX{} engine.  See
  \Qref[question]{What is \LuaTeX{}?}{Q-luatex}.

  \item[\eTeX{} (executable: \ProgName{etex})]
  \eTeX{} provides a number of features that are only indirectly
  useful to end users but that can be immensely useful to package
  developers.  Consequently, there is an increasing number of macro
  packages that require the use of \eTeX{}.  (Note: Be careful not to
  confuse \eTeX{}, which enhances the \TeX{} engine, with \Eplain{},
  which enhances the Plain \TeX{} macro package.)  See
  \Qref[question]{What is \eTeX{}?}{Q-etex}.
\end{description}

Because each of the above modifies only the base \TeX{} engine, it is
possible to combine any of those with any of the \TeX{} macro packages
listed earlier to produce executables with both sets of features.  For
example, the \ProgName{pdflatex}, \ProgName{xelatex} and
\ProgName{lualatex} executables each combine
\LaTeX{} with an enhanced \TeX{} engine.  Some executables combine the
features of multiple enhanced \TeX{} engines: \ProgName{pdfetex}
combines \PDFTeX{} and \eTeX{} into a single executable.

As combining features is a generally desirable tendency, current
\TeX{} distributions (see below) incorporate the features of \PDFTeX{}
and \eTeX{} into a single executable.  This executable may be
offered with a \LaTeX{} format (as \ProgName{latex} or
\ProgName{pdflatex}) or with a \plaintex{} format (as
\ProgName{pdftex}).  (\ProgName{Tex} remains with an unadorned \TeX{}
executable using \plaintex{}, for people such as Knuth himself, who
want the certainty of the ``original''.)

\paragraph{\TeX{} distributions}
A \emph{\TeX{} distribution} is a collection of \TeX{}-related
software.  Generally, a \TeX{} distribution includes a set of core
\TeX{} executables such as \ProgName{tex} and \ProgName{latex};
various fonts optimized for use with \TeX{}; helper programs such as
the \BibTeX{} bibliographic-database formatter, editors, integrated
development environments, file-format-conversion programs; numerous
\LaTeX{} packages; configuration tools; and any other goodies the
distributor chooses to include.  Commonly encountered \TeX{}
distributions include \texlive{}, \miktex{} and Mac\TeX{}; older ones
include oz\TeX{}, \acro{CM}ac\TeX{} and te\TeX{}.  Some \TeX{}
distributions target a specific operating system and/or processor
architecture; others run on multiple platforms.  Some \TeX{}
distributions are free; others require payment.  See % ! line break
\Qref[question]{\AllTeX{} for different machines}{Q-TeXsystems} for a
list of free and shareware \TeX{} distributions and % ! line break
\Qref[question]{Commercial \TeX{} implementations}{Q-commercial} for a
list of commercial \TeX{} distributions.

\paragraph{Summary}
If your document begins with \csx{documentclass}, you're using some
form of the \LaTeX{} macro package.  Even if hidden behind a button in
a \TeX{}-aware GUI, this document is getting compiled by a \TeX{}
executable---probably \ProgName{latex} or \ProgName{pdflatex}---to
produce an output file.  The executable came bundled as part of a
\TeX{} distribution such as \miktex{}, which includes various other
\TeX{}-related components.
\LastEdit{2009-06-11}


\Question[Q-triptrap]{How can I be sure it's really \TeX{}?}

\TeX{} (and \MF{} and \MP{}) are written in a
\begin{narrowversion} % really "non-hyper"
  `literate' programming language called Web (\Qref{}{Q-lit})
\end{narrowversion}
\begin{wideversion}
  \Qref{`literate' programming}{Q-lit} language called Web
\end{wideversion}
which is designed to be portable across a wide range of computer
systems.  How, then, is a new version of \TeX{} checked?

Of course, any sensible software implementor will have his own suite
of tests to check that his software runs: those who port \TeX{} and
its friends to other platforms do indeed perform such tests.

Knuth, however, provides a `conformance test' for both \TeX{}
(\texttt{trip}) and \MF{} (\texttt{trap}).
%%% Is there a similar one for \MP{}?
He characterises these as `torture tests': they are designed not to
check the obvious things that ordinary typeset documents, or font
designs, will exercise, but rather to explore small alleyways off the
main path through the code of \TeX{}.  They are, to the casual reader,
pretty incomprehensible!

Once an implementation of \TeX{} has passed its \texttt{trip} test, or an
implementation of \MF{} has passed its \texttt{trap} test, then it may
in principle be distributed as a working version.  (In practice, any
distributor would test new versions against ``real'' documents or
fonts, too; \texttt{trip} and \texttt{trap} don't actually test any
for real world problems.


\Question[Q-y2k]{Are \TeX{} and friends Y2K compliant?}

\begin{description}
\item[Crashing:] None of \TeX{}, \MF{} or \MP{} can themselves crash
  due to any change whatever in the date of any sort.
\item[Timestamps:] In the original sources, a 2-digit year was
  stored as the creation time for format files and that value is
  printed in log-files.  These items should not be of general concern,
  since the only use of the date format file is to produce the log
  output, and the log file is designed for human readers only.
  
  Knuth announced in 1998 that implementors could
  alter this code without fear of being accused of non-compliance.
  Nearly all implementations that are being actively maintained had
  been modified to generate 4-digit years in the format file and the
  log, by the end of 1998.  The original sources themselves have now
  been modified so that 4-digit year numbers are stored.
\item[The \csx{year} primitive:] Certification of a \TeX{}
  implementation (see \Qref[question]{trip/trap testing}{Q-triptrap})
  does not require that \csx{year} return a meaningful value (which
  means that \TeX{} can, in principle, be implemented on platforms
  that don't make the value of the clock available to user programs).
  The \emph{\TeX{}book} (see
  \Qref[question]{TeX-related books}{Q-books}) defines \csx{year} as
  ``the current year of our Lord'', which is the only correct meaning
  for \csx{year} for those implementations which can supply a
  meaningful value, which is to say nearly all of them.

  In short, \TeX{} implementations should provide a value in \csx{year}
  giving the 4-digit year Anno Domini, or the value 1776 if the
  platform does not support a date function.

  Note that if the system itself fails to deliver a correct date to
  \TeX{}, then \csx{year} will of course return an incorrect value.
  \TeX{} cannot be considered Y2K compliant, in this sense, on a
system that is not itself Y2K compliant.
\item[Macros:] \TeX{} macros can in principle perform calculations on
  the basis of the value of \csx{year}.
  The \Qref*{LaTeX suite}{Q-latex}
  performs such calculations in a small number of places; the
  calculations performed in the current (supported) version of \LaTeX{} are
  known to be Y2K compliant.

  Other macros and macro packages should be individually checked.
\item[External software:] Software such as \acro{DVI} translators
  needs to be individually checked.
\end{description}

\Question[Q-etex]{What is \eTeX{}?}

While Knuth has declared that \TeX{} will never % !line break
\Qref*{change in any substantial way}{Q-TeXfuture}, there remain
things that one might wish had been done differently, or indeed
implemented at all.

The \acro{NTS} project set out to produce an advanced replacement for
\TeX{}, to provide a basis for developing such modifications: this
``New Typesetting System'' would share Knuth's aims, but would
implement the work in a modern way taking account of the lessons
learned with \TeX{}.  While a first demonstrator \acro{NTS} did
appear, it wasn't practically useful, and the project seems no longer
active.

In parallel with its work on \acro{NTS} itself, the project developed
a set of extensions that can be used with a (``true'') \TeX{} system.
Such a modified system is known as an \eTeX{} system, and the concept
has proved widely successful.  Indeed, current \TeX{} distributions
are delivered with most formats built with an \eTeX{}-based system (for
those who don't want them, \eTeX{}'s extensions can be disabled, leaving
a functionally standard \TeX{} system).

The extensions range from the seemingly simple (increasing the number
of available registers from 256 to 32768) through to extremely subtle
programming support.

\Qref*{\CONTeXT{}}{Q-context} has required \eTeX{} for its operation
for some time.

Some \LaTeX{} packages already specify the use of \eTeX{}.  Some such
packages may not work at all on a non-\eTeX{} system; others will
work, but not as well as on an \eTeX{} system.  The % ! line break
\Qref*{\LaTeX{} team}{Q-LaTeX3} has announced that future \LaTeX{}
packages (specifically those from the team, as opposed to those
individually contributed) may require \eTeX{} for optimum performance.

\Question[Q-whatpdftex]{What is \PDFTeX{}?}

One can reasonably say that \PDFTeX{} is (today) the main stream of
\TeX{} distributions: most \LaTeX{} and \CONTeXT{} users nowadays use
\PDFTeX{} whether they know it or not (more precisely, they use
\PDFTeX{} extended by
\begin{wideversion}
  \Qref*{\eTeX{}}{Q-etex}).
\end{wideversion}
\begin{narrowversion}
  \eTeX{}~--- \Qref{}{Q-etex}).
\end{narrowversion}
So what is \PDFTeX{}?

\PDFTeX{} is a development of \TeX{} that is capable of generating
typeset \acro{PDF} output in place of \acro{DVI}.  \PDFTeX{} has
other capabilities, most notably in the area of fine typographic
detail (for example, its support for % ! line break
\begin{wideversion}
  \Qref{optimising line breaks}{Q-overfull}),
\end{wideversion}
\begin{narrowversion}
  % ( <- dummy for paren balancing
  optimising line breaks~--- \Qref{}{Q-overfull}),
\end{narrowversion}
but its greatest impact to date has been in the area of
\acro{PDF} output.

\PDFTeX{} started as a topic for H\`an \The{} Th\`anh's Master's~thesis,
and seems first to have been published in \TUGboat{} 18(4), in 1997
(though it was certainly discussed at the \acro{TUG}'96 conference in
Russia).

While the world was making good use of ``pre-releases'' of \PDFTeX{},
Th\`anh used it as a test-bed for the micro-typography which was the
prime subject of his Ph.D. research.  Since Th\`anh was finally
awarded his Ph.D., day-to-day maintenance and development of
\PDFTeX{}~1.0 (and later) has been in the hands of a group of
\PDFTeX{} maintainers (which includes Th\`anh); the group has managed
to maintain a stable platform for general use.

Development of \PDFTeX{} has (in essence) stopped: the brave new world
is to be \Qref*{\LuaTeX{}}{Q-luatex}.

\Question[Q-latex]{What is \LaTeX{}?}

\LaTeX{} is a \TeX{} macro package, originally written by Leslie Lamport, that
provides a document processing system.  \LaTeX{} allows markup to
describe the structure of a document, so that the user
need not think about presentation. By using document classes and
add-on packages, the same document can be produced in a variety of
different layouts.

Lamport says that \LaTeX{}
``\emph{represents a balance between functionality and ease of use}''.
This shows itself as a continual conflict that leads to
the need for such things as \acro{FAQ}s: \LaTeX{} \emph{can} 
meet most user requirements, but finding out \emph{how} is often
tricky.

\Question[Q-latex2e]{What is \LaTeXe{}?}

Lamport's last version of \LaTeX{} (\LaTeXo{}, last updated in 1992)
was superseded in 1994 by a new version (\LaTeXe{}) provided by
\Qref*{the \LaTeX{} team}{Q-LaTeX3}.
\LaTeXe{} is now the only readily-available version of
\LaTeX{}, and draws together several threads of \LaTeX{} development
from the later days of \LaTeXo{}.  The ``e'' of the name is (in the
% next (ghastly) line needed to maintain typesetting
\wideonly{\Qref{official logo}{Q-logos}}\narrowonly{official logo~--- \Qref{\relax}{Q-logos}})
% the \relax allows sanitize to cope with the line.  just don't ask...
a single-stroke epsilon
(\latexhtml{\ensuremath{\varepsilon}}{&epsilon;}, supposedly
indicative of no more than a small change.

\LaTeXe{} has several enhancements over \LaTeXo{}, but they were all
rather minor, with a view to continuity and stability rather than the
``big push'' that some had expected from the team.  \LaTeXe{}
continues to this day to offer a compatibility mode in which most
files prepared for use with \LaTeXo{} will run (albeit with somewhat
reduced performance, and subject to voluminous complaints in the log
file).  Differences between \LaTeXe{} and \LaTeXo{} are
outlined in a series of `guide' files that are available in every
\LaTeX{} distribution (the same directory also contains ``news'' about
each new release of \LaTeXe{}).
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\LaTeX{} guides and news]\CTANref{latexdoc}
\end{ctanrefs}
\LastEdit{2009-06-07}

\Question[Q-latexpronounce]{How should I pronounce ``\LaTeX{}(\twee{})''?}

Lamport never recommended how one should pronounce \LaTeX{}, but a lot
of people pronounce it `Lay \TeX{}' or perhaps `Lah \TeX{}' (with
\TeX{} pronounced as the program itself; see
\Qref[question]{the rules for TeX}{Q-TeXpronounce}).  It is definitely
\emph{not} to be pronounced in the same way as the rubber-tree gum
(which would be `lay teks').

The \LaTeXe{} logo is supposed to end with an
\latexhtml{\ensuremath{\varepsilon}}{&epsilon;}; nevertheless, most
people pronounce the name as `\LaTeX{}-two-ee'.
\LastEdit{2009-06-08}

\Question[Q-plainvltx]{Should I use \plaintex{} or \LaTeX{}?}

There's no straightforward answer to this question.  Many people swear
by \plaintex{}, and produce highly respectable documents using it
(Knuth is an example of this, of course).  But equally, many people
are happy to let someone else take the design decisions for them,
accepting a small loss of flexibility in exchange for a saving of
(mental) effort.

The arguments around this topic can provoke huge amounts of noise and
heat, without offering much by way of light; your best bet may be to
find out what those around you are using, and to follow them in the
hope of some support.  Later on, you can always switch your
allegiance; don't bother about it.

If you are preparing a manuscript for a publisher or journal, ask them
what markup they want before you
develop your own; many big publishers have developed their own
\AllTeX{} styles for journals and books, and insist that authors stick
closely to their markup.

\Question[Q-LaTeXandPlain]{How does \LaTeX{} relate to \plaintex{}?}

\LaTeX{} is a program written in the programming language \TeX{}.  (In
the same sense, any \LaTeX{} document is also a program, which is
designed to run `alongside', or `inside' \LaTeX{}, whichever metaphor
you prefer.)

\plaintex{} is also a program written in the programming language
\TeX{}.

Both exist because writing your documents in `raw' \TeX{} would
involve much reinventing of wheels for every document.  They both
serve as convenient aids to make document writing more pleasant:
\LaTeX{} is a far more extensive aid.

\LaTeX{} is close to being a superset of \plaintex{}.  Many documents
designed for \plaintex{} will work with \LaTeX{} with no more than
minor modifications (though some will require substantial work).

Interpretation of any \AllTeX{} program involves some data-driven
elements, and \LaTeX{} has a wider range of such elements than does
\plaintex{}.  As a result, the mapping from \LaTeX{} to \plaintex{}
is far less clear than that in the other direction~--- see a later
answer about \Qref*{translating to \plaintex{}}{Q-LaTeXtoPlain}.

\Question[Q-context]{What is \CONTeXT{}?}

\href{http://www.pragma-ade.com/}{\CONTeXT{}} is a macro package
developed by Hans Hagen of Pragma-Ade.  \CONTeXT{} is a
document-production system based, like \LaTeX{}, on the \TeX{}
typesetting system.  Whereas \LaTeX{} insulates the writer from
typographical details, \CONTeXT{} takes a complementary approach by
providing structured interfaces for handling typography, including
extensive support for colors, backgrounds, hyperlinks, presentations,
figure-text integration, and conditional compilation.  It gives the
user extensive control over formatting while making it easy to create
new layouts and styles without learning the \TeX{} macro
language. \CONTeXT{}'s unified design avoids the package clashes that
can happen with \LaTeX{}.

\CONTeXT{} also integrates MetaFun, a superset of \MP{} and a powerful
system for vector graphics.  MetaFun can be used as a stand-alone
system to produce figures, but its strength lies in enhancing
\CONTeXT{} documents with accurate graphic elements.

\CONTeXT{} allows the users to specify formatting commands in English,
Dutch, German, French, or Italian, and to use different typesetting
engines (\PDFTeX{}, Xe\TeX{}, Aleph, and soon \LuaTeX{}) without
changing the user interface. \CONTeXT{} is developed rapidly, often in
response to requests from the user community.

%%% RF's original version
%% developed by Hans Hagen, originally to
%% serve the needs of his (Dutch) firm Pragma.  It was designed with the
%% same general-purpose aims as \LaTeX{}, but (being younger) reflects
%% much more recent thinking about the structure of markup, etc.  In
%% particular, \CONTeXT{} can customise its markup to an
%% author's language (customising modules for Dutch, English and German
%% are provided, at present).
%%
%% \CONTeXT{} is well integrated, in all of its structure,
%% with the needs of hypertext markup, and in particular with the
%% facilities offered by \Qref*{\PDFTeX{}}{Q-whatpdftex}.
%% The default installation employs a version of \PDFTeX{} built with the
%% \Qref*{\eTeX{} extensions}{Q-etex}, which allows further flexibility.

\CONTeXT{} doesn't yet have quite such a large developer community as
does \LaTeX{}, but those developers who are active seem to have
prodigious energy.  Support is available via a % ! line break
\href{http://contextgarden.net}{\acro{WIKI} site} and via the
\href{http://www.ntg.nl/mailman/listinfo/ntg-context}{mailing list}.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\CONTeXT{} distribution]\CTANref{context}
\end{ctanrefs}

\Question[Q-AMSpkg]{What are the \acro{AMS} packages (\AMSTeX{}, \emph{etc}.)?}

\AMSTeX{} is a \TeX{} macro package, originally written by Michael Spivak for
the American Mathematical Society (\acro{AMS}) during 1983--1985 and
is described in the book ``\Qref*{The Joy of \TeX{}}{Q-books}''.
It is based on \plaintex{}, and provides many
features for producing more professional-looking maths formulas with
less burden on authors.  It pays attention to the finer details of
sizing and positioning that mathematical publishers care about. The
aspects covered include multi-line displayed equations, equation
numbering, ellipsis dots, matrices, double accents, multi-line
subscripts, syntax checking (faster processing on initial
error-checking \TeX{} runs), and other things.

As \LaTeX{} increased in popularity, authors sought to submit papers to
the \acro{AMS} in \LaTeX{}, so \AMSLaTeX{} was developed.  \AMSLaTeX{}
is a collection of \LaTeX{} packages and classes that offer authors most of
the functionality of \AMSTeX{}.
The \acro{AMS} no longer recommends the use of \AMSTeX{}, and urges
its authors to use \AMSLaTeX{} instead.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\AMSTeX{} distribution]\CTANref{amstex}
\item[\nothtml{\rmfamily}\AMSLaTeX{} distribution]\CTANref{amslatex}
\end{ctanrefs}

\Question[Q-eplain]{What is \Eplain{}?}

The \href{http://tug.org/eplain}{\Eplain{}}
macro package expands on and extends the definitions in \plaintex{}.
\Eplain{} is not intended to provide ``generic typesetting
capabilities'', as do \CONTeXT{}, \LaTeX{} or
\Qref*{Texinfo}{Q-texinfo}.  Instead, it defines macro tools that
should be useful whatever commands you choose to use when you prepare
your manuscript.

For example, \Eplain{} does not have a command \csx{section},
which would format section headings in an ``appropriate'' way, as
\LaTeX{}'s \csx{section} does.  The philosophy of \Eplain{} is that
some people will always need or want to go beyond the macro designer's
idea of ``appropriate''.  Such canned macros are fine~--- as long as you
are willing to accept the resulting output.  If you don't like the
results, or if you are trying to match a different format, you are out
of luck.

On the other hand, almost everyone would like capabilities such as
cross-referencing by labels, so that you don't have to put actual page
numbers in the manuscript.  The authors of \Eplain{} believe it is the
only generally available macro package that does not force its
typographic style on an author, and yet provides these such capabilities.

Another useful feature of \Eplain{} is the ability to create PDF files
with hyperlinks.  The cross-referencing macros can implicitly generate
hyperlinks for the cross-references, but you can also create explicit
hyperlinks, both internal (pointing to a destination within the
current document) and external (pointing to another local document or
a URL).

Several \LaTeX{} packages provide capabilities which \plaintex{}
users are lacking, most notably text colouring and rotation provided by
the \Package{graphics} bundle (packages \Package{color} and
\Package{graphics}).  Although the \Package{graphics} bundle provides
a \plaintex{} ``loader'' for some of the packages, it is not a
trivial job to pass options to those packages under \plaintex{}, and
much of the functionality of the packages is accessed through package
options.  \Eplain{} extends the loader so that options can be passed
to the packages just as they are in \LaTeX{}.  The following packages are
known to work with \Eplain{}:  \Package{graphics}, \Package{graphicx},
\Package{color}, \Package{autopict} (\LaTeX{} picture environment),
\Package{psfrag}, and \Package{url}.

\href{http://tug.org/docs/html/eplain}{\Eplain{} documentation} is
available online, and there's
also a mailing list~--- sign up, or browse the list archives, via
\URL{http://tug.org/mailman/listinfo/tex-eplain}
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\Eplain{} distribution]\CTANref{eplain}
\end{ctanrefs}

\Question[Q-lollipop]{What is Lollipop?}

Lollipop is a macro package written by Victor Eijkhout; it was used in
the production of his book ``\emph{\TeX{} by Topic}'' (see
\Qref[question]{\AllTeX{} Tutorials}{Q-ol-books}).  The manual says of
it:
\begin{quote}
  Lollipop is `\TeX{} made easy'. Lollipop is a macro package that
  functions as a toolbox for writing \TeX{} macros.  It was my
  intention to make macro writing so easy that implementing a fully
  new layout in \TeX{} would become a matter of less than an hour for
  an average document, and that it would be a task that could be
  accomplished by someone with only a very basic training in \TeX{}
  programming.

  Lollipop is an attempt to make structured text formatting available
  for environments where previously only \WYSIWYG{} packages could be
  used because adapting the layout is so much more easy with them than
  with traditional \TeX{} macro packages.
\end{quote}

The manual goes on to talk of ambitions to ``capture some of the
\LaTeX{} market share''; it's a very witty package, but little sign of
\htmlignore
it taking over from \LaTeX{} is detectable\dots{}\@
\endhtmlignore
\begin{htmlversion}
it taking over from \LaTeX{} is detectable\dots{}
\end{htmlversion}
An article about Lollipop appeared in \TUGboat{} 13(3).
\begin{ctanrefs}
\item[\nothtml{\rmfamily}Lollipop distribution]\CTANref{lollipop}
\end{ctanrefs}

\Question[Q-texinfo]{What is Texinfo?}

Texinfo is a documentation system that uses one source file to produce
both on-line information and printed output.  So instead of writing
two different documents, one for the on-line help and the other for a
typeset manual, you need write only one document source file.  When
the work is revised, you need only revise one document.  By
convention, Texinfo source file names end with a \extension{texi} or
\extension{texinfo} extension.

Texinfo is a macro language, somewhat similar to \LaTeX{}, but with
slightly less expressive power.  Its appearance is of course rather
similar to any \TeX{}-based macro language, except that its macros
start with \texttt{@} rather than the |\| that's more commonly used in
\TeX{} systems.

You can write and format Texinfo files into Info files within \acro{GNU}
\ProgName{emacs}, and read them using the \ProgName{emacs} Info
reader.  You can also format Texinfo files into Info files using
\ProgName{makeinfo} and read them using \ProgName{info}, so you're not
dependent on \ProgName{emacs}.  The distribution includes a
\ProgName{Perl} script, \ProgName{texi2html}, that will convert
Texinfo sources into \acro{HTML}: the language is a far better fit to
\acro{HTML} than is \LaTeX{}, so that the breast-beating agonies of
\Qref*{converting \LaTeX{} to \acro{HTML}}{Q-LaTeX2HTML} are largely
avoided.

Finally, of course, you can also print the files, or convert them to
\acro{PDF} using \PDFTeX{}.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}Texinfo distribution]\CTANref{texinfo}
\end{ctanrefs}

\Question[Q-whyfree]{If \TeX{} is so good, how come it's free?}

It's free because Knuth chose to make it so.  He is nevertheless
apparently happy
that others should earn money by selling \TeX{}-based services and
products. While several valuable \TeX{}-related tools and packages are
offered subject to restrictions imposed by the \acro{GNU} General Public
Licence (`Copyleft'), \TeX{} itself is not subject to Copyleft.

There are commercial versions of \TeX{} available; for some users,
it's reassuring to have paid support.  What is more, some of the
commercial implementations
have features that are not available in free versions.  (The
reverse is also true: some free implementations have features
not available commercially.)

This \acro{FAQ} concentrates on `free' distributions of \TeX{}, but we
do at least list the \Qref*{major vendors}{Q-commercial}.

\Question[Q-TeXfuture]{What is the future of \TeX{}?}

Knuth has declared that he will do no further development of \TeX{};
he will continue to fix any bugs that are reported to him (though
bugs are rare).  This decision was made soon after
\TeX{} version~3.0 was released; at each bug-fix release
the version number acquires one more digit, so that it tends to the
limit~\ensuremath{\pi} (at the time of writing, Knuth's latest release
is version 3.1415926).  Knuth wants \TeX{} to be frozen at
version~\ensuremath{\pi} when he dies; thereafter, no further changes
may be made to Knuth's source.  (A similar rule is applied to \MF{};
its version number tends to the limit~\ensuremath{e}, and currently
stands at 2.718281.)

Knuth explains his decision, and exhorts us all to respect it, in a
paper originally published in % ! line break
\href{http://tug.org/TUGboat/Articles/tb11-4/tb30knut.pdf}{\TUGboat{} 11(4)},
and reprinted in the % ! line break
\href{http://www.ntg.nl/maps/pdf/5_34.pdf}{NTG journal MAPS}.

There are projects (some of them long-term
projects: see, for example,
\Qref[question]{the LaTeX3 project}{Q-LaTeX3})
%\Qref[and]{and the SGML work}{Q-SGML})
to build substantial
new macro packages based on \TeX{}.  For the even longer term, there
are various projects to build a \emph{successor} to \TeX{}; see, for example,
the
\begin{narrowversion}
  \LuaTeX{}, Omega/Aleph and \ExTeX{} projects (questions
\end{narrowversion}
\Qref[\nothtml]{\LuaTeX}{Q-luatex},
\Qref[\nothtml]{Omega/Aleph}{Q-omegaleph} and
\Qref[\nothtml]{\ExTeX{}}{Q-extex}\narrowonly{).}
\begin{wideversion}
  projects.
\end{wideversion}

\Question[Q-readtex]{Reading \AllTeX{} files}

So you've been sent a \TeX{} file: what are you going to do with it?

You can, of course, ``just read it'', since it's a plain text file,
but the markup tags in the document may prove distracting.  Most of
the time, even \TeX{} experts will typeset a \TeX{} file before
attempting to read it.

So, you need to typeset the document.  The good news is that \TeX{}
systems are available, free, for most sorts of computer; the bad news
is that you need a pretty complete \TeX{} system even to read a single
file, and complete \TeX{} systems are pretty large.

\TeX{} is a typesetting system that arose from a publishing project (see
\wideonly{``}\Qref[question]{what is \TeX{}}{Q-whatTeX}\wideonly{''}),
and its basic source is available free from its author.  However, at
its root, it is \emph{just} a typesetting engine: even to view or to
print the typeset output, you will need ancillary programs.  In short,
you need a \TeX{} \emph{distribution}~--- a collection of
\TeX{}-related programs tailored to your operating system: for details
of the sorts of things that are available, see
% beware line break
\htmlonly{``}\Qref[question]{\TeX{} distributions}{Q-TeXsystems}\htmlonly{''}
or
% beware line break
\htmlonly{``}\Qref[\htmlonly]{commercial \TeX{} distributions}{Q-commercial}\latexhtml{ (for commercial distributions)}{''}.

But beware~--- \TeX{} makes no attempt to look like the sort of
\WYSIWYG{} system you're probably used to (see
% beware line wrap
\wideonly{``}\Qref[question]{why is \TeX{} not \WYSIWYG{}}{Q-notWYSIWYG}\wideonly{''}):
while many modern versions of \TeX{} have a compile--view cycle that
rivals the best commercial word processors in its responsiveness, what
you type is usually \emph{markup}, which typically defines a logical
(rather than a visual) view of what you want typeset.

So there's a balance between the simplicity of the original
(marked-up) document, which can more-or-less be read in \emph{any}
editor, and the really rather large investment needed to install a
system to read a document ``as intended''.

\Question[Q-notWYSIWYG]{Why is \TeX{} not a \WYSIWYG{} system?}

\WYSIWYG{} is a marketing term (``What you see is what you get'') for
a particular style of text processor.  \WYSIWYG{} systems are
characterised by two principal claims: that you type what you want to
print, and that what you see on the screen as you type is a close
approximation to how your text will finally be printed.

The simple answer to the question is, of course, that \TeX{} was
conceived long before the marketing term, at a time when the marketing
imperative wasn't perceived as significant.  However, that was a long
time ago: why has nothing been done with the ``wonder text processor''
to make it fit with modern perceptions?

There are two answers to this.  First, the simple ``things \emph{have}
been done'' (but they've not taken over the \TeX{} world); and second,
``there are philosophical reasons why the way \TeX{} has developed is
ill-suited to the \WYSIWYG{} style''.
Indeed, there is a fundamental problem with applying \WYSIWYG{} techniques
to \TeX{}: the complexity of \TeX{} makes it hard to get the
equivalent of \TeX{}'s output without actually running \TeX{}.

A celebrated early system offering ``\WYSIWYG{} using \TeX{}'' came from the
Vor\TeX{} project: a pair of (early) Sun workstations worked in
tandem, one handling the user interface while the other beavered away
in the background typesetting the result.  Vor\TeX{} was quite
impressive for its time, but the two workstations combined had hugely less
power than the average sub-thousand dollar Personal Computer
nowadays, and its code has not proved portable (it never even made the
last `great' \TeX{} version change, at the turn of the 1990s, to
\TeX{} version 3).  Modern systems that are similar in
their approach are Lightning Textures (an extension of
Blue Sky's original \TeX{} system for the Macintosh), and Scientific
Word (which can also cooperate with a computer algebra system); both
these systems are \Qref*{commercially available}{Q-commercial}.

The issue has of recent years started to attract attention from \TeX{}
developers, and several interesting projects addressing the
``\Qref*{\TeX{} document preparation environment}{Q-WYGexpts}''
are in progress.

Nevertheless, the \TeX{} world has taken a long time to latch onto the
idea of \WYSIWYG{}.
Apart from simple arrogance (``we're better, and have no need to
consider the petty doings of the commercial word processor market''),
there is a real conceptual difference between the word processor model
of the world and the model \LaTeX{} and \CONTeXT{} employ~--- the idea of
``markup''.  ``Pure'' markup expresses a logical model of a document,
where every object within the document is labelled according to what
it is rather than how it should appear: appearance is deduced from the
properties of the type of object.  Properly applied, markup can
provide valuable assistance when it comes to re-use of documents.

Established \WYSIWYG{} systems find the expression of this sort of
structured markup difficult; however, markup \emph{is} starting to
appear in the lists of the commercial world's requirements, for two
reasons.  First, an element of markup helps impose style on a
document, and commercial users are increasingly obsessed with
uniformity of style; and second, the increasingly pervasive use of
\acro{XML}-derived document archival formats demands it.  The same
challenges must needs be addressed by \TeX{}-based document
preparation support schemes, so we are
observing a degree of confluence of the needs of the two communities:
interesting times may be ahead of us.

\Question[Q-TUG*]{\TeX{} User Groups}

There has been a \TeX{} User Group since very near the time \TeX{}
first appeared.  That first group, \acro{TUG}, is still active and its
journal \textsl{TUGboat} continues in regular publication
with articles about \TeX{}, \MF{} and related technologies, and about
document design, processing and production.  \acro{TUG} holds a yearly
conference, whose proceedings are published in \textsl{TUGboat}.

\acro{TUG}'s \href{http://www.tug.org}{web site} is a valuable
resource for all sorts of
\TeX{}-related matters, such as details of \TeX{} software, and lists
of \TeX{} vendors and \TeX{} consultants.  Back articles from
\textsl{TUGboat} are slowly (subject to copyright issues, etc.\@)
making their way to the site, too.

Some time ago, \acro{TUG} established a ``technical council'', whose
task was to oversee the development of \TeX{}nical projects.  Most
such projects nowadays go on their way without any support from
\acro{TUG}, but \acro{TUG}'s web site lists its
\htmlignore
\ifpdf
\href{http://www.tug.org/twg.html}{Technical Working Groups (\acro{TWG}s)}.
\else
Technical Working Groups (\acro{TWG}s: see
\URL{http://www.tug.org/twg.html}).
\fi
\endhtmlignore
\begin{htmlversion}
\href{http://www.tug.org/twg.html}{Technical Working Groups (\acro{TWG}s)}.
\end{htmlversion}

\acro{TUG} has a reasonable claim to be considered a world-wide
organisation, but there are many national and regional user groups,
too; \acro{TUG}'s web site maintains a list of
\htmlignore
\ifpdf
\href{http://www.tug.org/lugs.html}{``Local User Groups'' (\acro{LUG}s)}.
\else
``local user groups'' (\acro{LUG}s: see
\URL{http://www.tug.org/lugs.html}).
\fi
\endhtmlignore
\begin{htmlversion}
\href{http://www.tug.org/lugs.html}{``local user groups'' (\acro{LUG}s)}.
\end{htmlversion}

Contact \acro{TUG} itself via:
\begin{quote}
  \TeX{} Users Group\\
  1466 NW Front Avenue, Suite 3141\\
  Portland, OR 97209\\
  \acro{USA}\\[.25\baselineskip]
  Tel: +1 503-223-9994\\
  Fax: +1 503-223-3960\\
  Email: \mailto{tug@mail.tug.org}\\
  Web: \URL{http://www.tug.org/}
\end{quote}

