summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex
blob: dc5236212864373a37ad295b3368d7dab71476dd (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
%% Engine needed: luaTeX ≥ 0.65
%% Format needed: LaTeX2ε
%% Packages needed: see list in the -aux.tex file …
%% use an up-to-date TeXlive2010 (with tl-contrib updates) and the lualatex program to typeset

% this document has version number 0.1d

\documentclass{scrartcl}
\input{tex-overview-aux}  %% everything that is not content-related

\begin{document}
\savegeometry{normal}
\begin{abstract}
{\centering \Large \hyperref[textextview]{Link for the impatient.}\\[2ex]}
In the world of \TeX, there are many developments and ambiguous names. This paper tries to give an overview of the development of \TeX\ and related programs. Contributions are welcome!\footnote{The current source code of this document is availble at \url{http://github.com/alt/tex-overview}. Please feel free to patch there or mail me any suggestions and comments. I'll be happy to extend and correct this document!}
\end{abstract}

\section{Introduction}
The base frame and main idea of this document was taken from the article \textit{A brief history of \TeX,~volume~II} by Arthur Reutenauer in the proceedings of \textsf{EuroBacho\TeX 2007} and his talk there (see~references on page~\pageref{sec:refs}). Additional information is taken from original documentations and some review articles. For old, historic information, the \textsf{historic~archive} maintained by Ulrik Vieth and hosted on \url{ftp.tug.org} (see~refs) was very useful, especially in the reconstruction of \LaTeX\ versions. Many thanks for that great archive!

All information is up to the date of this generated PDF and up to the information I found. Everything here is without guarantee – this is just to get an overview. Consult the references for further (and/or~correct) information! 

In the tree views, every node has a tooltip that shows up when you hover the mouse over it. For the case that your PDF viewer does not support this, there is a list of all the descriptions on page~\pageref{sec:text}.

\newpage
\section{How to read this document}
This document consists of several graphs showing the development of software more or less directly related to \TeX. The graphs try to show the time  development (downwards), as well as dependencies, changes, etc.

I tried to make the graphs more readable by using colors for different categories. The decisions about what is important and what is “normal” reflect my personal opinion only.

\begin{description}
\item[{\let\nodecolor\normalimportant \tikz \node[coolnode]{normal};}] That is, not very important in my opinion, no huge user group, but still maybe important for special needs. Was used by a major community at least some time back, but is not of great impact nowadays.

\item[{\let\nodecolor\vip \tikz \node[coolnode]{important};}] Engines or formats that had or have a great impact on (everyday) typesetting for a large community.

\item[{\let\nodecolor\experimental \tikz \node[coolnode]{experimental};}] Developments that might still be under construction or were never used by a large community. Nevertheless, these might be very important to the development of other engines or for use of special typesetting.

\item[{\let\nodecolor\package \tikz \node[coolnode]{package};}] \LaTeX-packages or single \TeX-files (useable as packages or modules) that seemed worth mentioning. There won't be many of this; most very important packages won’t be mentioned.

\item[{\let\nodecolor\distro \tikz \node[coolnode]{distribution};}] Software bundles that bring \TeX\ and friends to the normal user.

\item[{\let\nodecolor\histdistro \tikz \node[coolnode]{hist. dist.};}] Historical distributions that have no use today but were important for bringing TeX to older computer systems.

\item[{\let\nodecolor\program \tikz \node[coolnode]{program};}] Programs that are not directly connected to \TeX\ (but interesting in the context of using \TeX) or are separate helper programs.

\item[{\let\nodecolor\fonttechnology \tikz \node[coolnode]{font};}] Something related to a font. Neither a program nor libraries that provide access to fonts nor the actual files, but rather the abstract definition or specification.

\end{description}

Some graphs are quite complex, which is the reason why there are two versions of them: A short one mentioning only the most important things and a full version with everything I could find.

In most cases I did not mention the authors of the programs/packages. This is not to diminish their effort but only for brevity (long names make things harder to read). I did not write any of the below-mentioned programs or packages. The authors are given in the documents linked in the references.

\section{How to contribute}
I hope one day this document would become the standard reference for questions like ”What program do I need for …?“, ”What's the difference between ...\TeX\ and ...\TeX?“, ”Why is it called …?“ etc.

To get to this point, I need some help of people having read more documentation or even developed some of the programs mentioned here themselves. Special help is needed for:
\begin{itemize}
\item font technologies
\item METAFONT and succesors
\item Bib\TeX\ and successors/alternatives
\end{itemize}

It is up to you to contribute texts, references, links, descriptions, hints etc. I'll be happy about anything I can add here. Also, if you have suggestions about the layout, let me know.

\section{Problems with PDF viewers}
As this document makes heavy use of PDF-features, some PDF viewers are not able to show everything correct and as intended. My experiences with viewers are as follows:

\begin{description}
\item[evince] Shows the document correct and complete. Tested using Linux.

\item[Acrobat Reader] will show all the information but might hide some text of very long tooltips (at least that's the case on my machine). Also, it draws annoying green boxes around the tooltips which do not belong there.

\item[TeXworks] The built-in PDF viewer of the TeXworks editor does not break lines of tooltips, therefore long annotations are not shown completely.

\item[okular] also does not break the lines.

\item[xpdf] shows only very short tooltips. Most of the information is not visible in the graphs.

\item[gv] shows no tooltips, but the annoying green boxes. (Linux)
\end{description}

\subsection*{About this document}
This document is typeset in the \TeX\ Gyre Pagella font using the lua\LaTeXe/3\ format with  lua\TeX\ 0.\the\luatexversion.\luatexrevision.

\setlength{\columnsep}{1.5cm}
\twocolumn
\tableofcontents

\topart{Tree Views}
\newgeometry{margin=1cm}  %% to save space; no need for margins if only a tree is shown

\label{sec:tree}
\Large
\centering

%%% TEX  %%%
\label{textextview}
\tograph*({\tostruct[\TeX]{\TeX\ – the program}}){
	\setlayer0
	\tonode[\vip](tex)(7,\layer)<Born in 1978 by Donald Erwin Knuth.>{\TeX}
	
	\tonode[\program](ant)(13,\layer)<Ant is Not TeX. A typesetting system inspired by TeX. Only *inspired*, so it has nothing to do with TeX in terms of common code.>{ANT}
	\todraw[dotted](tex)(ant)
	
	\steplayer[-1.5]
	\tonode(tex-xet)(3,\layer)<The first extension to TeX, 1987. It was able to typeset in two directions, but only with a mark in the DVI to change the direction.>{\TeX-\XeT}
	\todraw(tex)(tex-xet)

	\tonode(nihongo)(10,\layer)<A true multibyte extension of TeX. Could handle all Japanese characters in one font.>{Nihongo \TeX}
	\todraw(tex)(nihongo)
	
	\tonode(jtex)(15,\layer)<An extension of TeX for typesetting Japanese. (1987, Yasuki Saito)>{j\TeX}
	\todraw(tex)(jtex)

	\steplayer[-1.5]
	\tonode(ptex)(10,\layer)<Extension of Nihongo TeX to enable vertical typesetting. ("p" for "publishing")  Distributed as WEB change files. >{p\TeX}
	\todraw(nihongo)(ptex)

	\steplayer[-1.5]
	\tonode(tex--xet)(3,\layer)<TeX--XeT was able to really put the glyphs on the right place in the DVI.>{\TeX-{}-\XeT}
	\todraw(tex-xet)(tex--xet)
	
	\tonode[\vip](tex3)(7,\layer)<Ability to handle 8-bit input. 1989. TeX development was frozen in 1991 and only bugfixes were made. Now in version 3.1415926, it gets closer to pi with every bugfix. Don Knuth wishes the version number to be pi when he dies.>{\TeX3}
	\todraw*(tex)(tex3)
	
	\steplayer[-2]
	\tonode(enctex)(5.9,\layer)<A small extension to TeX, started 1997. Adds 10 new primitives relating input re-encoding>{enc\TeX}
	\todraw(tex3)(enctex)
	
	\tonode(mltex)(8,\layer)<Extension to TeX (started 1990) that allows hyphenation of words with accented letters. (Therefore the name: MultiLingual TeX.) Distributed as a change file to the original WEB sources of TeX.>{ML\TeX}
	\todraw(tex3)(mltex)
	
	\tonode[\experimental](uptex)(11,\layer)<Unicode-aware version of pTeX. ("Unicode-publishing"-TeX) Also modernized from TeX3.>{up\TeX}
	\todraw(tex3)(uptex)
	\todraw(ptex)(uptex)

	\steplayer[-2]
	\tonode(tex2pdf)(7,\layer)<Early name for pdfTeX. Don't confuse with converters like dvi2pdf.>{\TeX2PDF}
	\todraw(enctex)(tex2pdf)
	\todraw(mltex)(tex2pdf)
	
	\steplayer[-2]
	\tonode(omega)(1,\layer)<Support for 16bit-Unicode-input. Still constrained on the output encoding. Started 1994.>{$\Omega$}
	\todraw(tex3)(omega)
	
	\tonode[\vip](etex)(4,\layer)<An extension to TeX, provided by the NTS team as an intermediate project until NTS would be ready. eTex is a full TeX and backward compatible. The number of TeX's registers is increased and various new primitives useful to programmers are added.>{$\varepsilon$-\TeX}
	\todraw(tex--xet)(etex)
	\todraw'(tex3)(etex)
	
	\tonode[\vip](pdftex)(7,\layer)<A new engine to directly produce PDF-files from TeX, without the need of DVI-PS-PDF. This allows to use microtypographic extensions and many other features of the PDF format like page transitions etc.>{pdf\TeX}
	\todraw(tex2pdf)(pdftex)
	\todraw'(tex3)(pdftex)
	
	\tonode(texgx)(9.5,\layer)<GX stands for Graphic eXtension, a font technology available only on Mac OS. TeXGX was able to handle these fonts.>{\TeX{}gX}
	\todraw(tex3)(texgx)
	
	\tonode(nts)(12,\layer)<A project to completely reimplement TeX in Java. Now NTS is officially declared dead.>{\NTS}
	\todraw(tex3)(nts)
	
	\steplayer[-2]
	\tonode[\experimental](omega2)(0,\layer)<A short-time try to pick up the development of Omega again in 2006. Seemed more like a good plan and is now regarded as obsolete. LuaTeX is kind of a successor.>{$\Omega_2$}
	\todraw(omega)(omega2)
	
	\tonode[\experimental](vtex)(3.6,\layer)<VTeX (VisualTeX) can produce PDF, HTML, SVG, DVI or ps output directly from input. In contrast to pdfTeX, it includes a full PostScript interpreter, thus capable to include EPS figures, PStricks etc. First official version I found: February 15, 1999: VTeX 6.3; last official version seems to be from Oct 1, 2005: VTeX 8.61. Commercial product.>{V\TeX}
	\todraw(etex)(vtex)
	
	\steplayer[-2]
	\tonode[\experimental](aleph)(1,\layer)<Originally named epsilon-Omega, an attempt to stabilize Omega while merging epsilon extensions. Authors: John Plaice and Yannis Haralambous, now maintained for severe bugfixes by Taco Hoekwater.>{$\aleph$ (Aleph)}
	\todraw(omega)(aleph)
	\todraw(etex)(aleph)
	
	\tonode[\vip](xetex)(8,\layer)<This extension enables full multilingual support for left-to-right typesetting, right-to-left and almost any other possible direction. Unicode encoding is fully supported (utf8 as native encoding). XeTeX also features support for OpenType, AAT, TrueType and Graphite-fonts (via the operation system). In contrary to pdfTeX or luaTeX, no external configuration file is needed to use fonts. In newest versions, character protrusion is possible.>{\XeTeX}
	\todraw(texgx)(xetex)
	\todraw*(etex)(xetex)
	
	\tonode[\experimental](extex)(12,\layer)<Planned implementation of a high-quality typesetting system, written in Java. Based on experiences in NTS, eTeX, pdfTeX and Omega. Started in 2003, current version in repository is 0.0. (i. e. not very far ...)>{$\epsilon\chi$\TeX}
	\todraw(nts)(extex)
	\todraw(omega)(extex)
	\todraw(etex)(extex)
	\todraw(pdftex)(extex)
	
	\tonode[\vip](pdfetex)(5,\layer)<Merging the pdfTeX engine with the eTeX-extensions. This engine can produce DVI (with or without the eTeX-extensions) as well as PDF (again, with or without extensions).>{pdf($\epsilon$)-\TeX}
	\todraw*(etex)(pdfetex)
	\todraw*(pdftex)(pdfetex)
	
	\steplayer[-2]
	\tonode[\experimental](eetex)(6,\layer)<Experimental extension to pdfeTeX by Taco Hoekwater, created 2000. Distributed as change file. Now dead due to his development of luaTeX.>{ee\TeX}
	\todraw(pdfetex)(eetex)
	
	\steplayer[-2]
	\tonode[\program](lua)(0,\layer)<A script language; has nothing to do with TeX.>{Lua}
	
	\tonode[\vip](luatex)(4,\layer)<LuaTeX supports utf8, OpenType and many more things. TeXlive 2010 ships version 0.60.2. luaTeX features an embedded scripting language, lua, making it easy to extend, so most of the programming can be done in lua instead of TeX-hackery.>{lua\TeX}
	\todraw(aleph)(luatex)
	\todraw*(pdfetex)(luatex)
	\todraw[dashed](lua)(luatex)
	
	\steplayer[-2]
	\tonode[\experimental](itex)(7,\layer)<iTeX is the official successor of TeX3, announced by Don Knuth at the TUG conference 2010.>{i\TeX}
}

\clearpage
%%% LATEX %%%
\tograph*(\tostruct[\LaTeX]{\LaTeX\ – Lamport's \TeX\ format}){

	\tonode(latex090)(-5.5,\layer)<First version still on web (historic archive, see refs) is 0.90, for use with TeX 0.95. No installation help found. Apparently one needs the files lplain.tex and latex.tex to create the format.>{\LaTeX\ 0.90}
	
	\tonode(latex091)(-2,\layer)<Version 0.91 for use with TeX 0.97 (C) 1983 by Leslie Lamport. Most changes to previous version are in the file lplain.tex.>{\LaTeX\ 0.91}
	\todraw(latex090)(latex091)
	
	\tonode(latex092)(2,\layer)<First version with the @ as letter for internal names. Seeminlgy first version with a manual. For use with TeX Version 0.999999. (no joke, that's the version number given in the latex.tex file!) (C) 1983 by Leslie Lamport, conversion to 0.92 from 0.91 by Arthur Keller.>{\LaTeX\ 0.92}
	\todraw(latex091)(latex092)

	\tonode(latex09210)(6,\layer)<Adaptation of 0.92 for TeX version 1.0. (C) 1983 by Leslie Lamport, conversion to 0.92 from 0.91 by Arthur Keller.>{\LaTeX\ 0.92 - 1.0}
	\todraw(latex092)(latex09210)
	\steplayer[-2.3]

	\tonode(latex2010)(-5,\layer)<Seemingly heavy changes compared to 0.92. Version for TeX 1.0. Release of 11 Dec 1983. There were never public versiaons 1.x >{\LaTeX\ 2.0 - 1.0}
	\todraw(latex09210.south)(latex2010.north)
	
	\tonode(latex205)(0,\layer)<No sure information found so far.>{\LaTeX\ 2.05}
	\todraw(latex2010)(latex205)
	
	\tonode(latex206a)(5,\layer)<Release of version 2.06a of the LaTeX macros. September 1984.>{\LaTeX\ 2.06a}
	\todraw(latex205)(latex206a)
	
	\steplayer[-2.5]
	\tonode[\vip](latex209)(0,\layer)<The first official version by Leslie Lamport, 1985.>{\LaTeX\ 2.09}
	\todraw(latex206a)(latex209)
	
	\steplayer[-2]
	\tonode(slitex)(2,\layer)<A variation of LaTeX2.09 to provide an easy way for producing presentations. In LaTeX2e absorbed as a documentclass (slides).>{SLI\TeX}
	\todraw(latex209)(slitex)
	
	\tonode(amslatex11)(6,\layer)<A port of Spivak's AMS-TeX to LaTeX 2.09, released 1990>{\AMS\LaTeX\ 1.1}
	\todraw(latex209)(amslatex11)
	
	\steplayer[-1.7]
	\tonode[\vip](latex2ε)(0,\layer)<June 1994: New release of LaTeX to avoid incompatible dialects of LaTeX 2.09. Introduced by the LaTeX3-Team.>{\LaTeXe}
	\todraw*(latex209)(latex2ε)
	\todraw[dashed](slitex)(latex2ε)
	\todraw[dashed](amslatex11)(latex2ε)

	\tonode[\experimental](lambda)(-7.5,\layer)<A LaTeX based format for the omega engine.>{$\Lambda$}
	\todraw(latex209)(lambda)
	\steplayer[-1.5]

	\tonode[\experimental](lamed)(-7.5,\layer)<A LaTeX based format for the aleph engine.>{Lamed}
	\todraw(lambda)(lamed)

	\tonode(amslatex12)(6,\layer)<A port of version 1.1 to LaTeX 2e by Downes and Jones.>{\AMS\LaTeX 1.2}
	\tonode[\experimental](alatex)(-4.2,\layer)<A slightly changed LaTeX format by Matt Swift to offer modularity at format level. Acts as normal LaTeX if not explicitly told to do different. "A" for "alternate", "abstract" or the indefinite article.>{A\LaTeX}
	\todraw(amslatex11)(amslatex12)
	\todraw(latex2ε)(amslatex12)
	\todraw(latex2ε)(alatex)
	\steplayer[-1.5]

	\tonode(amslatex21)(8,\layer)<Version 2.1 of amsLaTeX.>{\AMS\LaTeX 2.1}
	\todraw(amslatex12)(amslatex21)
	\steplayer[-1]

	\tonode[\vip](pdflatex)(2,\layer)<The "standard LaTeX". If anyone talks about "LaTeX" it is nearly sure to be this package. pdfLaTeX2e produces PDF or DVI output.>{pdf\LaTeX}
	\todraw*(latex2ε)(pdflatex)
	
	\tonode[\vip](xelatex)(5,\layer)<Using the XeTeX engine. There are some special packages that provide easy access to the modern features of XeTeX.>{\XeLaTeX}
	\todraw*(latex2ε)(xelatex)

	\tonode(platex)(-4.6,\layer)<A LaTeX based format for the pTeX engine.>{p\LaTeX}
	\todraw(latex2ε)(platex)
	
	\tonode(lualatex)(-1.8,\layer)<LaTeX based on LuaTeX with PDF (standard) or DVI (dviLuaLaTeX) output. LaTeX support for luaTeX is under heavy development to make this machine usable with the format. Work in progress, but already well useable! (This document is processed with luaLaTeX2e.)>{Lua\LaTeX}
	\todraw(latex2ε)(lualatex)
	\steplayer[-2]

	\tonode[\experimental](latex25)(0,\layer)<Will Robertson suggested in an interview (see refs) an interim unstable version on the way to LaTeX3 with version number 2.5 that should bring package authors towards using LaTeX3 syntax. This version should be backwards incompatible to LaTeX2e. (This version does not exist in any official plannings, but I liked the idea, so it is mentioned here ;) )>{\LaTeX2.5}
	\todraw(latex2ε)(latex25)
	
	\steplayer[-3]
	\tonode[\experimental](latex3)(0,\layer)<The long-time successor of LaTeX2e. It is planned to implement a very elaborate low-level programming language. (Almost done by now.) The expl3-package provides an implemantation that can be used on top of LaTeX2e. Several LaTeX packages already make heavy use of expl3. (As does this document.) LaTeX3 makes use of eTeX primitives and therefore needs this engine or successors. Special adaptions of luaTeX features are starting to evolve.>{\LaTeX{}3}
	\todraw(latex25)(latex3)
}

%%% CONTEXT %%%
\clearpage
\tograph*(\tostruct[\ConTeXt]{\ConTeXt: con\,tex\,t – text with tex}){
	\tonode(pragmatex)(0,\layer)<Former name of ConTeXt.>{pragmatex}
	\steplayer[-2]

	\tonode(mki)(0,\layer)<Original ConTeXt with Dutch low level interface.>{\ConTeXt MkI}
	\todraw(mki)(pragmatex)
	\steplayer[-2]

	\tonode[\vip](mkii)(0,\layer)<ConTeXt with English low level interface. Works with any TeX-engine, as LaTeX does: TeX, e-TeX, pdfTeX, Aleph, XeTeX, ...>{\ConTeXt MkII}
	\todraw(mki)(mkii)
	\steplayer[-2]
	
	\tonode(mkiii)(4,\layer)<Reserved for future use for files supporting XeTeX. Was "skipped" for "practical reasons" (Hans Hagen)>{\ConTeXt\ MkIII}
	\todraw(mkii)(mkiii)
	\steplayer[-2]
	
	\tonode[\vip](mkiv)(0,\layer)<Specially designed for LuaTeX.>{\ConTeXt MkIV}
	\todraw*(mkii)(mkiv)
}

%% go on with the rare formats
\clearpage
%%%% formats %%%%
\tostruct[Other Formats]{Other Formats}

\tograph(\tostruct(1)[XML\TeX]{XML\TeX}){
  \tonode(xmltex)(0,\layer)<A format (based on machines like pdfTeX, XeTeX and maybe luaTeX) that converts XML input to DVI or PDF output. Can also be based on other formats when parsed at format-building time.>{XML\TeX}
}

%%% YTeX %%%
\tograph(\tostruct(1)[Y\TeX]{Y\TeX}[\experimental]){
	\tonode(ytex)(0,0)<A macro package developed at MIT. Pronounced "why-TeX", "upsilon-TeX" or "oops-TeX". Tries to offer an easy structure for novices as well as a powerfull macro libraries for experienced users.>{Y\TeX}
}

%%% StarTeX %%%
\tograph(\tostruct(1)[Star\TeX]{Star\TeX\ – Starter's \TeX}){
	\tonode(startex)(0,0)<A format designed to help students with short documents. Using html-like notation: <command> instead of \ command>{Star\TeX}
}

%%% JadeTeX %%%
\tograph(\tostruct(1)[Jade\TeX]{Jade\TeX}){
	\tonode(jadetex)(0,0)<A macro package for processing Jade/OpenJade output.>{Jade\TeX}
}

\tograph(\tostruct(1)[Texinfo]{Texinfo}[\normalimportant]){
	\tonode(texinfo)(0,0)<The official documentation format of the GNU project. Uses TeX to provide documentations.>{Texinfo}
}

\clearpage

\tostruct[Pandora's Box]{Pandora's Box}
\parbox{\textwidth}{\normalsize
The following pages will be a hodge-podge of many things that are related to \TeX\ and used in the process of generating documents in different file formats, i.\,e. conversion tools, bibliography tools etc. Feel free to contribute, I'll choose case-by-case if I'll add something or won't include it. Text editors or viewers will \emph{not} be included!
}

\tostruct(1)[Distributions]{Distributions}[\distro]
\parbox{\textwidth}{\normalsize
This section will feature the main distributions of \TeX\ and related programs. Of course, not every Linux Distribution's \TeX\ package can be listed here, but only official upstream distributions.
}

\ExplSyntaxOn
\fp_gset:Nn\layerdist{-1.5}
\ExplSyntaxOff

\tograph(\tostruct(2)[\TeX\ live]{\TeX\ live}){
	\tonode(web2c)(0,\layer)<An Implementation and Distribution of TeX which translates the original WEB sources to a C code.>{Web2c}
	\steplayer

	\tonode[\histdistro](emtex)(3,\layer)<Eberhard Mattes' TeX Distribution for MS-DOS and OS2.>{em\TeX}
	\todraw.(web2c)(emtex)
	\steplayer

	\tonode[\histdistro](tetex)(3,\layer)<Maintained by Thomas Esser (hence the te in teTeX) from 1994 to May 2006.>{te\TeX}
	\tonode[\histdistro](4alltexcd)(-3,\layer)<The (vague) past ... (?)>{4All\TeX CD }
	\todraw.(web2c)(tetex)
	\todraw.(web2c)(4alltexcd)
	\steplayer

	\tonode(fptex)(3,\layer)<A free TeX distribution for Win32 based on teTeX, by Fabrice Popineau. Still active, provides up-to-date binaries for Windows. Special support for Japanese Typesetting.>{fp\TeX}
	\todraw(fptex)(tetex)
	\steplayer[-2.5]

	\tonode[\histdistro](xemtex)(4,\layer)<A TeX distribution for Windows, based on fpTeX with XEmacs,AucTeX as IDE for (La)TeX. XemTeX was sponsored by the French government.>{XEm\TeX}
	\todraw(xemtex)(fptex)

	\tonode[\histdistro](tlpre2008)(0,\layer)<First version 1996 (UNIX only, later also Windows binaries), and then a long story of ongoing work -- see the detailed documentation for a detailed history.>{\TeX\ live 1996 – 2007}
	\todraw(tetex)(tlpre2008)
	\todraw(4alltexcd)(tlpre2008)
	\todraw.(web2c)(tlpre2008)
	\steplayer

	\tonode(tl2008)(0,\layer)<A new package manager and network installer are available. So installation via the net is possible as well as package updates. Missing packages are not installed on-the-fly. The last of the modern machines is added: luaTeX>{\TeX\ live2008}
	\todraw.(tl2008)(tlpre2008)

	\tonode[\histdistro](gwtex)(5,\layer)<A (re)distribution for Mac OS based on TeXlive (earlier on teTeX) by Gerben Wierda. Provides TeX-related packages for the i-Installer. Unsupported from 2007 on.>{gw\TeX}
	\todraw(tlpre2008)(gwtex)

	\steplayer

	\tonode(tl2009)(0,\layer)<Dropped Omega and Lambda. Aleph and Lamed are kept.>{\TeX\ live2009}
	\todraw(tl2009)(tl2008)
	\steplayer

	\tonode(tl2010)(0,\layer)<Up to now, latest release of TeXlive.>{\TeX\ live2010}
	\todraw(tl2010)(tl2009)

	\tonode(tlcontrib)(-5,\layer)<An extension of TeXlive that contains packages that TeXlive cannot hold because: not free, binary update, not on CTAN or intermediate release. Useable via the TeXlive manager.>{TLContrib}
	\todraw.(tl2010)(tlcontrib)

	\tonode(mactex)(5,\layer)<Once based on teTeX, MacTeX is now TeXlive-based. For Mac OS X only, it provides a native installer, the TeXShop editor and Mac-specific tools.>{Mac\TeX}
	\todraw(tl2010)(mactex)
}

\tograph(\tostruct(2)[MiK\TeX]{MiK\TeX}){
	\tonode(mt)(0,\layer)<MiKTeX is a TeX distribution originally for Windows only. Copyright by Christian Schenk goes back to 2001. Regarding the name, the author stated: "mik used to be my login name. It is an acronym for: Micro-kid. Hence the capital K in MiKTeX.">{MiK\TeX}
	\steplayer

	\tonode(mt26)(0,\layer)<Windows only. featuring  pdftex 1.40.4, mpost 1.000>{MiK\TeX\ 2.6}
	\todraw(mt)(mt26)
	\steplayer

	\tonode(mt27)(0,\layer)<Windows only. featuring  xetex 0.999.6, pdftex 1.40.9, mpost 1.005>{MiK\TeX\ 2.7}
	\todraw(mt27)(mt26)
	\steplayer

	\tonode(mt28)(0,\layer)<Windows only. featuring  xetex 0.9995.1, pdftex 1.40.10, mpost 1.005>{MiK\TeX\ 2.8}
	\todraw(mt28)(mt27)
	\steplayer

	\tonode(mt29)(0,\layer)<Windows only (stable version). Beta version for GNU/Linux available. featuring xetex 0.9997.4, pdftex 1.40.11, LuaTeX 0.60.2, mpost 1.211. Offers both LaTeX and ConTeXt (Mk IV) formats.>{MiK\TeX\ 2.9}
	\todraw(mt29)(mt28)
	\steplayer	
	
	\tonode(protext)(2,\layer)<A distribution based on MiKTeX (since 2004) with a comfortable install procedure, Editor etc. Provides an easy installation for a full (La)TeX environment.>{ProTeXt}
	\todraw(protext)(mt29)
}

\tograph(\tostruct(2)[\TeX\ collection]{\TeX\ collection}){
	\tonode(texcollection)(0,\layer)<A meta-distribution. Provided on DVD by the TUG, this distribution ships with TeXlive, MacTeX and ProTeX as well as with a full CTAN snapshot.>{\TeX\ Collection}

}

\tograph(\tostruct(2)[W32\TeX]{W32\TeX}){
	\tonode(w32tex)(0,\layer)<A distributon to provide binaries for MS Windows, with special support for Japanese. First version (up to the changelog): 2009/08/02. Still highly up-to-date.>{W32\TeX}
}

\tograph(\tostruct(2)[OzTeX]{OzTeX}){
	\tonode[\histdistro](oztex)(0,\layer)<A commercial distribution for Mac OS. No longer supported.>{Oz\TeX}
}

\tograph(\tostruct(2)[for Amiga]{for Amiga}){
	\tonode[\histdistro](amigatex)(-2,\layer)<By Thomas Rockicki and Radical Eye Software. Commercial distribution for Amiga.>{Amiga-TeX}
	\tonode[\histdistro](pastex)(2,\layer)<A free distribution for Amiga. Distributed as 5 floppy disks (TeX) plus 2 floppy disks (Metafont). Available from the Aminet.>{pasTeX}
}

\tograph(\tostruct(2)[N\TeX]{N\TeX}){
	\tonode[\histdistro](ntex)(0,\layer)<A distribution for Linux and other Unix systems. Latest version is 2.3.2, released at 23-Aug-1998. No longer developed.>{N\TeX}
}

\newpage
%%% META* %%%
\tograph(\tostruct(1)[META*]{META*}[\program]){
	\tonode(metafont)(0,\layer)<The program for creating the fonts originally used by TeX.>{METAFONT}
	\steplayer

	\tonode(metafog)(3,\layer)<A program to convert metafont shapes to Type1 contours. Uses mathematically correct transformations instead of autotracing.>{Metafog}
	\todraw(metafog)(metafont)

	\tonode(metatype1)(-3,\layer)<A program to produce Type1 fonts from metafont source code.>{MetaType1}
	\todraw(metatype1)(metafont)

	\tonode(metapost)(0,\layer)<A graphic generating program written by John Hobby, inspired by METAFONT. MetaPost can produce PostScript graphics as well as SVG.>{MetaPost}
	\todraw(metapost)(metafont)
	\steplayer
q
	\tonode(metafun)(0,\layer)<"MetaFun is Hans Hagen's extension to (or module for) the MetaPost language.">{MetaFun}
	\todraw(metafun)(metapost)
}

%%% BIBTEX %%%
\tograph(\tostruct(1)[Bib\TeX]{Bib\TeX}){
	\tonode(bibtex)(0,0)<A helper program to generate a bibliography list.>{\BibTeX}
	\steplayer[-1]

	\tonode(nbibtex)(4,\layer)<"NbibTeX helps authors take better advantage of BibTeX data" says the homepage.>{NbibTeX}
	\todraw(nbibtex)(bibtex)
	\steplayer[-0.5]

	\tonode(bibtex8)(0,\layer)<The documentation says: "An 8-bit Implementation of BibTeX 0.99 with a Very Large Capacity">{\BibTeX8}
	\todraw(bibtex8)(bibtex)
	\steplayer
	
	\tonode(bibtexu)(0,\layer)<A Unicode-aware version of BibTeX>{\BibTeX u}
	\todraw(bibtex8)(bibtexu)

	\tonode(pybtex)(3,\layer)<A python implementation of BibTeX.>{Pybtex}
	\todraw(pybtex)(bibtexu)
	\steplayer
	
	\tonode(biber)(0,\layer)<A cooler version of Unicode-aware BibTeX, designed for (?) use with BibLaTeX>{biber}
	\todraw(bibtexu)(biber)
	
	\tonode[\package](biblatex)(3,\layer)<A LaTeX package as frontend for biber.>{Bib\LaTeX}
	\todraw(biber)(biblatex)
	\todraw(bibtexu)(biblatex)
	\steplayer

	\tonode[\package](librarian)(5,\layer)<A TeX file (useable with all formats) that typesets BibTeX-style bibliographies without the need of BibTeX. Therefore, it provides a format-independent typesetting of bibliographies.>{Librarian}
}

%%% dvipdfm and  similar ones %%%
\tograph(\tostruct(1)[{(x)dvipdf(m)(x)}]{(x)dvipdf(m)(x)}){
	\tonode(dvipdf)(0,0)<A shellscript from Ghostscript that uses dvips and and gs for converting.>{dvipdf}
	\tonode(xdv2pdf)(4,0)<No idea so far what this is, but it is mentioned in the fontspec manual as possible driver for XeTeX.>{xdv2pdf}
	\steplayer

	\tonode(dvipdfm)(0,\layer)<Converts DVI files to PDF files. Does /not/ build on dvipdf, but is an independent implementation.>{dvipdfm}
	\steplayer

	\tonode(dvipdfmx)(0,\layer)<Extended version of dvipdfm. Support for multi-byte encodings and more pdfTeX features. Still active. Combined work of dvipdfm-jpn and dvipdfm-kor.>{dvipdfmx}
	\todraw(dvipdfm)(dvipdfmx)
	\steplayer

	\tonode(xdvipdfmx)(0,\layer)<Converts XDVI files produced by XeTeX to PDF files. Normally always executed after a XeTeX run, so the user won't notice that an xdvi document was created in between.>{xdvipdfmx}
	\todraw(dvipdfmx)(xdvipdfmx)
}

\tograph(\tostruct(1)[Fonts]{Fonts}[\fonttechnology]
\parbox{\textwidth}{\large
This section tries to cover the development of fonts – the most important thing for a typesetting system is it's font mechanism …\\[4ex]}
){
	\tonode(bitmap)(0,\layer)<Bitmap fonts contain the shape of the letters as a number of dots. If you zoom in, a bitmap letter will show pixels. Hence one needs a special version for every resolution.>{Bitmap fonts}
	\steplayer[-3]

	\tonode(type1)(-2,\layer)<Outline font. The shape of a letter is described as mathematical curves so the letter can be made arbitrarely large without getting pixeled.>{PostScript Type 1}
	\tonode(truetype)(2,\layer)<Available on Windows and Mac OS. Outline font technology with quadratic B splines.>{TrueType}
	\tonode(freetype)(6,\layer)<TrueType implementation for Unix.>{FreeType}
	\todraw(freetype)(truetype)
	\steplayer[-3]

	\tonode(gx)(6,\layer)<"Graphis eXtension". A font format only available for Mac OS.>{TrueType GX}
	\todraw(truetype)(gx)
	\steplayer[-3]

	\tonode(opentype)(-2,\layer)<Extension of the TrueType font format, adding support for PostScript font data. Developed by Microsoft and Adobe.>{OpenType}
	\todraw(truetype)(opentype)
	\todraw(type1)(opentype)

	\tonode(aat)(6,\layer)<"Apple Advanced Typography" fonts are succesors of the GX fonts. Only available for Mac OS, too.>{AAT}
	\todraw(aat)(gx)
}

\addtocontents{toc}{\newpage\vspace*{2.95cm}} %% indeed, this is ridiculous

\topart{Text Views}
\label{sec:text}

\large
\addtokomafont{section}{\huge}
\addtokomafont{subsection}{\LARGE}
\addtokomafont{subsubsection}{\Large}

\newgeometry{margin=1.5cm,twocolumn}  %% a bit more space for text views, but not too much …
\settextviews  %% these are generated automatically by the code above. 
\onecolumn

\appendix
\topart{Appendix}

%%
%% I've chosen to typeset the bibliography "by hand" for full control of formatting and behaviour. Also, I can choose my own syntax ☺
%%
\tostruct{References}
\label{sec:refs}
\obeylines\flushleft  %% to get rid of the still active centering

The references are in order of occurance in the above document. i.\,e. if you want information about Lua\TeX, it will be below e.\,g. $\epsilon$\TeX. Everything that is not listet as ”book“ is freely available on the internet.

	\tobibsection{Books}
	\tobib{D.E. Knuth, D.~Bibby, and I.~Makai. \textit{The \TeX book}\\ Addison-Wesley Reading, MA, 1986.}
	\tobib{F.~Mittelbach, M.~Goossens, J.~Braams, D.~Carlisle, C.~Rowley, C.~Detig, and
	  J.~Schrod. \textit{The \LaTeX\ companion.} \\ Addison-Wesley, 2004.}

	\tobibsection{Overview Articles}
	\tobib{Arthur Reutenauer. A Brief History of \TeX. Talk at EuroBacho\TeX\ 2007.}%
	  <http://www.gust.org.pl/bachotex/EuroBachoTeX2007/presentations/bhot.pdf/view>
	\tobib{A Brief History of \LaTeX}<http://www.xent.com/FoRK-archive/feb98/0307.html>
	\tobib{Short Article About Omega And Aleph}<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=omegaleph>
	\tobib{Interviews with Will Robertson, Hans Hagen et.\,al.}<http://www.tug.org/interviews>
	
	\tobibsection{Archives}
	\tobib{CTAN – Comprehensive TeX Archive Network:}<http://www.ctan.org>
	\tobib{Historic Archive of TeX Distributions:}<ftp://ftp.tug.org/historic>

	\tobibsection{Engines}
	\tobib{ANT project page}<http://ant.berlios.de>
	\tobib{Yasuki S AITO. Report on JTEX: A Japanese TEX. TUGboat 8 (1987), no. 2, 103\,–\,116.}%
		<http://www.tug.org/TUGboat/Articles/tb08-2/tb18saito.pdf>
	\tobib{p\TeX\ sources and documentation}<http://dante.ctan.org/tex-archive/help/Catalogue/entries/ptex.html>
	\tobib{enc\TeX\ page}<http://www.olsak.net/enctex.html>
	\tobib{ML\TeX\ source (CH file)}<http://www.tex.ac.uk/tex-archive/systems/generic/mltex/mltex.ch>
	\tobib{pdf\TeX\ project page}<http://tug.org/applications/pdftex/>
	\tobib{\NTS\ project page}<http://nts.tug.org>
	\tobib{V\TeX\ – official homepage of micropress-inc}<http://www.micropress-inc.com/>	
	\tobib{\XeTeX\ project page}<http://tug.org/xetex/>
	\tobib{$\epsilon\chi$\TeX\ project page}<http://www.extex.org>	
	\tobib{ee\TeX\ project page}<http://tex.aanhet.net/eetex>	
	\tobib{Lua\TeX\ project page}<http://www.luatex.org>
	\tobib{i\TeX\ announcement by Don Knuth at the TUG 2010}<http://river-valley.tv/tug-2010/an-earthshaking-announcement>
	
	\tobibsection{Formats}
	\tobib{\ConTeXt\ wiki}<http://wiki.contextgarden.net>
	\tobib{\LaTeX\ project page}<http://www.latex-project.org>
	\tobib{\LaTeX3 project}<http://www.latex-project.org/latex3.html>
	\tobib{A\LaTeX: Discussion in TUGboat Vol. 16 (1995), No. 3, p. 269ff.}<http://www.tug.org/TUGboat/Articles/tb16-3/tb48swif.pdf>
	\tobib{XML\TeX\ manual}<http://www.dcarlisle.demon.co.uk/xmltex/manual.html>
	\tobib{Y\TeX\ on CTAN}<http://tug.ctan.org/tex-archive/macros/ytex/>
	\tobib{Jade\TeX\ project page}<http://jadetex.sourceforge.net/>
	\tobib{Star\TeX\ on CTAN}<http://www.ctan.org/tex-archive/macros/startex/>
	\tobib{Texinfo project page}<http://www.gnu.org/software/texinfo/>

	\tobibsection{Distributions}
	\tobib{fp\TeX: Announcment at TUG 1999}<http://www.tug.org/tug99/program/node39.html>
	\tobib{\TeX\ live development history}<http://tug.org/texlive/doc/texlive-en/texlive-en.html>
	\tobib{gw\TeX\ project page}<http://ii2.sourceforge.net/tex-index.html>
	\tobib{Brief History of gwTeX}<http://www.tug.org/twg/mactex/award/2007/gerben/aboutgwtex.html>
	\tobib{TLContrib project page}<http://tlcontrib.metatex.org/>
	\tobib{Mac\TeX\ project page}<http://www.tug.org/mactex>
	\tobib{MiKTeX project page}<http://miktex.org/>
	\tobib{Christian Schenk about the name of MiKTeX (mailing list archive)}<http://sourceforge.net/mailarchive/message.php?msg_id=26826076>
	\tobib{Pro\TeX t project page}<http://www.tug.org/protext/>
	\tobib{\TeX Collection page}<http://www.tug.org/texcollection/>
	\tobib{Win32 project page}<http://w32tex.org/>
	\tobib{Oz\TeX\ project page}<http://www.trevorrow.com/oztex/>
	\tobib{\TeX\ on Amiga}<http://serpens.de/~zza/amigafaq/AmigaFAQg_49.html>
	\tobib{N\TeX\ project page}<http://www.langbein.org/software/ntex/>

	\tobibsection{Fonts}
	\tobib{Type1 Fonts specifications}<http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF>
	\tobib{The FreeType project}<http://freetype.org/index2.html>
	\tobib{OpenType specifications}<http://www.microsoft.com/typography/otspec/default.htm>

	\tobibsection{Everything Else}
	\tobib{dvipdfmx project page}<http://project.ktug.or.kr/dvipdfmx/>
	
\clearpage
\section{List of Contributors}
I have to thank some people for helping me to improve this document. Of course I thank all the people provinding the above-mentioned references. 

\begin{itemize}
\item Paul Isambert, for usefull discussions and testing
\item Heiko Oberdiek, for solving a bug that broke the document with Acrobat Reader
\item Peter Dyballa, for detailed historic information
\end{itemize}
\end{document}