summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/faq-backgrnd.tex
blob: 4b3ed751562f43ccb8475c96dea873558ca5a2df (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
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
% $Id: faq-backgrnd.tex,v 1.31 2014/01/28 18:17:36 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
\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-tex-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}{Q-tds} version of the distribution.
\end{hyperversion}
\begin{dviversion}
  \acro{TDS} structured version of the distribution (see
  \Qref*{\acro{TDS} structure}{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}
\LastEdit{2013-11-27}

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

\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 (even) than is
\TeX{} macro-writing.
What is more, it is a dying art: few new \tex{}-related fonts are
produced using \MF{}, nowadays.  Indeed, several of the major font
families (that originated in \MF{} designs) are now seldom used in any
other way than their conversion to an outline font format.
%% The complete \TeX{}-user nevertheless needs to
%% be aware of \MF{}, and may even be required run \MF{} to generate personal
%% copies of Meta-fonts that come her way.
\LastEdit{2011-07-03}

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

The \MP{} system (by John Hobby) implements a picture-drawing language
very much like that of \MF{}; the difference is that \MP{} outputs
vector graphic files instead of run-length-encoded bitmaps; output
formats available are \PS{} or \acro{SVG}
\MP{}
is a powerful language for producing figures for documents to be
printed on \PS{} printers, either directly or embedded in \AllTeX{}
documents.  \MP{} is able to integrate text and mathematics, marked up
for use with \TeX{}, within 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
\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{flatversion}
  subscribe via the \acro{TUG} \ProgName{mailman} interface at
  \URL{http://lists.tug.org/metapost}
\end{flatversion}
\begin{hyperversion}
  subscribe via the % ! line break
  \href{http://lists.tug.org/metapost}{\acro{TUG} \ProgName{mailman} interface}.
\end{hyperversion}
The \acro{TUG} website also hosts a % ! line break
\href{http://tug.org/metapost.html}{\MP{} summary page}, and the
\Package{tex-overview} document gives you a lot more detail (and some
explanatory background material).
\begin{ctanrefs}
\item[tex-overview.pdf]\CTANref{tex-overview}
\end{ctanrefs}
\LastEdit{2013-12-10}

\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 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
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
information on \TeX{} and % ! line break
\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)}
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, 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
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 \plaintex{}}{Q-tex-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-latex-books},
  \Qref[]{\AllTeX{} Tutorials, etc.}{Q-tutorials*},
  \Qref[]{Online introductions: \LaTeX{}}{Q-man-latex} and
  \Qref[]{Specialized \AllTeX{} tutorials}{Q-tutbitslatex}.
  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{texmfstart})]
  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{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
  \begin{quote}
    \csx{input}\texttt{ texinfo}
  \end{quote}
  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})]
  \xetex{} reads \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 arcane, integrated, macro-based
  programming language.  \LuaTeX{} adds a second programming engine
  using a modern scripting language, Lua, which is `embedded' in a
  \tex{}-alike engine; it too reads \acro{UTF}-8 and uses TrueType
  OpenType fonts.  See % ! line break
  \Qref[question]{What is \LuaTeX{}?}{Q-luatex}.

  \item[\eTeX{} (executable: \ProgName{etex})]
  \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 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.  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} 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{}.  \miktex{} is also available as the
basis of the Pro\TeX{}t bundle, distributed on the \texlive{}
\acro{DVD} mailing, as well as being available online.

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}
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{2011-09-26}

\Question[Q-ctan]{What is \acro{CTAN}?}

The acronym stands for ``Comprehensive \tex{} Archive Network'', which
more-or-less specifies what it's \emph{for}:
\begin{itemize}
\item The archives offer a comprehensive collection of \tex{} resources.
\item The content is made publicly accessible, via the internet.
\item \acro{CTAN} is a \emph{network} of archives, which strive to
  stay in step with one another.
\end{itemize}
The basic framework was developed by a \acro{TUG} working group set up
to resolve the (then existing) requirement for users to \emph{know} on
which archive site a particular package might be found.

Actual implementation offers three distinct types of host:
\begin{description}
\item[\emph{Core} archives]Which form a small, tightly-coupled set of
  machines, which perform management functions as well as serving
  files;
\item[\emph{Mirror} archives]Which do no more than take regular copies
  of core archives, and serve them; and
\item[Archive selector]Which is a meta-service, which routes requests
  to an apparently ``local'' mirror (``local'' is determined by an
  algorithm that uses your net address to determine where you are, and
  then selects a mirror that's close).
\end{description}
Note that there is nothing to prevent any archive from supporting
other functions, so a \acro{CTAN} mirror may also operate as a
\acro{CPAN} (Perl) mirror and as a SourceForge (general free software)
mirror, and \dots{}

Functions that distinguish core archives are:
\begin{itemize}
\item Uploads: users may submit new (or updated) material via the
  \Qref*{upload redirector}{Q-uploads}. Significant changes to the
  archive are reported via the mailing list \Email{ctan-ann@dante.de}
\item Weak consistency: changes to the content of the archives are
  rapidly distributed to all core archives.  (Consistency is `weak'
  since changes can take several minutes to propagate.)
