summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-texthings.html
blob: bbc3749b3e090b8aacf14d630a32f2e1156b0abf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<head>
<title>UK TeX FAQ -- question label texthings</title>
</head><body>
<h3>Things with &ldquo;TeX&rdquo; in the name</h3>
<p/>New TeX users are often baffled by the myriad terms with &ldquo;TeX&rdquo;
in the name.  The goal of this answer is to clarify some of the more
common TeX terms.
<p/><p/><b>TeX itself</b>&nbsp;&nbsp;
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, <code>\</code><code>hskip</code> inserts a given amount of horizontal
space into the document, and <code>\</code><code>font</code> 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 
<a href="FAQ-whatTeX.html">What is TeX?</a> for some background
information on TeX and 
<a href="FAQ-ref-doc.html">Reference documents</a> for pointers to
descriptions of TeX control sequences, data types, and other key
parts of TeX.
<p/><p/><b>TeX macro packages (a.k.a. TeX formats)</b>&nbsp;&nbsp;
TeX&rsquo;s control sequences are tedious to use directly; they are
intended primarily as building blocks for higher-level&mdash;and therefore
more user-friendly&mdash;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,

<code>\</code><code>larger{my text}</code> can be defined to typeset &ldquo;my text&rdquo; in
the next larger font).
<p/>While some users write their own, perfectly customized set of
macros&mdash;which they then typically reuse across many documents&mdash;it is
far more common to rely upon a <em>macro package</em>, a collection of
TeX macros written by experts.  For the user&rsquo;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:
<dl>
  <dt>Plain TeX (executable: <i>tex</i>)<dd>
  See
  <a href="FAQ-books.html">Books on TeX and its relations</a>,
  <a href="FAQ-man-tex.html">Online introductions: TeX</a>,
  <a href="FAQ-plainvltx.html">Should I use Plain TeX or LaTeX?</a> and
  <a href="FAQ-ol-books.html">Freely available (La)TeX books</a>.
  Note that the Plain TeX executable is called <i>tex</i>; the
  base TeX engine is generally provided by a separate executable
  such as <i>initex</i> or as a <code>-ini</code> flag to
  <i>tex</i>.
<p/>  <dt>LaTeX (executable: <i>latex</i>)<dd>
  See
  <a href="FAQ-books.html">Books on TeX and its relations</a>,
  <a href="FAQ-tutorialstar.html">(La)TeX Tutorials, etc.</a>,
  <a href="FAQ-man-latex.html">Online introductions: LaTeX</a>,
  <a href="FAQ-tutbitslatex.html">Specialized (La)TeX tutorials</a> and
  <a href="FAQ-doc-dirs.html">Directories of (La)TeX information</a>.
  Note that there have been two major versions of LaTeX: LaTeX2e
  refers to the current version of LaTeX while LaTeX 2.09 is the
  long-since-obsolete (since 1994) version (cf. 
  <a href="FAQ-latex2e.html">What is LaTeX2e?</a> for more information).
<p/>  <dt>ConTeXt (executable: <i>texexec</i>)<dd>
  See
  <a href="FAQ-context.html">What is ConTeXt?</a>.
<p/>  <dt>Texinfo (executables: <i>tex</i>, <i>makeinfo</i>)<dd>
  See
  <a href="FAQ-texinfo.html">What is Texinfo?</a>.  <i>makeinfo</i>
  converts Texinfo documents to HTML, DocBook, Emacs info,
  XML, and plain text.  <i>Tex</i> (or wrappers such as
  <i>texi2pdf</i> and <i>texi2pdf</i>) produce one of TeX&rsquo;s
  usual output formats such as DVI or PDF.  Because
  <i>tex</i> loads the Plain TeX macros, not the Texinfo ones,
  a Texinfo document must begin with <code>\</code><code>input{texinfo}</code> to
  explicitly load the Texinfo macro package.
<p/>  <dt>Eplain&mdash;Extended Plain TeX (executable: <i>eplain</i>)<dd>
  See
  <a href="FAQ-eplain.html">What is Eplain?</a>.
</dl>
<p/><p/><b>Modified <i>tex</i> executables</b>&nbsp;&nbsp;
The original <i>tex</i> executable was produced in the late 1970s
(cf. <a href="FAQ-whatTeX.html">What is TeX?</a>) and consequently
lacked some features that users have come to expect from today&rsquo;s
software.  The following programs address these issues by augmenting
the TeX engine with some additional useful features:
<p/><dl>
  <dt>PDFTeX (executable: <i>pdftex</i>)<dd>
  TeX, which predates the PDF file format by a decade,
  outputs files in a TeX-specific format called DVI
  (cf. <a href="FAQ-dvi.html">What is a DVI file?</a>).  In
  contrast, PDFTeX can output both DVI <em>and</em> PDF
  files.  In PDF mode, it lets documents exploit various
  PDF features such as hyperlinks, bookmarks, and annotations,
  PDFTeX additionally supports two sophisticated micro-typographic
  features: character protrusion and font expansion.  See
  <a href="FAQ-whatpdftex.html">What is PDFTeX?</a>.
<p/>  <dt>XeTeX (executable: <i>xetex</i>)<dd>
  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&rsquo;s <code>\</code><code>font</code>
  control sequence to support all of the fonts made available by the
  operating system.  See
  <a href="FAQ-xetex.html">What is XeTeX?</a>.
<p/>  <dt>LuaTeX (executable: <i>luatex</i>)<dd>
  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
  <a href="FAQ-luatex.html">What is LuaTeX?</a>.
<p/>  <dt>e-TeX (executable: <i>etex</i>)<dd>
  e-TeX 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 e-TeX.  (Note: Be careful not to
  confuse e-TeX, which enhances the TeX engine, with Eplain,
  which enhances the Plain TeX macro package.)  See
  <a href="FAQ-etex.html">What is e-TeX?</a>.
</dl>
<p/>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 <i>pdflatex</i>, <i>xelatex</i> and
<i>lualatex</i> executables each combine
LaTeX with an enhanced TeX engine.  Some executables combine the
features of multiple enhanced TeX engines: <i>pdfetex</i>
combines PDFTeX and e-TeX into a single executable.
<p/>As combining features is a generally desirable tendency, current
TeX distributions (see below) incorporate the features of PDFTeX
and e-TeX into a single executable.  This executable may be
offered with a LaTeX format (as <i>latex</i> or
<i>pdflatex</i>) or with a Plain TeX format (as
<i>pdftex</i>).  (<i>Tex</i> remains with an unadorned TeX
executable using Plain TeX, for people such as Knuth himself, who
want the certainty of the &ldquo;original&rdquo;.)
<p/><p/><b>TeX distributions</b>&nbsp;&nbsp;
A <em>TeX distribution</em> is a collection of TeX-related
software.  Generally, a TeX distribution includes a set of core
TeX executables such as <i>tex</i> and <i>latex</i>;
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 TeX Live, MiKTeX and MacTeX; older ones
include ozTeX, CMacTeX and teTeX.  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 
<a href="FAQ-TeXsystems.html">(La)TeX for different machines</a> for a
list of free and shareware TeX distributions and 
<a href="FAQ-commercial.html">Commercial TeX implementations</a> for a
list of commercial TeX distributions.
<p/><p/><b>Summary</b>&nbsp;&nbsp;
If your document begins with <code>\</code><code>documentclass</code>, you&rsquo;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&mdash;probably <i>latex</i> or <i>pdflatex</i>&mdash;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.
<p><em>This answer last edited: 2009-06-11</em></p>
<p/><p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=texthings">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=texthings</a>
</body>