summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex
blob: 3612c0209edb6cc2259ceeaeebec50ce663941ec (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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
% $Id: faq-backgrnd.tex,v 1.5 2010/02/08 22:24:15 rf10 Exp $

\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 is (in
principle) 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.

For the interested programmer, the distribution of \TeX{} has some
fascination: it's nothing like the way one would construct such a
program nowadays, yet it has lasted better than most, and has been
ported to many different computer architectures and operating
systems~--- the sorts of attributes that much modern programming
practice aims for.  The processed `readable' source of \TeX{} the
program may be found in the % ! line break
\begin{hyperversion}
  \Qref*{\acro{TDS} structured version}{Q-tds} of the distribution.
\end{hyperversion}
\begin{dviversion}
  \Qref*{\acro{TDS} structured version of the distribution}{Q-tds}.
\end{dviversion}
\begin{ctanrefs}
\item[\nothtml{\rmfamily}Knuth's source distribution]\CTANref{knuth-dist}
\item[\nothtml{\rmfamily}Knuth's sources in \acro{TDS} layout]\CTANref{knuth-tds}
\end{ctanrefs}

\Question[Q-plaintex]{What's ``writing in \TeX{}''?}

\TeX{} is a macro processor, and offers its users a powerful
programming capability.  To produce a document, you write macros and
text interleaved with each other.  The macros define an environment in
which the text is to be typeset.

However, the basic \TeX{} engine is pretty
basic, and is a pretty difficult beast to deal with. Recognising this
(and not wanting to write the same things at the start of every
document, himself) Knuth provided a package of macros for use with
\TeX{}, called \plaintex{}; \plaintex{} is a useful minimum set of
macros that can be used with \TeX{}, together with some demonstration
versions of higher-level commands.  When people say they're ``writing
(or 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.
\begin{ctanrefs}
\item[\eTeX{}]\CTANref{etex}
\end{ctanrefs}

\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 \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{}.  The
\Qref*{\eTeX{}}{Q-etex} extension to \TeX{} itself arose from such a
project (\acro{NTS}).  Another pair of projects, which have delivered
all the results they are likely to deliver, is the related % ! line break
\Qref*{Omega and Aleph}{Q-omegaleph}.  The % ! line break
\Qref*{\xetex{} system}{Q-xetex} is in principle still under
development, but is widely used, and the % ! line break
\Qref*{\LuaTeX{} project}{Q-luatex} (though with another two years of
development scheduled) has already delivered a system that is quite
useful.

\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}