\item Providing distribution (\texlive{} and \miktex{}) support.
\item Catalogue maintenance.
\item Mirror monitoring.
\end{itemize}

Users may make direct contact with the
\begin{flatversion}
  \ctan{} management team, via \mailto{ctan@dante.de}
\end{flatversion}
\begin{hyperversion}
  \href{mailto:ctan@dante.de}{\ctan{} management team}.
\end{hyperversion}

Users should ordinarily download material from \acro{CTAN} via the
\href*{http://mirror.ctan.org/}{archive selector}: this uses the
mirror monitor's database, and uses the caller's geographical location to
offer an efficient choice of ``sufficiently up-to-date'' mirror site for
you to connect to.  This procedure has the advantage of distributing
the load on \ctan{} mirrors.

Note that all the download links, given in the web representation of
these \acro{FAQ}s, are set up to use the mirror selector.
\LastEdit{2013-05-21}

\Question[Q-catalogue]{The (\acro{CTAN}) catalogue}

Finding stuff on networks used always to be difficult, but in recent years,
search engines have become amazingly good at digging out unconsidered
trifles from the myriad items of information available on the net.
However, for the \alltex{} user, confusion is added by the tendency to
index the same file at several \acro{CTAN} mirror sites.

Further, the \alltex{} user usually needs the most recent version of a
package; it's a rare search result that describes itself as obsolete!

The \acro{CTAN} catalogue, several years after it was introduced, has
developed into a powerful tool for dealing with these difficulties.
It provides an entry for each package to be found on \acro{CTAN};
users may search the catalogue for an entry, or they may browse its
contents, using the catalogue's lists of ``categories'' of item.

The basis of the catalogue is a collection of small, stylised,
articles; each shows basic information about a package on \acro{CTAN},
and includes pointers to download address (on a \acro{CTAN} mirror),
documentation and home page if any, and related packages.

The \href{http://www.ctan.org}{\acro{CTAN} central database machine}
offers a ``Browse \acro{CTAN}'' area, with links to the list of
packages, to a list of `topics' (with packages that match each topic),
and to a list of authors (with their packages).

In addition, every \acro{CTAN} mirror holds a copy of the catalogue,
presented as a series of web pages; one may scan the files in
alphabetic order, or use a category-based index.  Such access is not
as ``sophisticated'' as that on the central site, but it served for
years before the central site appeared.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}The CTAN catalogue (on CTAN)]\CTANref{Catalogue}
\end{ctanrefs}
\LastEdit{2014-03-17}

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

\TeX{} (and \MF{} and \MP{}) are written in a
\begin{flatversion} % really "non-hyper"
  `literate' programming language called \ProgName{Web} (\Qref{}{Q-lit})
\end{flatversion}
\begin{hyperversion}
  \Qref{`literate' programming}{Q-lit} language called \ProgName{Web}
\end{hyperversion}
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{}
(\Package{trip}) and \MF{} (\Package{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 \Package{trip} test, or
an implementation of \MF{} has passed its \Package{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; while \Package{trip} and \Package{trap} test bits of
pathways within the program, they don't actually test for any real
world problem.)
\LastEdit{2011-05-28}

% \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 would be permitted
%   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-tex-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}
% \LastEdit{2011-06-01} 
%
% withdrawn 2013-05-21

\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, 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
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}
\LastEdit{2011-07-13}

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

One can reasonably say that \PDFTeX{} is (today) the main stream of
\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{hyperversion}
  \Qref*{\eTeX{}}{Q-etex}).
\end{hyperversion}
\begin{flatversion}
  \eTeX{}~--- \Qref{}{Q-etex}).
\end{flatversion}
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{hyperversion}
  \Qref{optimising line breaks}{Q-overfull}),
\end{hyperversion}
\begin{flatversion}
  % ( <- dummy for paren balancing
  optimising line breaks~--- \Qref{}{Q-overfull}),
\end{flatversion}
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 mostly stopped (only bug fixes, and
occasional small development items are processed): future development
is focused on \Qref*{\LuaTeX{}}{Q-luatex}.
\LastEdit{2011-05-28}

\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{}).

Note that, now, \latexe{} is ``feature frozen'' (the only allowed
changes come from bug reports); this, too, is in pursuit of stability,
and is a driving force for many of the efforts to contribute \latex{}
packages.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\LaTeX{} guides and news]\CTANref{latexdoc}
\end{ctanrefs}
\LastEdit{2011-08-19}

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

\tex{} provides a programming language (of sorts), and any document
more complex than the trivial ``hello world'' will need some
programming.

\LaTeX{} and \plaintex{} are both libraries written for use with
\tex{}; the user commands \ProgName{tex} and \ProgName{latex} invoke
\tex{}-the-program with a library incorporated.  Libraries that may be
loaded in this way are known as `\emph{formats}'; when a user ``runs''
\plaintex{} or \latex{}, they are running \tex{} (the program) with an
appropriate format.  The documents are then programmed in \plaintex{}
or \latex{} \emph{language}.

\plaintex{} and \latex{} exist because writing your documents in `raw'
\TeX{} could involve much reinventing of wheels for every document.
Both languages serve as convenient aids to make document writing more
pleasant: \LaTeX{} provides many more items to support `common'
requirements of documents.

As such, \LaTeX{} is close to being a superset of \plaintex{}, but
some \plaintex{} commands don't work as expected when used in a
\latex{} document.  Using \plaintex{} commands in a \latex{} document
is an occasional source of bugs: the output is \emph{almost} right,
but some things are misplaced.

So, \plaintex{} and \latex{} are related through a common parent, and
are designed for use in similar jobs; programming for one will often
not work correctly in the other.
\LastEdit{2014-03-18}

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

\href{http://www.pragma-ade.com/}{\context{}} is a macro package
created by Hans Hagen of Pragma-Ade; it started as a production tool
for Pragma (which is a publishing company).  \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 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{} continues to develop, often in
response to requests from the user community.

The development of \Qref*{\luatex{}}{Q-luatex} was originally driven
by \context{}, almost from the start of its project.  Nowadays,
\context{} it is distributed in two versions~--- mark two (files with
extension \extension{mkii}) which runs on \pdftex{} but is not under
active development, and mark four (files with extension
\extension{mkiv}) (which runs on \luatex{} and is where development
happens).

\context{} has a large developer community (though possibly not as
large as that of latex{}), but those developers who are active seem to have
prodigious energy.  Support is available via a % ! line break
\href{http://wiki.contextgarden.net/Main_Page}{\acro{WIKI} site} and via the
\href{http://www.ntg.nl/mailman/listinfo/ntg-context}{mailing list}.
A ``standalone'' distribution (a \TeX{} distribution with no macros
other than \context{}-based ones) is available from
\url{http://minimals.contextgarden.net/} --- it provides
a \context{} system on any of a number of platforms, executing either
mark~ii or mark~iv \context{}.

Note that \acro{CTAN} does \emph{not} hold the primary distribution of
\context{}~--- potential users should refer to
\href{http://contextgarden.net}{\context{} `garden' site} for details
of the
current distribution.  \acro{CTAN} holds a copy of \CONTeXT{} but
makes no claim about its ``up-to-date''ness.  Likewise, \acro{CTAN}
holds a few contributed \context{} packages, but many more are to be
found via the \href{http://contextgarden.net}{\CONTeXT{} garden}.
\begin{ctanrefs}
\item[\nothtml{\rmfamily}\CONTeXT{} distribution]\CTANref{context}
\item[\nothtml{\rmfamily}\CONTeXT{} packages selection]\CTANref{context-contrib}
\end{ctanrefs}
\LastEdit{2014-05-30}

\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-tex-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}
\LastEdit{2011-06-01}

\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''.  Canned sets of 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 may
find that \Eplain{} is for you.

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 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 (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{2013-06-25}

\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-lollipop]{Lollipop}

A long time ago (in the early 1990s), the Lollipop \tex{} format was
developed (originally to typeset the excellent book % !line break
\Qref{\tex{} by topic}{Q-tex-books}).  Several people admired the
format, but no ``critical mass'' of users appeared, that could have
prompted maintenance of the format.

More than 20 years later, a new maintainer appeared: he hopes to build
Lollipop into an engine for rapid document style development.  (In
addition, he intends to add support for right-to-left languages such
as his own~--- Persian.)

We can only hope that, this time, Lollipop will ``catch on''!
\begin{ctanrefs}
\item[lollipop]\CTANref{lollipop}
\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 makes money from
royalties on his \TeX{} books, which still sell well).  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 (\acro{GPL},
sometimes referred to as `Copyleft'), which denies the right to
commercial exploitation.  \TeX{} itself is offered under a pretty
permissive licence of Knuth's own.

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}.
\LastEdit{2013-06-25}

\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~\emph{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{}.  There are
also 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 not scheduled to produce
for some time) has already delivered a system that increasingly
accessible to ``ordinary users''.
\LastEdit{2013-05-21}

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

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

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

So you shouldn't be too concerned if you can't make head nor tail of
the file: it is designed to be read by a (sort of) compiler, and
compilers don't have much in common with human readers.

A possible next step is to try an on-line \latex{} editor.  There are
many of these~--- a compilation of links may be found in % line break
\href{http://texblog.net/latex-link-archive/online-compiler/}{this blog post}

Of that long list, the present author has only dabbled with 
\href{https://www.writelatex.com/}{Write\latex{}}; it seems well
suited to simple `one-shot' use in this way.

If no online compiler helps, you need to typeset the document
``yourself''.  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''.

Are you ``put off'' by all this?~--- remember that \tex{} is good at
producing \acro{PDF}: why not ask the person who sent the \tex{} file
to send an \acro{PDF} copy?
\LastEdit{2014-05-21}

\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.  (In fact, it appears that
the first experimental \WYSIWYG{} systems were running in commercial
labs, near where Knuth was working on \tex{}.  At the time, of course,
\tex{} was only available on a mainframe, and getting it to run on the
small experimental machines would have distracted Knuth from his
mission to create a typesetting system that he could use when
preparing his books for publication.)

However, all 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{} over
the whole of the document being prepared.

A celebrated early system offering ``\WYSIWYG{} using \TeX{}'' came
from the Vor\TeX{} project: a pair of 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).

Lightning Textures (an extension of Blue Sky's original \TeX{} system
for the Macintosh), is sadly no longer available.

Thus``\Qref*{Scientific Word}{Q-commercial}'' (which can also interact
with a computer algebra system), is the only remaining \tex{} system
that even approximates to \WYSIWYG{} operation.

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

All the same, it's clear that 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.
\LastEdit{2013-06-03}

\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 also available.

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

\begin{hyperversion}
\href{http://www.tug.org/twg.html}{Technical Working Groups (\acro{TWG}s)}.
\end{hyperversion}
\begin{flatversion}
Technical Working Groups (\acro{TWG}s: see
\URL{http://www.tug.org/twg.html}).
\end{flatversion}

\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
\begin{hyperversion}
href{http://www.tug.org/lugs.html}{``Local User Groups'' (\acro{LUG}s)}.
\end{hyperversion}
\begin{flatversion}
``local user groups'' (\acro{LUG}s: see
\URL{http://www.tug.org/lugs.html}).
\end{flatversion}

Contact \acro{TUG} itself via \URL{http://tug.org/contact}
LastEdit{2013-06-25}