\section{Release history} \label{sec:history} \subsection{Past} Discussion began in late 1993 when the Dutch \TeX{} Users Group was starting work on its 4All\TeX{} \CD{} for \acro{MS-DOS} users, and it was hoped at that time to issue a single, rational, \CD{} for all systems. This was too ambitious a target for the time, but it did spawn not only the very successful 4All\TeX{} \CD{}, but also the \acro{TUG} Technical Council working group on a \emph{\TeX{} Directory Structure} (\url{http://tug.org/tds}), which specified how to create consistent and manageable collections of \TeX{} support files. A complete draft of the \TDS{} was published in the December 1995 issue of \textsl{TUGboat}, and it was clear from an early stage that one desirable product would be a model structure on \CD{}. The distribution you now have is a very direct result of the working group's deliberations. It was also clear that the success of the 4All\TeX{} \CD{} showed that Unix users would benefit from a similarly easy system, and this is the other main strand of \TL. We first undertook to make a new Unix-based \TDS{} \CD{} in the autumn of 1995, and quickly identified Thomas Esser's \teTeX{} as the ideal setup, as it already had multi-platform support and was built with portability across file systems in mind. Thomas agreed to help, and work began seriously at the start of 1996. The first edition was released in May 1996. At the start of 1997, Karl Berry completed a major new release of Web2c, which included nearly all the features which Thomas Esser had added in \teTeX, and we decided to base the 2nd edition of the \CD{} on the standard \Webc, with the addition of \teTeX's \texttt{texconfig} script. The 3rd edition of the \CD{} was based on a major revision of \Webc, 7.2, by Olaf Weber; at the same time, a new revision of \teTeX was being made, and \TL{} included almost all of its features. The 4th edition followed the same pattern, using a new version of \teTeX, and a new release of \Webc{} (7.3). The system now included a complete Windows setup. For the 5th edition (March 2000) many parts of the \CD{} were revised and checked, updating hundreds of packages. Package details were stored in XML files. But the major change for \TeX\ Live 5 was that all non-free software was removed. Everything in \TL{} is now intended to be compatible with the Debian Free Software Guidelines (\url{http://www.debian.org/intro/free}); we have done our best to check the license conditions of all packages, but we would very much appreciate hearing of any mistakes. The 6th edition (July 2001) had much more material updated. The major change was a new install concept: the user could select a more exact set of needed collections. Language-related collections were completely reorganized, so selecting any of them installs not only macros, fonts, etc., but also prepares an appropriate \texttt{language.dat}. The 7th edition of 2002 had the notable addition of \MacOSX{} support, and the usual myriad of updates to all sorts of packages and programs. An important goal was integration of the source back with \teTeX, to correct the drift apart in versions~5 and~6. \subsubsection{2003} In 2003, with the continuing flood of updates and additions, we found that \TL{} had grown so large it could no longer be contained on a single \CD, so we split it into three different distributions (see section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). In addition: \begin{itemize*} \item At the request of the \LaTeX{} team, we changed the standard \cmdname{latex} and \cmdname{pdflatex} commands to now use \eTeX{} (see \p.\pageref{text:etex}). \item The new Latin Modern fonts were included (and are recommended). \item Support for Alpha \acro{OSF} was removed (\acro{HPUX} support was removed previously), since no one had (or volunteered) hardware available on which to compile new binaries. \item Windows setup was substantially changed; for the first time an integrated environment based on XEmacs was introduced. \item Important supplementary programs for Windows (Perl, Ghost\-script, Image\-Magick, Ispell) are now installed in the \TL{} installation directory. \item Font map files used by \cmdname{dvips}, \cmdname{dvipdfm} and \cmdname{pdftex} are now generated by the new program \cmdname{updmap} and installed into \dirname{texmf/fonts/map}. \item \TeX{}, \MF{}, and \MP{} now, by default, output most input characters (32 and above) as themselves in output (e.g., \verb|\write|) files, log files, and the terminal, i.e., \emph{not} translated using the \verb|^^| notation. In \TL{}~7, this translation was dependent on the system locale settings; now, locale settings do not influence the \TeX{} programs' behavior. If for some reason you need the \verb|^^| output, rename the file \verb|texmf/web2c/cp8bit.tcx|. (Future releases will have cleaner ways to control this.) \item This documentation was substantially revised. \item Finally, since the edition numbers had grown unwieldy, the version is now simply identified by the year: \TL{} 2003. \end{itemize*} \subsubsection{2004} 2004 saw many changes: \begin{itemize} \item If you have locally-installed fonts which use their own \filename{.map} or (much less likely) \filename{.enc} support files, you may need to move those support files. \filename{.map} files are now searched for in subdirectories of \dirname{fonts/map} only (in each \filename{texmf} tree), along the \envname{TEXFONTMAPS} path. Similarly, \filename{.enc} files are now searched for in subdirectories of \dirname{fonts/enc} only, along the \envname{ENCFONTS} path. \cmdname{updmap} will attempt to warn about problematic files. For methods of handling this and other information, please see \url{http://tug.org/texlive/mapenc.html}. \item The \TK\ has been expanded with the addition of a \MIKTEX-based installable \CD, for those who prefer that implementation to Web2C. See section~\ref{sec:struct-tl} (\p.\pageref{sec:struct-tl}). \item Within \TL, the single large \dirname{texmf} tree of previous releases has been replaced by three: \dirname{texmf}, \dirname{texmf-dist}, and \dirname{texmf-doc}. See section~\ref{sec:tld} (\p.\pageref{sec:tld}), and the \filename{README} files for each. \item All \TeX-related input files are now collected in the \dirname{tex} subdirectory of \dirname{texmf*} trees, rather than having separate sibling directories \dirname{tex}, \dirname{etex}, \dirname{pdftex}, \dirname{pdfetex}, etc. See \CDref{texmf-doc/doc/english/tds/tds.html\#Extensions} {\texttt{texmf-doc/doc/english/tds/tds.html\#Extensions}}. \item Helper scripts (not meant to be invoked by users) are now located in a new \dirname{scripts} directory of \dirname{texmf*} trees, and searched for via \verb|kpsewhich -format=texmfscripts|. So if you have programs which call such scripts, they'll need to be adjusted. See \CDref{texmf-doc/doc/english/tds/tds.html\#Scripts} {\texttt{texmf-doc/doc/english/tds/tds.html\#Scripts}}. \item Almost all formats leave most characters printable as themselves via the ``translation file'' \filename{cp227.tcx}, instead of translating them with the \verb|^^| notation. Specifically, characters at positions 32--256, plus tab, vertical tab, and form feed are considered printable and not translated. The exceptions are plain \TeX\ (only 32--126 printable), \ConTeXt\ (0--255 printable), and the \OMEGA-related formats. This default behavior is almost the same as in \TL\,2003, but it's implemented more cleanly, with more possibilities for customization. See \CDref{texmf/doc/web2c/web2c.html\#TCX-files} {\texttt{texmf/doc/web2c/web2c.html\#TCX-files}}. (By the way, with Unicode input, \TeX\ may output partial character sequences when showing error contexts, since it is byte-oriented.) \item \textsf{pdfetex} is now the default engine for all formats except (plain) \textsf{tex} itself. (Of course it generates \acro{DVI} when run as \textsf{latex}, etc.) This means, among other things, that the microtypographic features of \textsf{pdftex} are available in \LaTeX, \ConTeXt, etc., as well as the \eTeX\ features (\OnCD{texmf-dist/doc/etex/base/}). It also means it's \emph{more important than ever} to use the \pkgname{ifpdf} package (works with both plain and \LaTeX) or equivalent code, because simply testing whether \cs{pdfoutput} or some other primitive is defined is not a reliable way to determine if \acro{PDF} output is being generated. We made this backward compatible as best we could this year, but next year, \cs{pdfoutput} may be defined even when \acro{DVI} is being written. \item pdf\TeX\ (\url{http://pdftex.org}) has many new features: \begin{itemize*} \item \cs{pdfmapfile} and \cs{pdfmapline} provide font map support from within a document. \item Microtypographic font expansion can be used more easily.\\ \url{http://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html} \item All parameters previously set through the special configuration file \filename{pdftex.cfg} must now be set through primitives, typically in \filename{pdftexconfig.tex}; \filename{pdftex.cfg} is no longer supported. Any extant \filename{.fmt} files must be redumped when \filename{pdftexconfig.tex} is changed. \item See the pdf\TeX\ manual for more: \OnCD{texmf/doc/pdftex/manual}. \end{itemize*} \item The \cs{input} primitive in \cmdname{tex} (and \cmdname{mf} and \cmdname{mpost}) now accepts double quotes containing spaces and other special characters. Typical examples: \begin{verbatim} \input "filename with spaces" % plain \input{"filename with spaces"} % latex \end{verbatim} See the Web2C manual for more: \OnCD{texmf/doc/web2c}. \item enc\TeX\ support is now included within Web2C and consequently all \TeX\ programs, via the \optname{-enc} option\Dash \emph{only when formats are built}. enc\TeX\ supports general re-encoding of input and output, enabling full support of Unicode (in \acro{UTF}-8). See \OnCD{texmf-dist/doc/generic/enctex/} and \url{http://www.olsak.net/enctex.html}. \item Aleph, a new engine combining \eTeX\ and \OMEGA, is available. A little information is available in \OnCD{texmf-dist/doc/aleph/base} and \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph}. The \LaTeX-based format for Aleph is named \textsf{lamed}. \item The latest \LaTeX\ release has a new version of the \acro{LPPL}\Dash now officially a Debian-approved license. Assorted other updates, see the \filename{ltnews} files in \OnCD{texmf-dist/doc/latex/base}. \item \cmdname{dvipng}, a new program for converting \acro{DVI} to \acro{PNG} image files, is included. See \OnCD{texmf/doc/man/man1/dvipng.1}. \item We reduced the \pkgname{cbgreek} package to a ``medium'' sized set of fonts, with the assent and advice of the author (Claudio Beccari). The excised fonts are the invisible, outline, and transparency ones, which are relatively rarely used, and we needed the space. The full set is of course available from \acro{CTAN} (\url{http://www.ctan.org/tex-archive/fonts/greek/cb}). \item \cmdname{oxdvi} has been removed; just use \cmdname{xdvi}. \item The \cmdname{ini} and \cmdname{vir} commands (links) for \cmdname{tex}, \cmdname{mf}, and \cmdname{mpost} are no longer created, such as \cmdname{initex}. The \cmdname{ini} functionality has been available through the command-line option \optname{-ini} for years now. \item \textsf{i386-openbsd} platform support was removed. Since the \pkgname{tetex} package in the \acro{BSD} Ports system is available, and \acro{GNU/}Linux and Free\acro{BSD} binaries were available, it seemed volunteer time could be better spent elsewhere. \item On \textsf{sparc-solaris} (at least), you may have to set the \envname{LD\_LIBRARY\_PATH} environment variable to run the \pkgname{t1utils} programs. This is because they are compiled with C++, and there is no standard location for the runtime libraries. (This is not new in 2004, but wasn't previously documented.) Similarly, on \textsf{mips-irix}, the \acro{MIPS}pro 7.4 runtimes are required. \end{itemize} \subsubsection{2005} 2005 saw the usual huge number of updates to packages and programs. The infrastructure stayed relatively stable from 2004, but inevitably there were some changes there as well: \begin{itemize} \item New scripts \cmdname{texconfig-sys}, \cmdname{updmap-sys}, and \cmdname{fmtutil-sys} were introduced, which modify the configuration in the system trees. The \cmdname{texconfig}, \cmdname{updmap}, and \cmdname{fmtutil} scripts now modify user-specific files, under \dirname{$HOME/.texlive2005}. See section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}. \item Corresponding new variables \envname{TEXMFCONFIG} and \envname{TEXMFSYSCONFIG} to specify the trees where configuration files (user or system, respectively) are found. Thus, you may need to move personal versions of \filename{fmtutil.cnf} and \filename{updmap.cfg} to these places; another option is to redefine \envname{TEXMFCONFIG} or \envname{TEXMFSYSCONFIG} in \filename{texmf.cnf}. In any case the real location of these files and the values of \envname{TEXMFCONFIG} and \envname{TEXMFSYSCONFIG} must agree. See section~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. \item Last year, we kept \verb|\pdfoutput| and other primitives undefined for DVI output, even though the \cmdname{pdfetex} program was being used. This year, as promised, we undid that compatibility measure. So if your document uses \verb|\ifx\pdfoutput\undefined| to test if PDF is being output, it will need to be changed. You can use the package \pkgname{ifpdf.sty} (which works under both plain \TeX\ and \LaTeX) to do this, or steal its logic. \item Last year, we changed most formats to output (8-bit) characters as themselves (see previous section). The new TCX file \filename{empty.tcx} now provides an easier way to get the original \verb|^^| notation if you so desire, as in: \begin{verbatim} latex --translate-file=empty.tcx yourfile.tex \end{verbatim} \item The new program \cmdname{dvipdfmx} is included for translation of DVI to PDF; this is an actively maintained update of \cmdname{dvipdfm} (which is also still available for now, though no longer recommended). \item The new programs \cmdname{pdfopen} and \cmdname{pdfclose} are included to allow reloading of pdf files in the Adobe Acrobat Reader without restarting the program. (Other pdf readers, notably \cmdname{xpdf}, \cmdname{gv}, and \cmdname{gsview}, have never suffered from this problem.) \item For consistency, the variables \envname{HOMETEXMF} and \envname{VARTEXMF} have been renamed to \envname{TEXMFHOME} and \envname{TEXMFSYSVAR}, respectively. There is also \envname{TEXMFVAR}, which is by default user-specific. See the first point above. \end{itemize} \subsection{Present} \label{tlcurrent} In 2006--2007, the major new addition to \TL{} was the Xe\TeX{} program, available as the \texttt{xetex} and \texttt{xelatex} programs; see \url{http://scripts.sil.org/xetex}. MetaPost also received a notable update, with more planned for the future (\url{http://tug.org/metapost/articles}), likewise pdf\TeX{} (\url{http://tug.org/applications/pdftex}) The \TeX\ \filename{.fmt} (high-speed format) and the similar files for MetaPost and \MF\ are now stored in subdirectories of \dirname{texmf/web2c}, instead of in the directory itself (although the directory is still searched, for the sake of existing \filename{.fmt}'s). The subdirectories are named for the `engine' in use, such as \filename{tex} or \filename{pdftex} or \filename{xetex}. This change should be invisible in normal use. The (plain) \texttt{tex} program no longer reads \texttt{\%\&} first lines to determine what format to run; it is the pure Knuthian \TeX. (\LaTeX\ and everything else do still read \texttt{\%\&} lines). The installation scripts now accept various environment variables to allow for non-interactive installation; see section~\ref{sec:noninteractive-install}. Of course the year also saw (the usual) hundreds of other updates to packages and programs. As usual, please check \acro{CTAN} (\url{http://www.ctan.org}) for updates. Internally, the source tree is now stored in Subversion, with a standard web interface for viewing the tree, as linked from our home page. Although not visible in the final distribution, we expect this will provide a stable development foundation for future years. Finally, in May 2006 Thomas Esser announced that he would no longer be updating te\TeX{} (\url{http://tug.org/tetex}). As a result, there was been a surge of interest in \TL{}, especially among \acro{GNU}/Linux distributors. (There is a new \texttt{tetex} installation scheme in \TL{}, which provides an approximate equivalent.) We hope this will eventually translate to improvements in the \TeX\ environment for everyone. \subsection{Future} \emph{\TL{} is not perfect!} (And never will be.) We intend to continue to release new versions, and would like to provide more help material, more utilities, more installation programs, and (of course) an ever-improved and better-checked tree of macros and fonts. This work is all done by hard-pressed volunteers in their limited spare time, and a great deal remains to be done. If you can help, please put your name forward. Please send corrections, suggestions, and offers of help to:\hfill\null \begin{quote} \email{tex-live@tug.org} \\ \url{http://tug.org/texlive} \end{quote} \medskip \noindent \textsl{Happy \TeX ing!}