From a5afd5f9ebf57ccbb5ff65cca10c48ac7b169581 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 12 Jun 2016 16:09:18 +0000 Subject: tex-overview (25may16) git-svn-id: svn://tug.org/texlive/trunk@41403 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/tex-overview/tex-overview.tex | 392 +++++++++++++++------ 1 file changed, 289 insertions(+), 103 deletions(-) (limited to 'Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex') diff --git a/Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex b/Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex index 5a2de1127a3..f37e10dcd1e 100644 --- a/Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex +++ b/Master/texmf-dist/doc/latex/tex-overview/tex-overview.tex @@ -1,37 +1,42 @@ -%% Engine needed: LuaTeX ≥ 0.70.1 +%% Engine needed: LuaTeX ≥ 0.90.0 %% Format needed: LaTeX2ε -%% use an up-to-date TeX Live2012 (with tl-contrib updates) +%% use an up-to-date TeX Live2016 to be sure -% this document has version number 0.1f-ish. +% this document has version number 0.2-ish. \input{tex-overview-aux} %% everything that is not content-related \begin{document} \savegeometry{normal} \begin{abstract} -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 very 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!} +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 very welcome!\footnote{The latest 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!} {\centering \Large \hyperref[textextview]{Link for the impatient.}\\[2ex]} \end{abstract} \section*{Introduction} -This document is for people that have stumbled upon different term icluding something related to \TeX\ and are confused by the many different terms – at least I was, so mabye others are, too … +This document is for people that have stumbled upon different software names icluding something related to \TeX\ and are confused by the many different terms – at least I was, so mabye others are, too … -The base frame and main idea for this overview 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! +The base frame and main idea for this overview 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 documentation of the software and some review articles. For information of very old stuff, 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! +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}. \setlength{\columnsep}{1.5cm} +\newgeometry{bottom=3.5cm} +\newgeometry{margin=1cm} \newpage \tableofcontents -\section{The Difference Between Engine, Format and Distribution} -There are three kinds of terms that are often confused especially by new users. This will try to explain them very shortly: +%\restoregeometry + +\section{The Difference Between Editor, Engine, Format, and Distribution} +There are four kinds of terms that are often confused especially by new users. This will try to explain them very shortly: \begin{description} -\item[engine] This is the program that does all the actual work. The original program is \TeX, a famous development is pdf\TeX, while Lua\TeX\ is the latest successor. -\item[format] A format is a (large) collection of abbreviations (macros) that make the life easy when working with \TeX. The most commonly used formats are \LaTeX, Con\TeX t and plain\TeX. The latter one is a minimal set of macros provided by Don Knuth. Formats can be combined with different engines, exploiting the special abilities of these engines. A format is first a collection of text files, but can be compiled into a binary format that can be read in faster by the engine. -\item[distribution] In addition to formats, a large set of suppelmentary files can be used to work with \TeX, called \emph{packages} for \LaTeX, \emph{modules} for Con\TeX t, and many external programs have proven useful for the work with \TeX. Distributions such as \TeX~Live and MiK\TeX\ strive to provide a full set of such programs and macros by using a package manager to take care of package dependencies and updating. Many Linux distributions, as well as cygwin for Windows, repackage a \TeX\ distribution (mostly \TeX~Live) using the Linux distribution's package system. +\item[editor] Typically, a user interfaces with any *\TeX\ via an editor as a front end. Although they might look fancy with a lot of graphical interfaces, an editor is just a program that allows the user to create and change a text file. This can be done with any program, but specialized editors offer additional features. It is important to keep in mind that an editor alone can \emph{not} convert a \verb|.tex| file into a pdf or any other output format, but always needs the programs as discussed below, most notably an engine that does all the work. This might often be hidden from the user's direct view by buttons which offer convenient ways to execute everything that is necessary. +\item[engine] This is the program that does all the actual work. The original program is \TeX, the most famous derivative is pdf\TeX, while Lua\TeX\ is the latest successor. Normally,~a~user does not interface directly with the program, but uses an editor to parse a text file to it. +\item[format] A format is a (large) collection of abbreviations (macros) that make the life easy when working with \TeX. The most commonly used formats are \LaTeX, Con\TeX t and plain\TeX. The latter one is a minimal set of macros provided by Don Knuth. Formats can be combined with different engines, exploiting the special abilities of these engines. A format is in the beginning a collection of text files, but can be compiled into a binary format that can be read much faster by the engine. +\item[distribution] In addition to formats, a large set of supplementary files can be used to work with \TeX, called \emph{packages} for \LaTeX, \emph{modules} for Con\TeX t, and many external programs have proven useful for the work with \TeX. Distributions such as \TeX~Live and MiK\TeX\ strive to provide a full set of such programs and macros by using a package manager to take care of package dependencies and updating. Many Linux distributions, as well as cygwin for Windows, repackage a \TeX\ distribution (mostly \TeX~Live) using the Linux distribution's package system. \end{description} \newpage @@ -49,56 +54,57 @@ I tried to make the graphs more readable by using colors for different categorie \item[{\let\nodecolor\planned \tikz \node[coolnode]{planned};}] Things that are planned to raise one day and are in the phase of preparation, i.\,e. there may be some code but not in the final form yet. -\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\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; just some that might elsewise be confused for something else. \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\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\program \tikz \node[coolnode]{program};}] Programs that are not directly connected to \TeX\ (but interesting in the context of using \TeX) or 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 of the 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. +Some of the graphs have quite many entries, which is the reason why there are two versions of them: A short one listing 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 who know more about the \TeX\ world than I do. At the moment, special help is needed for: -\begin{itemize} -\item font technologies -\item METAFONT and succesors -\item Bib\TeX\ and successors/alternatives -\end{itemize} +I hope one day this document would become the standard reference for questions like ”Which program do I need for~…?“, ”What's the difference between …\TeX\ and …\TeX?“, ”Why is it called …?“ etc. -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. +To get to this point, I need some help of people who know more about the \TeX\ world than I do. 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 or corrections to the content, let me know. +\newpage \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, where the number is the version which I tested: +This document shows additional information via tooltips. At least that's what it should do. Unfortunately, there is no unique way to get hover-over tooltips to work in all PDF viewers, but each of them has its own way to present the information. For now, the information are provided as a hyperlink which points nowhere meaningful. But most viewers can shows this information in a way the user can understand. + +The following list summarizes my experience with different PDF viewers, all but the Adobe Reader XI tested on an Arch Linux. Your experince might differ; if you have any annotations to this list, I'll happily add them – especially if the document breaks anything completely. \begin{description} -\item[evince 3.0.2] Shows the document correct and complete. (Tested on Arch Linux) +\item[evince 3.20.0] Shows the document correctly and completely. + +\item[Adobe Reader 9] Shows the document correctly and completely, surprisingly. -\item[Adobe Reader 9] 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. (Tested on Arch Linux) +\item[Adobe Reader XI] Shows the document correctly and completely, surprisingly. (Tested on Windows 7) -\item[\TeX works 0.5 r869] The built-in PDF viewer of the \TeX works editor does not break lines of tooltips, therefore long annotations are not shown completely. (Tested on Arch Linux) +\item[\TeX works 0.6.1 r3614278] Shows the document completely, but the tooltips shows some characters at the beginning. Ignore those and it's fine. -\item[okular 0.13] also does not break the lines. (Tested on Arch Linux) +\item[okular 0.25.0] As \TeX works, but does not break the tooltips, therefore information is lost. -\item[xpdf 3.03] shows only very short tooltips. Most of the information is not visible in the graphs. (Tested on Arch Linux) +\item[xpdf 3.04] Shows the tooltips only in the status bar, thus hiding most of the information in the graphs. -\item[gv 3.7.2] shows no tooltips, but the annoying green boxes. (Tested on Arch Linux) \end{description} \subsection*{About this document} This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ format with \verb|expl3| and \verb|xpackages| based on Lua\TeX\ 0.\the\luatexversion.\luatexrevision. +In case you wonder why the typesetting is so ugly, especially the margins: Those are chosen to be small so that much text fits on one page which in this case increases the overview. I do not expect anybody to ever print this document, therefore I ignore the need of margins. In the tooltips, you will not see any colons even if they would make sense – this is because a colon leads to an error and the tooltip will not be displayed. + +\addtocontents{toc}{\string\vspace{.2cm}} \addtocontents{toc}{\string\begin{multicols}{2}} +\clearpage \topart{Tree Views} \newgeometry{margin=1cm} %% to save space; no need for margins if only a tree is shown @@ -133,12 +139,12 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \tonode(tex--xet)(4,\layer){\TeX-{}-\XeT} \todraw(tex-xet)(tex--xet) - \tonode[\vip](tex3)(7,\layer){\TeX3} + \tonode[\vip](tex3)(7,\layer){\TeX3} \todraw*(tex)(tex3) \steplayer[-1.5] - \tonode(ptex)(12,\layer){p\TeX} + \tonode(ptex)(12,\layer){p\TeX} \todraw(nihongo)(ptex) \todraw(tex3)(ptex) @@ -147,17 +153,17 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \tonode(enctex)(5.9,\layer){enc\TeX} \todraw(tex3)(enctex) - \tonode(mltex)(8,\layer){ML\TeX} + \tonode(mltex)(8,\layer){ML\TeX} \todraw(tex3)(mltex) - \tonode[\experimental](uptex)(14,\layer){up\TeX} + \tonode[\experimental](uptex)(14,\layer){up\TeX} \todraw(ptex)(uptex) \steplayer[-2] \tonode[\experimental](omega)(1,\layer){$\Omega$} \todraw(tex3)(omega) - \tonode[\vip](etex)(4,\layer){$\varepsilon$-\TeX} + \tonode[\vip](etex)(4,\layer){$\varepsilon$-\TeX} \todraw(tex--xet)(etex) \todraw'(tex3)(etex) @@ -170,32 +176,34 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \steplayer[-1] - \tonode(texgx)(10,\layer)<"GX" stands for Graphic eXtension, a font technology available only on Mac OS. TeXGX was able to handle these fonts.>{\TeX{}gX} + \tonode(texgx)(10,\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) \steplayer[-1] \tonode[\experimental](omega2)(0,\layer){$\Omega_2$} \todraw(omega)(omega2) + + \steplayer[-0.5] - \tonode[\experimental](vtex)(3.6,\layer){V\TeX} + \tonode[\experimental](vtex)(3.6,\layer){V\TeX} \todraw(etex)(vtex) - \steplayer[-1] + \steplayer[-0.5] - \tonode(eptex)(13.7,\layer){ε-p\TeX} + \tonode(eptex)(13.7,\layer){ε-p\TeX} \todraw(ptex)(eptex) \todraw(etex)(eptex) \steplayer[-1.5] - \tonode(euptex)(15.2,\layer)<>{ε-up\TeX} + \tonode(euptex)(15.2,\layer){ε-up\TeX} \todraw(etex)(euptex) \todraw(uptex)(euptex) \steplayer[-.5] - \tonode(aleph)(1,\layer){$\aleph$ (Aleph)} + \tonode(aleph)(1,\layer){$\aleph$ (Aleph)} \todraw(omega)(aleph) \todraw(etex)(aleph) @@ -213,11 +221,11 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \steplayer[-1] - \tonode[\vip](pdfetex)(6,\layer){pdf($\epsilon$)-\TeX} + \tonode[\vip](pdfetex)(6,\layer){pdf($\epsilon$)-\TeX} \todraw*(etex)(pdfetex) \todraw*(pdftex)(pdfetex) - \tonode[\vip](XeTeX)(10,\layer){\XeTeX} + \tonode[\vip](XeTeX)(10,\layer){\XeTeX} \todraw(texgx)(XeTeX) \todraw*(etex)(XeTeX) \todraw'(pdfetex)(XeTeX) @@ -231,22 +239,59 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \tonode[\program](lua)(0,\layer){Lua} - \tonode[\vip](luatex)(4,\layer){Lua\TeX} + \tonode[\vip](luatex)(4,\layer){Lua\TeX} \todraw(aleph)(luatex) \todraw*(pdfetex)(luatex) \todraw[dashed](lua)(luatex) - - \steplayer[-3] - \tonode[\experimental](itex)(7,\layer){i\TeX} + + \steplayer[-2] + \tonode[\program](luajit)(0,\layer){LuaJIT} + \todraw(lua)(luajit) + + \tonode[\experimental](luajittex)(4,\layer){LuaJIT\TeX} + \todraw(luajittex)(luatex) + \todraw[dashed](luajit)(luajittex) + + \steplayer[-2.5] + \tonode[\experimental](itex)(7,\layer){i\TeX} } \vfill -{\flushleft The chronological order may not be exact in this graph. I have to work hard on the arrangement to show both chronological order and code dependence, and for now only the code dependence is (should be) correct. +{\flushleft The chronological order may not be exact in this graph. I had to work hard on the arrangement to show both chronological order and code dependence, and for now only the code dependence is (should be) correct. } \clearpage +%%% TeX, iniTeX, virTeX %%% + +\tograph(\tostruct[ini\TeX\ et al.]{ini\TeX, Vir\TeX, et al.}){ + \tonode(initex)(-3,\layer){ini\TeX} + + \tonode(virtex)(0,\layer){Vir\TeX} + + \tonode(tex)(3,\layer){\TeX} + + \todraw(initex)(tex) + \todraw(tex)(virtex) + +\steplayer[-2] + + \tonode(inimf)(-4,\layer){iniMETAFONT} + + \tonode(virmf)(0,\layer){VirMETAFONT} + + \tonode(mf)(4,\layer){METAFONT} + + \todraw(inimf)(mf) + \todraw(mf)(virmf) + +} + +{\flushleft All other engines have the same functionality, but no special names given: |luatex --ini| is the INITEX version of Lua\TeX\ etc. + +} + %%% plain TeX %%% \tograph(\tostruct[plain\TeX]{plain\TeX\ – the first format}){ \tonode(plaintex)(0,\layer){plain\TeX} @@ -258,7 +303,7 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \todraw(plaintex)(csplain) \steplayer[-2] - \tonode[\experimental](eplain)(0,\layer){eplain} + \tonode[\experimental](eplain)(0,\layer){Eplain} \todraw(plaintex)(eplain) } \clearpage @@ -299,7 +344,7 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \todraw(latex209)(amslatex11) \steplayer[-1.7] - \tonode[\vip](latex2ε)(0,\layer){\LaTeX\,2\raisebox{-.5ex}ε} + \tonode[\vip](latex2ε)(0,\layer){\LaTeX\,2\raisebox{-.5ex}ε} \todraw*(latex209)(latex2ε) \todraw[dashed](slitex)(latex2ε) \todraw[dashed](amslatex11)(latex2ε) @@ -364,11 +409,11 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo \todraw(inrstex)(pragmatex) \steplayer[-2] - \tonode(MKi)(0,\layer){\ConTeXt\ MKI} + \tonode(MKi)(0,\layer){\ConTeXt\ MKI} \todraw(MKi)(pragmatex) \steplayer[-2] - \tonode[\vip](MKii)(0,\layer){\ConTeXt\ MKII} + \tonode[\vip](MKii)(0,\layer){\ConTeXt\ MKII} \todraw(MKi)(MKii) \steplayer[-2] @@ -385,7 +430,8 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo %%%% formats %%%% \tostruct[Other Formats]{Other Formats} %%% AMSTeX %%% -\tograph(\tostruct(1)[\texorpdfstring{\AMS}{AMS}-\TeX]{\AMS-\TeX}){ +\tograph(\tostruct(1)[\texorpdfstring{ +AMS}{AMS}-\TeX]{AMS-\TeX}){ \tonode(amstex20)(0,\layer){\AMS-\TeX 2.0} \steplayer[-1] @@ -420,8 +466,12 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo %%% Lollipop %%% \tograph(\tostruct(1)[Lollipop]{Lollipop}){ \tonode(lollipop09)(0,0){Lollipop 0.9} - \steplayer - \tonode(lollipop095)(0,0){Lollipop 0.95} + \steplayer[-2] + \tonode(lollipop095)(0,\layer){Lollipop 0.95} + \todraw(lollipop09)(lollipop095) + \steplayer[-2] + \tonode(lollipop098)(0,\layer){Lollipop 0.98} + \todraw(lollipop098)(lollipop095) } %%% MacroTeX %%% @@ -431,23 +481,23 @@ This document is typeset in the \TeX\ Gyre Pagella font using the Lua\LaTeXe\ fo %%% MEX %%% \tograph(\tostruct(1)[MeX]{MeX}){ - \tonode(mex)(0,0){MeX} + \tonode(mex)(0,0){MeX} } %%% PHYS(E) %%% \tograph(\tostruct(1)[PHYS(E)]{PHYS(E)}){ - \tonode(physe)(0,0){PHYS(E)} } %%% PHYZZX %%% \tograph(\tostruct(1)[PHYZZX]{PHYZZX}){ - \tonode(phyzzx)(0,0){PHYZZX} + \tonode(phyzzx)(0,0){PHYZZX} } %%% StarTeX %%% \tograph(\tostruct(1)[Star\TeX]{Star\TeX\ – Starter's \TeX}){ - \tonode(startex)(0,0) instead of \ command>{Star\TeX} + \tonode(startex)(0,0) instead of \ command>{Star\TeX} } %%% Texinfo %%% @@ -502,26 +552,28 @@ This section will feature the main distributions of \TeX\ and related programs. \tonode[\histdistro](4alltexcd)(-3,\layer){4All\TeX CD } \todraw.(web2c)(tetex) \todraw.(web2c)(4alltexcd) - \steplayer + \steplayer[-1.5] \tonode(fptex)(3,\layer){fp\TeX} \todraw(fptex)(tetex) - \tonode(gnutex)(3,\layer){GNU\TeX\ 0.x} + \tonode(gnutex)(6.5,\layer){GNU\TeX\ 0.x} \todraw(gnutex)(tetex) - \steplayer[-2.5] + \steplayer[-1.5] - \tonode[\histdistro](xemtex)(4,\layer){XEm\TeX} + \tonode[\histdistro](xemtex)(4.5,\layer){XEm\TeX} \todraw(xemtex)(fptex) + \steplayer[-0.5] + \tonode[\histdistro](tlpre2008)(0,\layer){\TeX\ Live 1996\,–\,2007} \todraw(tetex)(tlpre2008) \todraw(4alltexcd)(tlpre2008) \todraw.(web2c)(tlpre2008) \steplayer - \tonode(tl2008)(0,\layer){\TeX\ Live 2008} + \tonode(tl2008)(0,\layer){\TeX\ Live 2008} \todraw.(tl2008)(tlpre2008) \tonode[\histdistro](gwtex)(5,\layer){gw\TeX} @@ -537,7 +589,7 @@ This section will feature the main distributions of \TeX\ and related programs. \todraw(tl2010)(tl2009) - \tonode(tlcontrib)(-5,\layer){TLContrib} + \tonode(tlcontrib)(-5,\layer){TLContrib} \todraw.(tl2010)(tlcontrib) \steplayer @@ -547,16 +599,27 @@ This section will feature the main distributions of \TeX\ and related programs. \steplayer - \tonode(tl2012)(0,\layer){\TeX~Live 2012} + \tonode(tl2012)(0,\layer){\TeX~Live 2012} \todraw(tl2012)(tl2011) \todraw.(tl2012)(tlcontrib) + \tonode(texportal)(-4,\layer){\TeX Portal} + \todraw(tl2012)(texportal) + +\steplayer + + \tonode(tl20132016)(0,\layer){\TeX~Live 2013\,–\,2016} + \todraw(tl2012)(tl20132016) + \tonode(mactex)(5,\layer){Mac\TeX} - \todraw(tl2012)(mactex) + \todraw(tl20132016)(mactex) + + \tonode(basictex)(8,\layer)<“BasicTeX is a subset of TeX Live of size 100 megabytes instead of 2 gigabytes.”>{Basic\TeX} + \todraw(mactex)(basictex) } \tograph(\tostruct(1)[MiK\TeX]{MiK\TeX}){ - \tonode(mt)(0,\layer){MiK\TeX} + \tonode(mt)(0,\layer){MiK\TeX} \steplayer \tonode(mt26)(0,\layer){MiK\TeX\ 2.6} @@ -573,10 +636,15 @@ This section will feature the main distributions of \TeX\ and related programs. \tonode(mt29)(0,\layer){MiK\TeX\ 2.9} \todraw(mt29)(mt28) - \steplayer + \steplayer - \tonode(protext)(2,\layer){ProTeXt} + \tonode(protext)(3,\layer){ProTeXt} \todraw(protext)(mt29) + +\steplayer + + \tonode[\experimental](mt30)(0,\layer){MiK\TeX\ 3.0} + \todraw(mt30)(mt29) } \tograph(\tostruct(1)[\TeX\ collection]{\TeX\ collection}){ @@ -588,12 +656,16 @@ This section will feature the main distributions of \TeX\ and related programs. \tonode(minimals)(-3,\layer){Standalone} } +\tograph(\tostruct(1)[Decus \TeX]{Decus \TeX}){ + \tonode[\histdistro](decustex)(0,\layer){Decus \TeX} +} + \tograph(\tostruct(1)[Ker\TeX]{Ker\TeX}){ - \tonode(kertex)(0,\layer){Ker\TeX} + \tonode(kertex)(0,\layer){Ker\TeX} } \tograph(\tostruct(1)[W32\TeX]{W32\TeX}){ - \tonode(w32tex)(0,\layer){W32\TeX} + \tonode(w32tex)(0,\layer){W32\TeX} } \tograph(\tostruct(1)[OzTeX]{OzTeX}){ @@ -610,10 +682,10 @@ This section will feature the main distributions of \TeX\ and related programs. } \newpage -\ExplSyntaxOn - \dim_set:Nn\pdfpagewidth{13cm} %% make a smaller paper so the header won’t feel so alone on the big, cold paper - \dim_set:Nn\pdfpageheight{6cm} -\newgeometry{left=1cm,top=1cm,width=11cm} +%\ExplSyntaxOn +% \dim_set:Nn\pdfpagewidth{13cm} %% make a smaller paper so the header won’t feel so alone on the big, cold paper +% \dim_set:Nn\pdfpageheight{6cm} +%\newgeometry{left=1cm,top=1cm,width=11cm} \ExplSyntaxOff \newpage \tostruct[Pandora's Box]{Pandora's Box} @@ -645,12 +717,16 @@ The following pages will be a hodge-podge of many things that are related to \Te \tonode[\normalimportant](mptopdf)(-4,\layer){mptopdf} \todraw.(metapost)(mptopdf) - \tonode[\experimental](mflua)(4,\layer){MFLua} + \tonode[\experimental](mflua)(3.5,\layer){MFLua} \todraw(mflua)(metafont) - \steplayer[-2] + \steplayer[-0.5] + + \tonode[\experimental](mfluajit)(6.5,\layer){MFLuaJIT} + \todraw(mfluajit)(mflua) + \steplayer[-1.5] - \tonode[\normalimportant](metappeal)(4,\layer)<"Metappeal is an extension to Plain MetaPost, providing a lightweight framework -for consistent development in MetaPost.">{Metappeal} + \tonode[\normalimportant](metappeal)(4,\layer)<“Metappeal is an extension to Plain MetaPost, providing a lightweight framework +for consistent development in MetaPost.”>{Metappeal} \todraw(metappeal)(metapost) \steplayer[-1] @@ -672,7 +748,7 @@ and precision of the internal data types.”>{MegaPost} \todraw(nbibtex)(bibtex) \steplayer[-0.5] - \tonode(bibtex8)(0,\layer){\BibTeX8} + \tonode(bibtex8)(0,\layer){\BibTeX8} \todraw(bibtex8)(bibtex) \tonode(mlbibtex)(-4,\layer){MlBibTeX} @@ -697,7 +773,7 @@ and precision of the internal data types.”>{MegaPost} \todraw(pbibtex)(upbibtex) \steplayer - \tonode(biber)(0,\layer){biber} + \tonode(biber)(0,\layer){biber} \todraw(bibtexu)(biber) \steplayer @@ -728,7 +804,7 @@ and precision of the internal data types.”>{MegaPost} \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 are font mechanism …\\[4ex]} +This section tries to cover the development of fonts – the most important thing for a typesetting system are font mechanisms, after all …\\[4ex]} ){ \tonode(bitmap)(0,\layer){Bitmap fonts} \steplayer[-3] @@ -755,31 +831,122 @@ This section tries to cover the development of fonts – the most important thin \tograph(\tostruct(1)[Work Flow]{Work Flow – Under Construction!}[\vip] { \flushleft -\large Ok, this section might never be ready, but I will leavi it here in the hope that someone will help out: I want to try to depict the typical work flow for working with \TeX. This will never be complete as there are many ways to work with any of the \TeX\ flavours, including helper programs etc. We will start with a simple \LaTeX\ document, and maybe we will extend this to different formats, engines etc. … +\large This section tries to give a rough overview over the connection of different file types and how they are used by the different programs. We concentrate on the ”modern“ version of the programs, i.\,e.~Lua\TeX, biber etc. The graph so far shows: +\begin{itemize} +\item basic files used/produced in every Lua\LaTeX run, +\item files used for complex documents with TOC, LOT and LOF, +\item files and programs associated with bibliographies, +\item files produced by the beamer class +\end{itemize} + +A next version might show the files produced using Ti{\textit k}Z and externalizing etc. + +\global\let\necessary\vip +\global\let\additional\experimental +\global\let\automatic\normalimportant +\global\let\program\program +\global\let\temporary\package The preliminary nomenclature is: \begin{itemize} -\item[red] necessary files -\item[yellow] additional input files -\item[blue] automatically produced files -\item[green] program that is used – editor, processing tool, viewer, … +\item[{\let\nodecolor\necessary \tikz \node[coolnode]{necessary\strut};}] necessary input files +\item[{\let\nodecolor\temporary \tikz \node[coolnode]{temporary\strut};}] temporary storage files: written in one run, read in the next one +\item[{\let\nodecolor\additional \tikz \node[coolnode]{additional\strut};}] additional input files +\item[{\let\nodecolor\automatic \tikz \node[coolnode]{automatic\strut};}] automatically produced files +\item[{\let\nodecolor\program \tikz \node[coolnode]{program\strut};}] program that is used – editor, processing tool, viewer, … \end{itemize} %% yes, this is stupid, but for now that's how it is …: -\let\necessary\vip -\let\additional\experimental -\let\automatic\normalimportant -\let\program\package } ){ - \tonode(texfile)(0,\layer){.tex} - \steplayer[-5] + \tonode[\necessary](texfile)(0,\layer){.tex} + + \steplayer + \tonode[\necessary](styfile)(-1,\layer)