diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex | 987 |
1 files changed, 987 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex b/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex new file mode 100644 index 00000000000..0e38dc60ca3 --- /dev/null +++ b/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex @@ -0,0 +1,987 @@ +% $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}}{ε}, 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}}{ε}; 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} + |