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 | 255 |
1 files changed, 149 insertions, 106 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 index b1ba743417a..f893036d0bf 100644 --- a/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex +++ b/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex @@ -1,7 +1,45 @@ -% $Id: faq-backgrnd.tex,v 1.10 2011/02/14 20:53:28 rf10 Exp $ +% $Id: faq-backgrnd.tex,v 1.19 2011/04/14 18:34:15 rf10 Exp rf10 $ \section{The Background} +\Question[Q-startup]{Getting started} + +\alltex{} offers a very large number of choices, and the beginner has +to navigate through that set before even taking his first steps. The +aim here is to guide the beginner through a set of answers that may +help the process. We assume the beginner `knows' that \alltex{} is +for them; if not, the discussion ``\Qref{what is \tex{}}{Q-whatTeX}'' +may help. + +To start at the very beginning, then, the beginner may wish to know +what all those % ! line break +``\Qref*{things with \tex{} in their name are}{Q-texthings}''. + +Armed with that knowledge, the beginner needs to decide what macro +format she needs (always assuming someone hasn't already told her she +needs to use ``foo\tex{}''. Learn about the alternatives in answers +discussing common formats: look at % line break +\Qref*{writing \plaintex{}}{Q-plaintex}, +\Qref*{\latex{}}{Q-latex} or +\Qref*{\context{}}{Q-context}. + +If no system has been provided, the beginner needs to acquire a \tex{} +distribution appropriate to their machine. Available options are +available via the answer % ! line break +``\Qref*{\alltex{} for various machines}{Q-TeXsystems}''; we assume +here that the beginner can install things for herself, or has access +to someone who can. + +Finally, the beginner needs to get started in the chosen format. For +\plaintex{}, see ``\Qref[]{Online introductions: \TeX{}}{Q-man-tex}''; +for \latex{}, see % ! line break +``\Qref[]{Online introductions: \LaTeX{}}{Q-man-latex}''; and for +\context{}, the place to start is the % line break +\href{http://wiki.contextgarden.net/Main_Page}{ConTeXt garden wiki} +(which is so good the present \acro{FAQ}s don't even try to compete). +\LastEdit*{2011-03-04} + + \Question[Q-whatTeX]{What is \TeX{}?} \TeX{} is a typesetting system written by @@ -92,7 +130,7 @@ in this \acro{FAQ} (see % ! line break \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 +glyphs, for \TeX{}'s benefit, and creates bitmaps that may be used to represent the glyphs, for the benefit of programs that will produce printed output as post processes after a run of \TeX{}. @@ -104,10 +142,11 @@ 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 +but font design using \MF{} is much more of a minority skill (even) 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 +be aware of \MF{}, and may even be required run \MF{} to generate personal copies of Meta-fonts that come her way. +\LastEdit{2011-03-10} \Question[Q-MP]{What is \MP{}?} @@ -122,21 +161,27 @@ 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}. +can handle it direct, using code borrowed from +\begin{hyperversion} + \Qref*{\context{}}{Q-context}~--- +\end{hyperversion} +\begin{flatversion} + \context{}~--- +\end{flatversion} +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 +\begin{flatversion} subscribe via the \acro{TUG} \ProgName{mailman} interface at \URL{http://lists.tug.org/metapost} -\end{narrowversion} -\begin{wideversion} % really hyper +\end{flatversion} +\begin{hyperversion} subscribe via the % ! line break \href{http://lists.tug.org/metapost}{\acro{TUG} \ProgName{mailman} interface}. -\end{wideversion} +\end{hyperversion} The \acro{TUG} website also hosts a % ! line break \href{http://tug.org/metapost.html}{\MP{} summary page}. @@ -145,40 +190,39 @@ The \acro{TUG} website also hosts a % ! line break 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. +common such 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 +in a document. \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 +\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 +\Qref[question]{some 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 +Some of \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). +new control sequence. (For example, it is possible to define +\cmdinvoke{larger}{my text} to typeset ``my text'' in +at a font size next larger than the current one.) While some users write their own, perfectly customized set of -macros---which they then typically reuse across many documents---it is +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 @@ -217,13 +261,13 @@ that you are likely to encounter: \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 + \ProgName{texi2dvi} 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})] + \item[\Eplain{}~--- Extended Plain \TeX{} (executable: \ProgName{eplain})] See \Qref[question]{What is \Eplain{}?}{Q-eplain}. \end{description} @@ -248,83 +292,89 @@ the \TeX{} engine with some additional useful features: \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}. +% \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{} uses \acro{UTF}-8 encoded Unicode input, and extends + \TeX{}'s font support to include `modern' formats such as TrueType + and OpenType; these extensions to its capabilities make it + well-suited to multi-lingual texts covering different writing + systems. 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}. + \TeX{} is programmed in its own arcane, integrated, macro-based + programming language. \LuaTeX{} adds a second programming engine + which operates alongside \tex{} using a modern scripting language, + Lua. 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 + \eTeX{} is an extension of \tex{}'s programming interface; as such + it's only indirectly useful to end users, but it can be valuable to + package developers; there is an increasing number of macro packages + that require the use of \eTeX{}. As well as existing in + \ProgName{etex}, \eTeX{} features are usually available in the + \ProgName{pdftex} executables provided in the standard + distributions; \xetex{} and \luatex{} also provide \etex{}'s + programming facilities. See % ! line break \Qref[question]{What is \eTeX{}?}{Q-etex}. + + (Note: \eTeX{}, which enhances the \TeX{} engine, is not to be + confused with \Eplain{}, which enhances the Plain \TeX{} macro + package.) \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 +Because each of the above derive from a base \TeX{} engine, it is in +principle possible to combine any of them with one of the \TeX{} macro +packages listed earlier to produce `extended' executables. 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''.) +\ProgName{lualatex} executables each combine \LaTeX{} with an enhanced +\TeX{} engine. Indeed, most (if not all) of the development of +\context{} is now using \luatex{}. + +Some executables combine the features of multiple enhanced \TeX{} +engines: for example, \ProgName{pdftex} now (in current distributions) +offers both \PDFTeX{} and \eTeX{} extensions 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 +A \emph{\TeX{} distribution} provides a structured 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. Many \TeX{} +distributions are free; a few 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. - -This question is also covered in a page on the \acro{TUG} site, +What does it all mean?~--- the simple lists of objects, alone, offer +no help for the beginner. The \acro{FAQ} team expects this answer +only to be of use for people who are seeking guidance elsewhere +(possibly within these \acro{FAQ}s) and coming across an unexpected +name like ``blah\tex{}''. + +The subject matter covered by this answer is also addressed in a page +on the \acro{TUG} site, % ! line break ``\href{http://tug.org/levels.html}{the Levels of \tex{}}''. -\LastEdit{2010-12-08} +\LastEdit{2011-03-11} \Question[Q-triptrap]{How can I be sure it's really \TeX{}?} @@ -365,6 +415,7 @@ world problem.) \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, @@ -377,6 +428,7 @@ world problem.) 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 @@ -395,7 +447,8 @@ world problem.) 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. + 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} @@ -404,6 +457,7 @@ system that is not itself Y2K compliant. 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} @@ -436,7 +490,8 @@ 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. +for some time, though development is now focused on the use of +\Qref*{\luatex}{Q-luatex}. Some \LaTeX{} packages already specify the use of \eTeX{}. Some such packages may not work at all on a non-\eTeX{} system; others will @@ -447,11 +502,12 @@ individually contributed) may require \eTeX{} for optimum performance. \begin{ctanrefs} \item[\eTeX{}]\CTANref{etex} \end{ctanrefs} +\LastEdit{2011-04-13} \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 +\TeX{} distributions: most \LaTeX{} and many \CONTeXT{} users nowadays use \PDFTeX{} whether they know it or not (more precisely, they use \PDFTeX{} extended by \begin{wideversion} @@ -621,24 +677,8 @@ system to produce figures, but its strength lies in enhancing \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 \LuaTeX{}) without -changing the user interface. \CONTeXT{} is developed rapidly, often in +changing the user interface. \CONTeXT{} continues to develop, often in response to requests from the user community. -\LastEdit{2010-12-08} - -%%% 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 @@ -648,6 +688,7 @@ prodigious energy. Support is available via a % ! line break \begin{ctanrefs} \item[\nothtml{\rmfamily}\CONTeXT{} distribution]\CTANref{context} \end{ctanrefs} +\LastEdit{2010-12-08} \Question[Q-AMSpkg]{What are the \acro{AMS} packages (\AMSTeX{}, \emph{etc}.)?} @@ -720,12 +761,14 @@ known to work with \Eplain{}: \Package{graphics}, \Package{graphicx}, \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 +available online (and there's a \acro{PDF} copy in the \acro{CTAN} +package as well), 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} +\LastEdit{2011-04-13} \Question[Q-texinfo]{What is Texinfo?} |