diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-19 16:23:30 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-19 16:23:30 +0000 |
commit | 4af50c165d5181f9e1e28fc2070e4bc431f25e4d (patch) | |
tree | 353f91319f287c8ffc7feb6918ef0f01fb105687 /Master | |
parent | 96b0b0d816058a1ec98b27f72d6bd57a82e5bf5d (diff) |
more hints about tlmgr generate updmap and moving from release to release
git-svn-id: svn://tug.org/texlive/trunk@19806 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf/doc/texlive/texlive-en/archive/live-2010.tex | 3143 | ||||
-rw-r--r-- | Master/texmf/doc/texlive/texlive-en/archive/tex-live.sty-2010 | 493 | ||||
-rw-r--r-- | Master/texmf/doc/texlive/texlive-en/texlive-en.tex | 4 | ||||
-rwxr-xr-x | Master/texmf/scripts/texlive/tlmgr.pl | 16 |
4 files changed, 3647 insertions, 9 deletions
diff --git a/Master/texmf/doc/texlive/texlive-en/archive/live-2010.tex b/Master/texmf/doc/texlive/texlive-en/archive/live-2010.tex new file mode 100644 index 00000000000..1853db75ea7 --- /dev/null +++ b/Master/texmf/doc/texlive/texlive-en/archive/live-2010.tex @@ -0,0 +1,3143 @@ +% $Id: texlive-en.tex 19386 2010-07-11 23:38:12Z karl $ +% TeX Live documentation. Originally written by Sebastian Rahtz and +% Michel Goossens, now maintained by Karl Berry and others. +% Public domain. +% +\documentclass{article} +\let\tldocenglish=1 % for live4ht.cfg +\usepackage{tex-live} +\usepackage[latin1]{inputenc} % translators: use your preferred encodings. +\usepackage[T1]{fontenc} + +\begin{document} + +\title{% + {\huge \textit{The \TeX\ Live Guide}\\\smallskip}% + {\LARGE \textsf{\TL{} 2010}}% +} + +\author{Karl Berry, editor \\[3mm] + \url{http://tug.org/texlive/} + } + +\date{July 2010} + +\maketitle + +\begin{multicols}{2} +\tableofcontents +%\listoftables +\end{multicols} + +\section{Introduction} +\label{sec:intro} + +\subsection{\TeX\ Live and the \TeX\ Collection} + +This document describes the main features of the \TL{} software +distribution\Dash \TeX{} and related programs for \GNU/Linux +and other Unix flavors, \MacOSX, and Windows systems. + +You may have acquired \TL{} by downloading, or on the \TK{} \DVD, which +\TeX{} user groups distribute among their members, or in other ways. +Section \ref{sec:tl-coll-dists} briefly describes the contents of the +\DVD. Both \TL{} and the \TK{} are cooperative efforts by the \TeX{} +user groups. This document mainly describes \TL{} itself. + +\TL{} includes executables for \TeX{}, \LaTeXe{}, \ConTeXt, +\MF, \MP, \BibTeX{} and many other programs; an extensive collection +of macros, fonts and documentation; and support for typesetting in +many different scripts from around the world. + +For a brief summary of the major changes in this edition of \TL{}, +see the end of the document, section~\ref{sec:history} +(\p.\pageref{sec:history}). + +\subsection{Operating system support} +\label{sec:os-support} + +\TL{} contains binaries for many Unix-based platforms, including +\GNU/Linux, \MacOSX, and Cygwin. The included sources can be compiled +on platforms for which we do not provide binaries. + +As to Windows: only Windows 2000 and later are +supported. Windows~9\textit{x}, \acro{ME} and \acro{NT} have been +dropped. Because of this change, Windows requires much less special +treatment compared to the Unix systems. There are no special 64-bit +executables for Windows, but the 32-bit executables should run on 64-bit +systems. + +See section~\ref{sec:tl-coll-dists} for alternate solutions +for Windows and \MacOSX. + +\subsection{Basic installation of \protect\TL{}} +\label{sec:basic} + +You can install \TL{} either from \DVD{} or over the Internet +(\url{http://tug.org/texlive/acquire.html}). The net installer itself is +small, and downloads everything requested from the Internet. + +The \DVD{} installer lets you install to a local disk. You cannot run +\TL{} directly from the \TK{} \DVD{} (or a \DVD{} image), but you can +prepare a runnable installation on, e.g., a \acro{USB} stick (see +section~\ref{sec:portable-tl}). Installation is described in later +sections (\p.\pageref{sec:install}), but here is a quick start: + +\begin{itemize*} + +\item The installation script is named \filename{install-tl}. It can + operate in a ``wizard mode'' given the option \code{-gui=wizard} + (default for Windows), a text mode given \code{-gui=text} (default for + everything else), and an expert \GUI{} mode given \code{-gui=perltk}. + +\item One of the installed items is the `\TL\ Manager' program, + named \prog{tlmgr}. Like the installer, it can be used in both \GUI{} + mode and in text mode. You can use it to install and uninstall + packages and do various configuration tasks. + +\end{itemize*} + + +\htmlanchor{security} +\subsection{Security considerations} +\label{sec:security} + +To the best of our knowledge, the core \TeX\ programs themselves are +(and always have been) extremely robust. However, the contributed +programs in \TeX\ Live may not reach the same level, despite everyone's +best efforts. As always, you should be careful when running programs on +untrusted input; for maximum safety, use a new subdirectory. + +This need for care is especially urgent on Windows, since in general +Windows finds programs in the current directory before anything else, +regardless of the search path. This opens up a wide variety of possible +attacks. We have closed many holes, but undoubtedly some remain, +especially with third-party programs. Thus, we recommend checking for +suspicious files in the current directory, especially executables +(binaries or scripts). Ordinarily they should not be present, and +definitely should not normally be created by merely processing a document. + +Finally, \TeX\ (and its companion programs) are able to write files when +processing documents, a feature that can also be abused in a wide +variety of ways. Again, processing unknown documents in a new +subdirectory is the safest bet. + + +\subsection{Getting help} +\label{sec:help} + +The \TeX{} community is active and friendly, and most serious questions +end up getting answered. However, the support is informal, done by +volunteers and casual readers, so it's especially important that you do +your homework before asking. (If you prefer guaranteed commercial +support, you can forgo \TL{} completely and purchase a vendor's system; +\url{http://tug.org/interest.html#vendors} has a list.) + +Here is a list of resources, approximately in the order we recommend +using them: + +\begin{description} +\item [Getting Started] If you are new to \TeX, the web page +\url{http://tug.org/begin.html} gives a brief introduction to the system. + +\item [\TeX{} \acro{FAQ}] The \TeX{} \acro{FAQ} is a huge compendium + of answers to all sorts of questions, from the most basic to the + most arcane. It is included on \TL{} in + \OnCD{texmf-dist/doc/generic/FAQ-en/html/index.html}, and is available + on the Internet through \url{http://www.tex.ac.uk/faq}. Please + check here first. + +\item [\TeX{} Catalogue] If you are looking for a specific package, +font, program, etc., the \TeX{} Catalogue is the place to look. It is a +huge collection of all \TeX{}-related items. See +\url{http://www.ctan.org/help/Catalogue/}. + +\item [\TeX{} Web Resources] The web page +\url{http://tug.org/interest.html} has many \TeX{}-related links, in +particular for numerous books, manuals, and articles on all aspects of +the system. + +\item [support archives] The two principal support forums are the +Usenet newsgroup \url{news:comp.text.tex} and the mailing list +\email{texhax@tug.org}. Their archives have years of past +questions and answers for your searching pleasure, via +\url{http://groups.google.com/group/comp.text.tex/topics} and +\url{http://tug.org/mail-archives/texhax}, respectively. And a general web +search, for example on \url{http://google.com}, never hurts. + +\item [asking questions] If you cannot find an answer, you can post to +\dirname{comp.text.tex} through Google or your newsreader, or to +\email{texhax@tug.org} through email. But before you post, +\emph{please} read this \acro{FAQ} entry, to maximize +your chances of getting a useful answer: +\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}. + +\item [\TL{} support] If you want to report a bug or have +suggestions or comments on the \TL{} distribution, installation, or +documentation, the mailing list is \email{tex-live@tug.org}. However, +if your question is about how to use a particular program included in +\TL{}, please write to that program's maintainer or +mailing list. Often running a program with the \code{-{}-help} option +will provide a bug reporting address. + +\end{description} + +The other side of the coin is helping others who have questions. Both +\dirname{comp.text.tex} and \code{texhax} are open to anyone, so feel +free to join, start reading, and help out where you can. + + +% don't use \TL so the \uppercase in the headline works. Also so +% tex4ht ends up with the right TeX. Likewise the \protect's. +\section{Overview of \protect\TeX\protect\ Live} +\label{sec:overview-tl} + +This section describes the contents of \TL{} and the \TK{} of which it +is a part. + +\subsection{The \protect\TeX\protect\ Collection: \TL, pro\TeX{}t, Mac\TeX} +\label{sec:tl-coll-dists} + +The \TK{} \DVD{} comprises the following: + +\begin{description} + +\item [\TL] A complete \TeX{} system to be installed to disk. Its home +page is \url{http://tug.org/texlive/}. + +\item [Mac\TeX] for \MacOSX, this adds a native \MacOSX\ installer and other +Mac applications to \TL{}. Its home page is +\url{http://tug.org/mactex/}. + +\item [pro\TeX{}t] An enhancement of the \MIKTEX\ distribution for Windows, +\ProTeXt\ adds a few extra tools to \MIKTEX, and simplifies +installation. It is entirely independent of \TL{}, and has its own +installation instructions. The \ProTeXt\ home page is +\url{http://tug.org/protext}. + +\item [CTAN] A snapshot of the \CTAN{} repository (\url{http://www.ctan.org}). + +\item [\texttt{texmf-extra}] A directory with assorted additional packages. + +\end{description} + +\CTAN{}, \pkgname{protext}, and \dirname{texmf-extra} do not +necessarily follow the same copying conditions as \TL{}, so be careful +when redistributing or modifying. + + +\subsection{Top level \TL{} directories} +\label{sec:tld} + +Here is a brief listing and description of the top level directories in a +\TL{} installation. + +\begin{ttdescription} +\item[bin] The \TeX{} system programs, arranged by platform. +% +\item[readme-*.dir] Quick overview and useful links for \TL{}, +in various languages, in both \HTML{} and plain text. +% +\item[source] The source to all included programs, including the main + \Webc{}-based \TeX{} distributions. +% +\item[texmf] See \dirname{TEXMFMAIN} below. +% +\item[texmf-dist] See \dirname{TEXMFDIST} below. +% +\item[tlpkg] Scripts, programs and data for managing the + installation, and special support for Windows. +\end{ttdescription} + +In addition to the directories above, the installation scripts and +\filename{README} files (in various languages) are at the top level of +the distribution. + +For documentation, the comprehensive links in the top-level file +\OnCD{doc.html} may be helpful. The documentation for the programs +(manuals, man pages, Info files) is in \dirname{texmf/doc}. The +documentation for \TeX\ packages and formats is in +\dirname{texmf-dist/doc}. You can use the \cmdname{texdoc} program to +find any documentation wherever it is located. + +This \TL\ documentation itself is in \dirname{texmf/doc/texlive}, +available in several languages: + +\begin{itemize*} +\item{Czech/Slovak:} \OnCD{texmf/doc/texlive/texlive-cz} +\item{German:} \OnCD{texmf/doc/texlive/texlive-de} +\item{English:} \OnCD{texmf/doc/texlive/texlive-en} +\item{French:} \OnCD{texmf/doc/texlive/texlive-fr} +\item{Italian:} \OnCD{texmf/doc/texlive/texlive-it} +\item{Polish:} \OnCD{texmf/doc/texlive/texlive-pl} +\item{Russian:} \OnCD{texmf/doc/texlive/texlive-ru} +\item{Serbian:} \OnCD{texmf/doc/texlive/texlive-sr} +\item{Simplified Chinese:} \OnCD{texmf/doc/texlive/texlive-zh-cn} +\end{itemize*} + +\subsection{Overview of the predefined texmf trees} +\label{sec:texmftrees} + +This section lists the predefined variables specifying the texmf trees +used by the system, and their intended purpose, and the default layout +of \TL{}. The command \texttt{tlmgr~conf} shows the values of these +variables, so that you can easily find out how they map to particular +directories in your installation. + +\begin{ttdescription} +\item [TEXMFMAIN] The tree which holds vital parts of the + system such as configuration files, helper scripts, and program + documentation. +\item [TEXMFDIST] The tree which holds the main set of macro packages, + fonts, etc. +\item [TEXMFLOCAL] The tree which administrators can use for system-wide + installation of additional or updated macros, fonts, etc. +\item [TEXMFHOME] The tree which users can use for their own individual + installations of additional or updated macros, fonts, etc. + The expansion of this variable dynamically adjusts for each user to + their own individual directory. +\item [TEXMFCONFIG] The (personal) tree used by the utilities + \verb+texconfig+, \verb+updmap+, and \verb+fmtutil+ to store modified + configuration data. +\item [TEXMFSYSCONFIG] The (site-wide) tree used by the utilities + \verb+texconfig-sys+, \verb+updmap-sys+, and \verb+fmtutil-sys+ to + store modified configuration data. +\item [TEXMFVAR] The (personal) tree used by \verb+texconfig+, + \verb+updmap+ and \verb+fmtutil+ to store (cached) runtime data such + as format files and generated map files. Also used by \ConTeXt\ Mk\acro{IV}. +\item [TEXMFSYSVAR] The (site-wide) tree used by \verb+texconfig-sys+, + \verb+updmap-sys+ and \verb+fmtutil-sys+, and also by \verb+tlmgr+, to + store (cached) runtime data such as format files and generated map files. +\end{ttdescription} + +\noindent +The default layout is: +\begin{description} + \item[system-wide root] can span multiple \TL{} releases: + \begin{ttdescription} + \item[2009] A previous release. + \item[2010] The current release. + \begin{ttdescription} + \item [bin] ~ + \begin{ttdescription} + \item [i386-linux] \GNU/Linux binaries + \item [...] + \item [universal-darwin] \MacOSX\ binaries + \item [win32] Windows binaries + \end{ttdescription} + \item [texmf\ \ \ \ \ \ \ ] This is \envname{TEXMFMAIN}. + \item [texmf-dist\ \ ] \envname{TEXMFDIST} + \item [texmf-var \ \ ] \envname{TEXMFSYSVAR} + \item [texmf-config] \envname{TEXMFSYSCONFIG} + \end{ttdescription} + \item [texmf-local] \envname{TEXMFLOCAL}, intended to be + retained from release to release. + \end{ttdescription} + \item[user's home] (\texttt{\$HOME} or + \texttt{\%USERPROFILE\%}) + \begin{ttdescription} + \item[.texlive2009] Privately generated and configuration data + for a previous release. + \item[.texlive2010] Privately generated and configuration data + for the current release. + \begin{ttdescription} + \item [texmf-var\ \ \ ] \envname{TEXMFVAR} + \item [texmf-config] \envname{TEXMFCONFIG} + \end{ttdescription} + \item[texmf] \envname{TEXMFHOME} Personal macros, etc. + \end{ttdescription} +\end{description} + + +\subsection{Extensions to \protect\TeX} +\label{sec:tex-extensions} + +Knuth's original \TeX{} itself is frozen, apart from rare bug fixes. It +is still present in \TL\ as the program \prog{tex}, and will remain so +for the foreseeable future. \TL{} contains several extended versions of +\TeX: + +\begin{description} + +\item [\eTeX] adds a set of new primitives +\label{text:etex} (related to macro expansion, character scanning, +classes of marks, additional debugging features, and more) and the +\TeXXeT{} extensions for bidirectional typesetting. In default mode, +\eTeX{} is 100\% compatible with ordinary \TeX. See +\OnCD{texmf-dist/doc/etex/base/etex_man.pdf}. + +\item [pdf\TeX] builds on the \eTeX\ extensions, adding support for +writing \acro{PDF} output as well as \dvi{}, and many non-output-related +extensions. This is the program invoked for most formats, e.g., +\prog{etex}, \prog{latex}, \prog{pdflatex}. Its web site is +\url{http://www.pdftex.org/}. See +\OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf} for the manual, and +\OnCD{texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex} for example +usage of some of its features. + +\item [Lua\TeX] is the designated successor of pdf\TeX, +and is mostly (but not entirely) backward-compatible. It is also +intended to be a functional superset of Aleph (see below), though +technical compatibility is not intended. The incorporated Lua +interpreter (\url{http://www.lua.org/}) enables elegant solutions for +many thorny \TeX{} problems. When called as \filename{texlua}, it +functions as a standalone Lua interpreter, and is already used as such +within \TL. Its web site is \url{http://www.luatex.org/}, and the +reference manual is \OnCD{texmf-dist/doc/luatex/luatexref-t.pdf}. + +\item [\XeTeX] adds support for Unicode input and OpenType- and system +fonts, implemented using standard third-party libraries. See +\url{http://tug.org/xetex}. + +\item [\OMEGA\ (Omega)] is based on Unicode (16-bit characters), thus +supports working with almost all the world's scripts simultaneously. It +also supports so-called `\OMEGA{} Translation Processes' (\acro{OTP}s), +for performing complex transformations on arbitrary input. Omega is no +longer included in \TL{} as a separate program; only Aleph is provided: + +\item [Aleph] combines the \OMEGA\ and \eTeX\ extensions. +See \OnCD{texmf-dist/doc/aleph/base}. + +\end{description} + + +\subsection{Other notable programs in \protect\TL} + +Here are a few other commonly-used programs included in \TL{}: + +\begin{cmddescription} + +\item [bibtex, bibtex8] bibliography support. + +\item [makeindex, xindy] index support. + +\item [dvips] convert \dvi{} to \PS{}. + +\item [xdvi] \dvi{} previewer for the X Window System. + +\item [dvilj] \dvi{} drive for the HP LaserJet family. + +\item [dviconcat, dviselect] cut and paste pages +from \dvi{} files. + +\item [dvipdfmx] convert \dvi{} to \acro{PDF}, an alternative approach +to pdf\TeX\ (mentioned above). + +\item [psselect, psnup, \ldots] \PS{} utilities. + +\item [pdfjam, pdfjoin, \ldots] \acro{PDF} utilities. + +\item [texexec, texmfstart] Con\TeX{}t and \acro{PDF} processor. + +\item [tex4ht] \TeX{} to \acro{HTML} (and \acro{XML} and more) converter. + +\end{cmddescription} + + +\subsection{Fonts in \protect\TL} +\label{sec:tl-fonts} + +\TL{} comes with many high-quality scalable fonts. See +\url{http://tug.org/fonts} and +\OnCD{texmf-dist/doc/fonts/free-math-font-survey}. + + +\section{Installation} +\label{sec:install} + +\subsection{Starting the installer} +\label{sec:inst-start} + +To begin, get the \TK{} \DVD{} or download the \TL{} net installer, +and locate the installer script: \filename{install-tl} for Unix, +\filename{install-tl.bat} for Windows. + +\begin{description} +\item [Net installer:] Download from \CTAN, under +\dirname{systems/texlive/tlnet}; the url +\url{http://mirror.ctan.org/systems/texlive/tlnet} will automatically +redirect to a nearby, up-to-date, mirror. You can retrieve either +\filename{install-tl.zip} which can be used under Unix and Windows, or +the considerably smaller \filename{install-unx.tar.gz} for Unix +only. After unpacking, \filename{install-tl} and +\filename{install-tl.bat} will be in the \dirname{install-tl} +subdirectory. + +\item [\TeX{} Collection \DVD:] go to its \dirname{texlive} +subdirectory. Under Windows, the installer normally starts automatically +when you insert the \DVD. You can get the \DVD\ by becoming a member of +a \TeX\ user group (highly recommended, +\url{http://tug.org/usergroups.html}), or purchasing it separately +(\url{http://tug.org/store}), or burning your own from the \ISO\ +image. + +\end{description} + +See \url{http://tug.org/texlive/acquire.html} for more information and +other methods of getting the software. + +The following sections explain installer start-up in more detail. + +\subsubsection{Unix} + +\noindent +Below, \texttt{>} denotes the shell prompt; user input is +\Ucom{\texttt{bold}}. +The script \filename{install-tl} is a Perl script. The simplest way +to start it on a Unix-compatible system is as follows: +\begin{alltt} +> \Ucom{cd /path/to/installer} +> \Ucom{perl install-tl} +\end{alltt} +(Or you can invoke \Ucom{perl /path/to/installer/install-tl}, or +\Ucom{./install-tl} if it stayed executable, etc.; we won't repeat all +these variations.) You may have to enlarge your terminal window so +that it shows the full text installer screen (Figure~\ref{fig:text-main}). + +To install in expert \GUI\ mode (figure~\ref{fig:gui-main}), you'll +need the \dirname{Perl/TK} module compiled with \acro{XFT} support, +which is generally the case with \GNU/Linux, but not necessarily other +systems. Given that, you can run: +\begin{alltt} +> \Ucom{perl install-tl -gui} +\end{alltt} + +For a complete listing of the various options: +\begin{alltt} +> \Ucom{perl install-tl -help} +\end{alltt} + +\textbf{Warning about Unix permissions:} Your \code{umask} at the time +of installation will be respected by the \TL{} installer. Therefore, if +you want your installation to be usable by users other than you, make +sure your setting is sufficiently permissive, for instance, \code{umask +002}. For more information about \code{umask}, consult your system +documentation. + +\textbf{Special considerations for Cygwin:} Unlike other +Unix-compatible systems, Cygwin does not by default include all of the +prerequisite programs needed by the \TL{} installer. See +Section~\ref{sec:cygwin} for details. + + +\subsubsection{MacOSX} + +As mentioned in section~\ref{sec:tl-coll-dists}, a separate distribution +is prepared for \MacOSX, named Mac\TeX\ (\url{http://tug.org/mactex}). +We recommend using the native Mac\TeX\ installer instead of the \TL\ +installer on \MacOSX, because the native installer makes a few +Mac-specific adjustments, in particular to allow easily switching +between the various \TeX\ distributions for \MacOSX\ (Mac\TeX, Fink, +MacPorts, \ldots). + +Mac\TeX\ is firmly based on \TL, and the main \TeX\ trees are precisely +the same. It does add a few extra folders with Mac-specific +documentation and applications. + + +\subsubsection{Windows} + +If you are using the net installer, or the \DVD\ installer failed to +start automatically, double-click \filename{install-tl.bat}. +For more customization options, e.g., selection of specific package +collections, run \filename{install-tl-advanced.bat} instead. + +You can also start the installer from the command-prompt. Below, +\texttt{>} denotes the prompt; user input is \Ucom{\texttt{bold}}. If +you are in the installer directory, run just: +\begin{alltt} +> \Ucom{install-tl} +\end{alltt} + +Or you can invoke it with an absolute location, such as: +\begin{alltt} +> \Ucom{D:\bs{}texlive\bs{}install-tl} +\end{alltt} +for the \TK\ \DVD, supposing that \dirname{D:} is the optical +drive. Figure~\ref{fig:wizard-w32} displays the wizard installer, which +is the default for Windows. + +To install in text mode, use: +\begin{alltt} +> \Ucom{install-tl -no-gui} +\end{alltt} + +For a complete listing of the various options: +\begin{alltt} +> \Ucom{install-tl -help} +\end{alltt} + +\begin{figure}[tb] +\begin{boxedverbatim} +Installing TeX Live 2010 from: ... +Platform: i386-linux => 'Intel x86 with GNU/Linux' +Distribution: inst (compressed) +... + Detected platform: Intel x86 with GNU/Linux + + <B> binary systems: 1 out of 19 + + <S> Installation scheme (scheme-full) + 84 collections out of 85, disk space required: 2256 MB + + Customizing installation scheme: + <C> standard collections + <L> language collections + + <D> directories: + TEXDIR (the main TeX directory): + /usr/local/texlive/2010 + ... + + <O> options: + [ ] use letter size instead of A4 by default + [X] allow execution of restricted list of programs via \write18 + ... + +Actions: + <I> start installation to hard disk + <H> help + <Q> quit +\end{boxedverbatim} +\caption{Main text installer screen (\GNU/Linux)}\label{fig:text-main} +\end{figure} + +\begin{figure}[tb] +\tlpng{install-lnx-main}{\linewidth,trim=10 4 0 20,clip} +\caption{Expert \GUI{} installer screen (\GNU/Linux)}\label{fig:gui-main} +\end{figure} + +\begin{figure}[tb] +\tlpng{wizard-w32}{\linewidth,trim=0 4 0 0,clip} +\caption{Wizard installer screen (Windows)}\label{fig:wizard-w32} +\end{figure} + + +\htmlanchor{cygwin} +\subsubsection{Cygwin} +\label{sec:cygwin} + +The \TL{} installer supports only Cygwin 1.7. +Before beginning the installation, use Cygwin's \filename{setup.exe} program to +install the \filename{perl} and \filename{wget} packages if you have +not already done so. The following additional packages are +recommended: +\begin{itemize*} +\item \filename{fontconfig} [needed by \XeTeX] +\item \filename{ghostscript} [needed by various utilities] +\item \filename{libXaw7} [needed by \code{xdvi}] +\item \filename{ncurses} [provides the \code{clear} command used by the installer] +\end{itemize*} + + +\subsubsection{The text installer} + +Figure~\ref{fig:text-main} displays the main text mode screen under +Unix. The text installer is the default on Unix. + +This is only a command-line installer; there is no cursor support at +all. For instance, you cannot tab around checkboxes or input fields. +You just type something (case-sensitive) at the prompt and press the +Enter key, and then the entire terminal screen will be rewritten, with +adjusted content. + +The text installer interface is this primitive for a reason: it +is designed to run on as many platforms as possible, even with a +very barebones Perl. + +\subsubsection{The expert graphical installer} + +Figure~\ref{fig:gui-main} displays the expert graphical installer under +\GNU/Linux. Other than using buttons and menus, this does +not differ much from the text installer. + +This mode can be invoked explicitly with +\begin{alltt} +> \Ucom{install-tl -gui=perltk} +\end{alltt} + + +\subsubsection{The simple wizard installer} + +Under Windows, the default is to run the simplest installation method we +could devise, called the ``wizard'' installer +(figure~\ref{fig:wizard-w32}). It installs everything and asks almost +no questions. If you want to customize your setup, you should run one +of the other installers. + +This mode can be invoked explicitly with +\begin{alltt} +> \Ucom{install-tl -gui=wizard} +\end{alltt} + + +\subsection{Running the installer} +\label{sec:runinstall} + +The installer is intended to be mostly self-explanatory, but following are a +few notes about the various options and submenus. + +\subsubsection{Binary systems menu (Unix only)} +\label{sec:binary} + +\begin{figure}[tb] +\begin{boxedverbatim} +Available sets of binaries: +=============================================================================== + a [ ] alpha-linux DEC Alpha with GNU/Linux + b [ ] amd64-freebsd x86_64 with FreeBSD + c [ ] amd64-kfreebsd x86_64 with GNU/FreeBSD + d [ ] i386-cygwin Intel x86 with Cygwin + e [ ] i386-freebsd Intel x86 with FreeBSD + f [ ] i386-kfreebsd Intel x86 with GNU/FreeBSD + g [X] i386-linux Intel x86 with GNU/Linux + h [ ] i386-netbsd Intel x86 with NetBSD + i [ ] i386-solaris Intel x86 with Solaris + j [ ] mips-irix SGI IRIX + k [ ] powerpc-aix PowerPC with AIX + l [ ] powerpc-linux PowerPC with GNU/Linux + m [ ] sparc-linux Sparc with GNU/Linux + o [ ] sparc-solaris Sparc with Solaris + p [ ] universal-darwin universal binaries for MacOSX/Darwin + s [ ] win32 Windows + t [ ] x86_64-darwin x86_64 with MacOSX/Darwin + u [ ] x86_64-linux x86_64 with GNU/Linux + v [ ] x86_64-solaris x86_64 with Solaris +\end{boxedverbatim} +\caption{Binaries menu}\label{fig:bin-text} +\end{figure} + +Figure~\ref{fig:bin-text} displays the text mode binaries menu. By +default, only the binaries for your current platform will be installed. +From this menu, you can select installation of binaries for other +platforms as well. This can be useful if you are sharing a \TeX\ +tree across a network of heterogenous machines, or for a dual-boot +system. + +\subsubsection{Selecting what is going to be installed} +\label{sec:components} + +\begin{figure}[tbh] +\begin{boxedverbatim} +Select a scheme: +=============================================================================== + a [ ] basic scheme (plain and LaTeX) + b [ ] ConTeXt scheme + c [X] full scheme (everything) + d [ ] GUST TeX Live scheme + e [ ] medium scheme (plain, latex, recommended packages, some languages) + f [ ] minimal scheme (plain only) + g [ ] teTeX scheme (more than medium, but nowhere near full) + h [ ] XML scheme + i [ ] custom selection of collections +\end{boxedverbatim} +\caption{Scheme menu}\label{fig:scheme-text} +\end{figure} + +Figure~\ref{fig:scheme-text} displays the \TL\ scheme menu; from here, +you choose a ``scheme'', which is an overall set of package collections. +The default \optname{full} scheme installs everything available. This +is recommended, but you can also choose the \optname{basic} scheme for a +small system, \optname{minimal} for testing purposes, and +\optname{medium} or \optname{teTeX} to get something in between. There +are also various specialized and country-specific schemes. + +\begin{figure}[tb] +\tlpng{stdcoll}{.7\linewidth,trim=0 4 0 0,clip} +\caption{Collections menu}\label{fig:collections-gui} +\end{figure} + +You can refine your scheme selection with the `standard collections' and +`language collections' menus (figure~\ref{fig:collections-gui}, shown in +\GUI\ mode for a change). + +Collections are one level more detailed than schemes\Dash in essence, a +scheme consists of several collections, a collection consists of one or +more packages, and a package (the lowest level grouping in \TL) contains +the actual \TeX\ macro files, font files, and so on. + +If you want more control than the collection menus provide, you can use +the \TeX\ Live Manager (\prog{tlmgr}) program after installation (see +section~\ref{sec:tlmgr}); using that, you can control the installation +at the package level. + +\subsubsection{Directories} +\label{sec:directories} + +The default layout is described in section~\ref{sec:texmftrees}, +\p.\pageref{sec:texmftrees}. The default location of +\dirname{TEXDIR} is \dirname{/usr/local/texlive/2010} on Unix +and |%SystemDrive%\texlive\2010| on Windows. + +The main reason to change this default is if you lack write permission +for the default location. You don't have to be root or administrator to +install \TL, but you do need write access to the target directory. + +A reasonable alternative choice is a directory under your home directory, +especially if you will be the sole user. Use +`|~|' to indicate this, as in `|~/texlive/2010|'. + +We recommend including the year in the name, to enable keeping different +releases of \TL{} side by side. (You may wish to make a +version-independent name such as \dirname{/usr/local/texlive-cur} via a +symbolic link, which you can then update after testing the new release.) + +Changing \dirname{TEXDIR} in the installer will also change +\dirname{TEXMFLOCAL}, \dirname{TEXMFSYSVAR} and +\dirname{TEXMFSYSCONFIG}. + +\dirname{TEXMFHOME} is the recommended location for personal +macro files or packages. The default value is |~/texmf|. In +contrast to \dirname{TEXDIR}, here a |~| is preserved in the +newly-written configuration files, since it usefully refers to the home +directory of any individual running \TeX. It expands to +\dirname{$HOME} on Unix and \verb|%USERPROFILE%| on Windows. + +\dirname{TEXMFVAR} is the location for storing cached runtime data +specific to each user, including the \ConTeXt\ Mk\acro{IV} cache. + + +\subsubsection{Options} +\label{sec:options} + +\begin{figure}[tbh] +\begin{boxedverbatim} +Current options setup: +=============================================================================== + <P> use letter size instead of A4 by default: [ ] + <E> execution of restricted list of programs: [X] + <F> create format files: [X] + <D> install font/macro doc tree: [X] + <S> install font/macro source tree: [X] + <L> create symlinks in standard directories: [ ] + binaries to: + manpages to: + info to: +\end{boxedverbatim} +\caption{Options menu (Unix)}\label{fig:options-text} +\end{figure} + +Figure~\ref{fig:options-text} shows the text mode options menu. +More info on each: + +\begin{description} +\item[use letter size instead of A4 by default:] The default paper + size selection. Of course, individual documents can and should + specify a specific paper size, if desired. + +\item[execution of restricted list of programs:] As of \TL\ 2010, + execution of a few external programs is allowed by default. The (very + short) list of allowed programs is given in the \filename{texmf.cnf}. + See the 2010 news (section~\ref{sec:2010news}) for more details. + +\item[create format files:] Although unnecessary format files + take time to generate and disk space to store, it is still recommended + to leave this option checked: if you don't, then format files will be + generated in people's private \dirname{TEXMFVAR} tree as they are + needed. In that location, they will not be updated automatically if + (say) binaries or hyphenation patterns are updated in the + installation, and thus could end up with incompatible format files. + +\item[install font/macro \ldots\ tree:] These options allow you to omit + downloading/installing the documentation and source files present in + most packages. Not recommended. + +\item[create symlinks in standard directories] (Unix only): + This option bypasses the need to change environment variables. Without + this option, \TL{} directories usually have to be added to + \envname{PATH}, \envname{MANPATH} and \envname{INFOPATH}. You will + need write permissions to the target directories. It is strongly + advised \emph{not} to overwrite a \TeX\ system that came with your + system with this option. It is intended primarily for accessing the + \TeX\ system through directories that are already known to users, such + as \dirname{/usr/local/bin}, which don't already contain any \TeX\ + files. +\end{description} + +When all the settings are to your liking, you can type `I' to start the +installation process. When it is done, skip to +section~\ref{sec:postinstall} to read what else needs to be done, if +anything. + +\subsection{Command-line install-tl options} +\label{sec:cmdline} + +Type +\begin{alltt} +> \Ucom{install-tl -help} +\end{alltt} +for a listing of command-line options. Either |-| or |--| can be used +to introduce option names. These are the most common ones: + +\begin{ttdescription} +\item[-gui] If possible, use the \GUI{} installer. This requires the + Perl/Tk module (\url{http://tug.org/texlive/distro.html#perltk}) + compiled with \acro{XFT} support; if Perl/Tk is not available, + installation continues in text mode. + +\item[-no-gui] Force using the text mode installer, even under + Windows; you'll need this if you want a `from \DVD' installation, + since that is not available in \GUI{} mode. + +\item[-lang {\sl LL}] Specify the installer interface + language as its standard two-letter code \textsl{\acro{LL}}. Currently + supported languages: + \texttt{cs} (Czech), + \texttt{de} (German), + \texttt{en} (English, default) + \texttt{fr} (French), + \texttt{it} (Italian), + \texttt{ja} (Japanese), + \texttt{nl} (Dutch), + \texttt{pl} (Polish), + \texttt{ru} (Russian), + \texttt{sk} (Slovak), + \texttt{sl} (Slovenian), + \texttt{sr} (Serbian), + \texttt{vi} (Vietnamese), + \texttt{zh-cn} (Simplified Chinese), + \texttt{zh-tw} (Traditional Chinese). + The installer tries to automatically determine the right + language but if it fails, or if the right language is not + available, then it uses English as a fallback. + +\item[-portable] Install for portable use on a \acro{USB} stick + or \DVD. This option minimizes impact on the host system, making \TL{} + self-contained in a single directory. See also + section~\ref{sec:portable-tl} for more details on portable usage. + +\item[-profile {\sl file}] The installer always writes a file + \filename{texlive.profile} to the \dirname{tlpkg} subdirectory of your + installation. This option tells the installer to re-use such a + profile file, so you can install in batch mode on subsequent systems, + reproducing the choices you made in a prior installation. + +\item [-repository {\sl url-or-directory}] Specify package + repository from which to install; see following. +\end{ttdescription} + +\subsubsection{The \optname{-repository} option} +\label{sec:location} + +The default package repository is a \CTAN{} mirror chosen automatically +via \url{http://mirror.ctan.org}. + +If you want to override that, the location value can be a url starting +with \texttt{ftp:}, \texttt{http:}, or \texttt{file:/}, or a plain +directory path. (When giving an \texttt{http:}\ or \texttt{ftp:}\ +location, trailing `\texttt{/}' characters and/or a trailing +`\texttt{/tlpkg}' component are ignored.) + +For example, you could choose a particular \CTAN\ mirror with something +like: \url{http://ctan.example.org/tex-archive/systems/texlive/tlnet/}, +substituting a real hostname and its particular top-level \CTAN\ path +for |ctan.example.org/tex-archive|. The list of \CTAN\ mirrors is +maintained at \url{http://ctan.org/mirrors}. + +If the given argument is local (either a path or a \texttt{file:/} url), +compressed files in an \dirname{archive} subdirectory of the repository +path are used (even if uncompressed files are available as well). + + +\subsection{Post-install actions} +\label{sec:postinstall} + +Some post-install may be required. + +\subsubsection{Windows} + +But on Windows, the installer takes care of everything. + +\subsubsection{If symlinks were created} + +If you elected to create symlinks in standard directories (mentioned in +section~\ref{sec:options}), then there is no need to edit environment +variables. + +\subsubsection{Environment variables for Unix} +\label{sec:env} + +The directory of the binaries for your platform must be added to +the search path. Each supported platform has its own subdirectory +under \dirname{TEXDIR/bin}. See figure~\ref{fig:bin-text} for the +list of subdirectories and corresponding platforms. + +You can also add the documentation man and Info directories to their +respective search paths, if you want the system tools to find them. +The man pages might be found automatically after the addition to +\envname{PATH}. + +For Bourne-compatible shells such as \prog{bash}, and using Intel x86 +GNU/Linux and a default directory setup as an example, the file to edit +might be \filename{$HOME/.profile} (or another file sourced by +\filename{.profile}, and the lines to add would look like this: + +\begin{sverbatim} +PATH=/usr/local/texlive/2010/bin/i386-linux:$PATH; export PATH +MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH +INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH +\end{sverbatim} + +For csh or tcsh, the file to edit is typically \filename{$HOME/.cshrc}, and +the lines to add might look like: + +\begin{sverbatim} +setenv PATH /usr/local/texlive/2010/bin/i386-linux:$PATH +setenv MANPATH /usr/local/texlive/2010/texmf/doc/man:$MANPATH +setenv INFOPATH /usr/local/texlive/2010/texmf/doc/info:$INFOPATH +\end{sverbatim} + +If you already have settings somewhere in your ``dot'' files, naturally +the \TL\ directories should simply be merged in as appropriate. + +\subsubsection{Environment variables: global configuration} +\label{sec:envglobal} + +If you want to make these changes globally, or for a user newly added to +the system, then you are on your own; there is just too much variation +between systems in how and where these things are configured. + +Our two hints are: 1)~you may want to check for a file +\filename{/etc/manpath.config} and, if present, add lines such as + +\begin{sverbatim} +MANPATH_MAP /usr/local/texlive/2010/bin/i386-linux \ + /usr/local/texlive/2010/texmf/doc/man +\end{sverbatim} + +And 2)~check for a file \filename{/etc/environment} which may define the +search path and other default environment variables. + +In each (Unix) binary directory, we also create a symbolic link named +\code{man} to the directory \dirname{texmf/doc/man}. Some \code{man} +programs, such as the standard \MacOSX\ \code{man}, will automatically +find that, obviating the need for any man page setup. + + +\htmlanchor{xetexfontconfig} +\subsubsection{Font configuration for \XeTeX} +\label{sec:font-conf-xetex} + +If you have installed the \filename{xetex} package on a Unix-compatible +system, you need to configure your system if you want \XeTeX\ to be able +to find the fonts shipped with \TL. To facilitate this, when the +\pkgname{xetex} package is installed (either at initial installation or +later), the necessary configuration file is created in +\filename{TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf}. + +To set up the \TL{} fonts for system-wide use (assuming you have +suitable privileges), proceed as follows: +\begin{enumerate*} +\item Copy the \filename{texlive-fontconfig.conf} file to +\dirname{/etc/fonts/conf.d/09-texlive.conf}. +\item Run \Ucom{fc-cache -fsv}. +\end{enumerate*} + +If you do not have sufficient privileges to carry out the steps above, +you can instead do the following to make the \TL{} fonts available +to you as an individual \XeTeX{} user: +\begin{enumerate*} +\item Copy the \filename{texlive-fontconfig.conf} file to + \filename{~/.fonts.conf}, where \filename{~} is your home directory. +\item Run \Ucom{fc-cache -fv}. +\end{enumerate*} + + +\subsubsection{\ConTeXt{} Mark IV} +\label{sec:context-mkiv} + +The `old' \ConTeXt{} (Mark \acro{II}) should run out of the box after +\TL{} installation. The `new' Lua\TeX-based \ConTeXt{} Mark \acro{IV} +requires manual setup. After installation, each Mk\acro{IV} user must +run: +\begin{sverbatim} +luatools --generate +context --make +\end{sverbatim} +The resulting files are stored under \code{TEXMFVAR}. + +For more information, see +\url{http://wiki.contextgarden.net/Running_Mark_IV} and +\url{http://wiki.contextgarden.net/TeX_Live_2010}. + + +\subsubsection{Integrating local and personal macros} +\label{sec:local-personal-macros} + +This is already mentioned implicitly in section~\ref{sec:texmftrees}: +\dirname{TEXMFLOCAL} (by default, +\dirname{/usr/local/texlive/texmf-local} or +\verb|%SystemDrive%\texlive\texmf-local|) +is intended for system-wide local fonts and macros; and +\dirname{TEXMFHOME} (by default, \dirname{$HOME/texmf} or +\verb|%USERPROFILE%\texmf|), is for personal fonts and macros. These +directories are intended to stick around from release to release, and +have their content seen automatically by a new \TL{} release. +Therefore, it is best to refrain from changing the definition of +\dirname{TEXMFLOCAL} to be too far away from the main \TL{} directory, +or you will need to manually change future releases. + +For both trees, files should be placed in their proper subdirectories; +see \url{http://tug.org/tds} or consult +\filename{texmf/web2c/texmf.cnf}. For instance, a \LaTeX{} class file or +package should be placed in \dirname{TEXMFLOCAL/tex/latex} or +\dirname{TEXMFHOME/tex/latex}, or a subdirectory thereof. + +\dirname{TEXMFLOCAL} requires an up-to-date filename database, or files +will not be found. You can update it with the command +\cmdname{mktexlsr} or use the `Reinit file database' button on the +configuration tab of the \TeX\ Live Manager \GUI. + +\subsubsection{Integrating third-party fonts} + +This is unfortunately a messy topic. Forget about it unless you want to +delve into many details of the \TeX{} installation. Don't forget to +check first what you get for free: see section~\ref{sec:tl-fonts}. + +A possible alternative is to use \XeTeX\ or Lua\TeX\ (see +section~\ref{sec:tex-extensions}), which let you use operating system +fonts without any installation in \TeX. + +If you do need to do this, see +\url{http://tug.org/fonts/fontinstall.html} for our best effort at +describing the procedure. + + +\subsubsection{Increasing maximum memory on Windows and Cygwin} +\label{sec:cygwin-maxmem} + +Windows and Cygwin (see section~\ref{sec:cygwin} for Cygwin installation +specifics) users may find that they run out of memory when running some +of the programs shipped with \TL. For example, \prog{asy} might run out +of memory if you try to allocate an array of 25,000,000 reals, and +Lua\TeX\ might run out of memory if you try to process a document with a +lot of big fonts. + +For Cygwin, you can increase the amount of available memory by following +the instructions in the Cygwin User's Guide +(\url{http://www.cygwin.com/cygwin-ug-net/setup-maxmem.html}). + +For Windows, you have to create a file, say \code{moremem.reg}, with +these four lines: + +\begin{sverbatim} +Windows Registry Editor Version 5.00 + +[HKEY_LOCAL_MACHINE\Software\Cygwin] +"heap_chunk_in_mb"=dword:ffffff00 +\end{sverbatim} + +\noindent and then execute the command \code{regedit /s moremem.reg} as +administrator. (If you want to change memory only for the current user +instead of system-wide, use \code{HKEY\_CURRENT\_USER}.) + + +\subsection{Testing the installation} +\label{sec:test-install} + +After installing \TL{} as best you can, you naturally want to test +it out, so you can start creating beautiful documents and\slash or fonts. + +This section gives some basic procedures for testing that the new system +is functional. We give Unix commands here; under \MacOSX{} and Windows, +you're more likely to run the tests through a graphical interface, but +the principles are the same. + +\begin{enumerate} + +\item Make sure that you can run the \cmdname{tex} program in the first +place: +\begin{alltt} +> \Ucom{tex -{}-version} +TeX 3.1415926 (TeX Live 2010) +kpathsea version 6.0.0 +Copyright 2010 D.E. Knuth. +... +\end{alltt} +If this comes back with `command not found' instead of version and +copyright information, or with an older version, most likely you don't +have the correct \dirname{bin} subdirectory in your \envname{PATH}. See +the environment-setting information on \p.\pageref{sec:env}. + +\item Process a basic \LaTeX{} file: +\begin{alltt} +> \Ucom{latex sample2e.tex} +pdfTeX 3.1415926-1.40.11-2.2 (TeX Live 2010) +... +Output written on sample2e.dvi (3 pages, 7484 bytes). +Transcript written on sample2e.log. +\end{alltt} +If this fails to find \filename{sample2e.tex} or other files, most +likely you have interference from old environment variables or +configuration files; we recommend unsetting all \TeX-related environment +variables for a start. (For a deep analysis, you can ask \TeX{} to +report on exactly what it is searching for, and finding; see ``Debugging +actions'' on page~\pageref{sec:debugging}.) + +\item Preview the result online: +\begin{alltt} +> \Ucom{xdvi sample2e.dvi} # Unix +> \Ucom{dviout sample2e.dvi} # Windows +\end{alltt} +You should see a new window with a nice document explaining some of the +basics of \LaTeX{}. (Well worth reading, by the way, if you're new to +\TeX.) You do have to be running under X for \cmdname{xdvi} to work; if +you're not, or your \envname{DISPLAY} environment variable is set +incorrectly, you'll get an error \samp{Can't open display}. + +\item Create a \PS{} file for printing or display: +\begin{alltt} +> \Ucom{dvips sample2e.dvi -o sample2e.ps} +\end{alltt} + +\item Create a \acro{PDF} file instead of \dvi{}; this processes the +\filename{.tex} file and writes \acro{PDF} directly: +\begin{alltt} +> \Ucom{pdflatex sample2e.tex} +\end{alltt} + +\item Preview the \acro{PDF} file: +\begin{alltt} +> \Ucom{gv sample2e.pdf} +\textrm{or:} +> \Ucom{xpdf sample2e.pdf} +\end{alltt} +Neither \cmdname{gv} nor \cmdname{xpdf} are included in \TL{}, so you +must install them separately. See \url{http://www.gnu.org/software/gv} +and \url{http://www.foolabs.com/xpdf}, respectively. There are plenty +of other \acro{PDF} viewers, too. For Windows, we recommend trying +Sumatra PDF (\url{http://blog.kowalczyk.info/software/sumatrapdf}). + +\item Standard test files you may find useful in addition to +\filename{sample2e.tex}: + +\begin{ttdescription} +\item [small2e.tex] A simpler document than \filename{sample2e}, to +reduce the input size if you're having troubles. +\item [testpage.tex] Test if your printer introduces any offsets. +\item [nfssfont.tex] For printing font tables and tests. +\item [testfont.tex] Also for font tables, but using plain \TeX{}. +\item [story.tex] The most canonical (plain) \TeX{} test file of all. +You must type \samp{\bs bye} to the \code{*} prompt after \samp{tex +story.tex}. +\end{ttdescription} + +\item If you have installed the \filename{xetex} package, you can test +its access to system fonts as follows: +\begin{alltt} +> \Ucom{xetex opentype-info.tex} +This is XeTeX, Version 3.1415926\dots +... +Output written on opentype-info.pdf (1 page). +Transcript written on opentype-info.log. +\end{alltt} +If you get an error message saying ``Invalid fontname `Latin Modern +Roman/ICU'\dots'', then you need to configure your system so that +\XeTeX{} can find the fonts shipped with \TL. See +Section~\ref{sec:font-conf-xetex}. + +\end{enumerate} + +\subsection{Links for additional downloadable software} + +If you are new to \TeX{}, or otherwise need help with actually writing +\TeX{} or \LaTeX{} documents, please visit +\url{http://tug.org/begin.html} for some introductory resources. + +Links for some other tools you may consider installing: +\begin{description} +\item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} +\item[Perl] \url{http://www.perl.org/} with + supplementary packages from \acro{CPAN}, \url{http://www.cpan.org/} +\item[ImageMagick] \url{http://www.imagemagick.com}, for graphics + processing and conversion +\item[NetPBM] \url{http://netpbm.sourceforge.net/}, also for graphics. + +\item[\TeX-oriented editors] There is a wide choice, and it is a matter of the + user's taste. Here is a selection in alphabetical order (a few + here are for Windows only). + \begin{itemize*} + \item \cmdname{GNU Emacs} is available natively under Windows, see + \url{http://www.gnu.org/software/emacs/windows/ntemacs.html}. + \item \cmdname{Emacs} with Auc\TeX\ for Windows is available in + the directory \path{tlpkg/support} on the \TL \DVD; its home + page is \url{http://www.gnu.org/software/auctex}. + \item \cmdname{LEd} is available from \url{http://www.ctan.org/support/LEd}. + \item \cmdname{SciTE} is available from + \url{http://www.scintilla.org/SciTE.html}. + \item \cmdname{Texmaker} is free software, available from + \url{http://www.xm1math.net/texmaker/}. + \item \cmdname{TeXnicCenter} is free software, available from + \url{http://www.texniccenter.org} and in the pro\TeX{}t distribution. + \item \cmdname{TeXworks} is free software, available from + \url{http://tug.org/texworks} and installed for Windows and + \MacOSX\ as part of \TL. + \item \cmdname{Vim} is free software, available from + \url{http://www.vim.org}. + \item \cmdname{WinEdt} is shareware available though + \url{http://tug.org/winedt} or \url{http://www.winedt.com}. + \item \cmdname{WinShell} is available from \url{http://www.winshell.de}. + \end{itemize*} +\end{description} +For a much longer list of packages and programs, see +\url{http://tug.org/interest.html}. + + + +\section{Network installations} +\label{sec:netinstall} + +\TL{} has been designed to be sharable between different users on one +system, and/or between different systems on a network. With a standard +directory layout, no hard paths are configured: the locations for files +needed by \TL{} programs are found relative to the programs. You can +see this in the principal configuration file +\filename{$TEXMFMAIN/web2c/texmf.cnf}, which contains lines such as +\begin{sverbatim} +TEXMFMAIN = $SELFAUTOPARENT/texmf +... +TEXMFLOCAL = $SELFAUTOPARENT/../texmf-local +\end{sverbatim} +This means that adding the directory for \TL{} executables for their +platform to their search path is sufficient to get a working setup. + +By the same token, you can also install \TL{} locally and then move +the entire hierarchy afterwards to a network location. + +For Windows, a sample network installation script named +\filename{w32client} can be downloaded through +\url{http://tug.org/texlive/w32client.html}. It creates settings and +menu shortcuts for using an existing \TL{} installation on a \acro{LAN}. +It also registers an uninstaller \filename{w32unclient}, available +in the same zip file. See the web page for more information. + + +\htmlanchor{tlportable} +\section{Maximally portable \protect\TL{} on DVD and USB} +\label{sec:portable-tl} + +To use \TL{} in a ``portable'' way, minimizing impact on the host +system, you should first install \TL{} to a \acro{USB} stick using the +\optname{-portable} option of the installer (see +section~\ref{sec:cmdline}). Then you can run the \filename{tl-portable} +script (Unix) or \filename{tl-portable.bat} batch file (Windows) from +the resulting installation root to start up a shell. + +You could also burn the resulting contents of the stick back to \DVD{} +if that is more convenient to (for example) give to others. + +When the \filename{tl-portable} script is run from a \DVD{} for the +first time, some files will be generated on the host system in a +directory \dirname{~/.tlportable2010}, which will take some time. On +subsequent runs, though, it will start quickly. + +The rest of the system will be unaware of \TL. If you want your editor +to be aware of this \TL, then you should start it from a second, +parallel, such \filename{tl-portable} session. + + +\section{\cmdname{tlmgr}: Managing your installation} +\label{sec:tlmgr} + +\begin{figure}[tb] +\tlpng{tlmgr-gui}{\linewidth} +\caption{\prog{tlmgr} in \GUI\ mode: main window, after `Load'.} +\label{fig:tlmgr-gui} +\end{figure} + +\begin{figure}[tb] +\hbox to \hsize{% + \vtop{\hsize=.59\linewidth + \null % make figures align at the top + \tlpng{tlmgr-general-options}{\hsize} + \caption{\texttt{tlmgr} in \GUI\ mode: General options} + \label{fig:tlmgr-general-options} + } + \hfil + \vtop{\hsize=.39\linewidth + \null + \tlpng{tlmgr-paper-options}{\hsize} + \caption{\texttt{tlmgr} in \GUI\ mode: Paper size options} + \label{fig:tlmgr-paper-options} + } +} +\end{figure} + +\TL{} includes a program named \prog{tlmgr} for managing \TL{} after the +initial installation. The programs \prog{updmap}, \prog{fmtutil} and +\prog{texconfig} are still included and will be retained in the future, +but \prog{tlmgr} is now the preferred interface. Its capabilities +include: + +\begin{itemize*} +\item installing, updating, backing up, restoring, and uninstalling + individual packages, optionally taking dependencies into account; +\item searching for and listing packages, etc.; +\item listing, adding, and removing platforms; +\item changing installation options such as paper size and source + location (see section~\ref{sec:location}). +\end{itemize*} +\textit{Warning:} \prog{tlmgr} has not been designed for or tested +with portable installations (section~\ref{sec:portable-tl}). + +\subsection{\cmdname{tlmgr} GUI mode} +\prog{tlmgr} can be started in \GUI{} mode (figure~\ref{fig:tlmgr-gui}) with +\begin{alltt} +> \Ucom{tlmgr -gui} +\end{alltt} +or in Windows via the Start menu: \texttt{Start}, \texttt{Programs}, +\texttt{TeX Live 2010}, \texttt{TeX Live Manager}. After clicking `Load' +it displays a list of available and installed packages. This assumes of +course that the installation source is valid and reachable. + +Figures~\ref{fig:tlmgr-general-options} and~\ref{fig:tlmgr-paper-options} +show the general and paper size option screens. + +\subsection{Sample \cmdname{tlmgr} command-line invocations} + +After the initial installation, you can update your system to the latest +versions available with: +\begin{alltt} +> \Ucom{tlmgr update -all} +\end{alltt} +If this makes you nervous, first try +\begin{alltt} +> \Ucom{tlmgr update -all -dry-run} +\end{alltt} +or (less verbose): +\begin{alltt} +> \Ucom{tlmgr update -list} +\end{alltt} + +This more complex example adds a collection, for the engine \XeTeX, from +a local directory: + +\begin{alltt} +> \Ucom{tlmgr -repository /local/mirror/tlnet install collection-xetex} +\end{alltt} +It generates the following output (abridged): +\begin{fverbatim} +install: collection-xetex +install: arabxetex +... +install: xetex +install: xetexconfig +install: xetex.i386-linux +running post install action for xetex +install: xetex-def +... +running mktexlsr +mktexlsr: Updating /usr/local/texlive/2010/texmf/ls-R... +... +running fmtutil-sys --missing +... +Transcript written on xelatex.log. +fmtutil: /usr/local/texlive/2010/texmf-var/web2c/xetex/xelatex.fmt installed. +\end{fverbatim} + +As you can see, \prog{tlmgr} installs dependencies, and takes care of any +necessary post-install actions, including updating the filename database +and (re)generating formats. In the above, we generated new formats for +\XeTeX. + +To describe a package (or collection or scheme): +\begin{alltt} +> \Ucom{tlmgr show collection-latexextra} +\end{alltt} +which produces +\begin{fverbatim} +package: collection-latexextra +category: Collection +shortdesc: LaTeX supplementary packages +longdesc: A large collection of add-on packages for LaTeX. +installed: Yes +revision: 14675 +\end{fverbatim} + +Last and most important, for full documentation see +\url{http://tug.org/texlive/tlmgr.html}, or: +\begin{alltt} +> \Ucom{tlmgr -help} +\end{alltt} + + +\section{Notes on Windows} +\label{sec:windows} + +\TL\ has a single installer which runs on both Windows and Unix. This +was only possible by dropping support for older Windows versions, so +\TL\ can now be installed only on Windows 2000 and later. + + +\subsection{Windows-specific features} +\label{sec:winfeatures} + +Under Windows, the installer does some extra things: +\begin{description} +\item[Menus and shortcuts.] A new `\TL{}' submenu of the + Start menu is installed, which contains entries for some \GUI{} + programs (\prog{tlmgr}, \prog{texdoctk}, the PS\_View (\prog{psv}) + PostScript previewer) and some documentation. PS\_View also gets a + shortcut on the desktop as a drag-and-drop target for PostScript + files. +\item[Automatic setting of environment variables.] No manual + configuration steps are required. +\item[Uninstaller.] The installer creates an entry under `Add/Remove + Programs' for \TL. The uninstall tab of the \TeX\ Live Manager \GUI\ + refers to this. +\end{description} + +\subsection{Additional software included on Windows} + +To be complete, a \TL installation needs support packages that are not +commonly found on a Windows machine. \TL{} provides the missing +pieces: +\begin{description} +\item[Perl and Ghostscript.] Because of the importance of Perl and + Ghostscript, \TL{} includes `hidden' copies of these + programs. \TL{} programs that need them know where to find them, + but they don't betray their presence through environment variables + or registry settings. They aren't full-scale installations, and + shouldn't interfere with any system installations of Perl or + Ghostscript. + +\item[PS\_View.] Also installed is PS\_View, a \PS{} and \acro{PDF} + viewer; see figure~\ref{fig:psview}. + +\begin{figure}[tb] +\tlpng{psview}{.6\linewidth} +\caption{PS\_View: very high magnifications available!}\label{fig:psview} +\end{figure} + +\item[dviout.] Also installed is \prog{dviout}, a \acro{DVI} viewer. + At first, when you preview files with \cmdname{dviout}, it will create + fonts, because screen fonts were not installed. After a while, you + will have created most of the fonts you use, and you will rarely see + the font-creation window. More information can be found in the + (highly recommended) on-line help. + +\item[\TeX{}works.] \TeX{}works is a \TeX-oriented editor with + an integrated \acro{PDF} viewer. + +\item[Command-line tools.] A number of Windows ports of common Unix + command-line programs are installed along with the usual \TL{} + binaries. These include \cmdname{gzip}, \cmdname{unzip} and the + utilities from the \cmdname{xpdf} suite (\cmdname{pdfinfo}, + \cmdname{pdffonts}, \ldots). The \cmdname{xpdf} viewer itself is not + available for Windows. Instead, you can download the Sumatra + \acro{PDF} viewer, which is based on \cmdname{xpdf}, from + \url{http://blog.kowalczyk.info/software/sumatrapdf}, among other options. + +\item[fc-list, fc-cache, \ldots] The tools from the fontconfig library allow + \XeTeX{} to handle system fonts on Windows. You can use + \prog{fc-list} to determine the font names to pass to \XeTeX's + extended \cs{font} command. If necessary, run \prog{fc-cache} + first to update font information. + +\end{description} + + +\subsection{User Profile is Home} +\label{sec:winhome} + +The Windows counterpart of a Unix home directory is the +\verb|%USERPROFILE%| directory. Under Windows \acro{XP} and Windows 2000, this +is usually \verb|C:\Documents and Settings\<username>|, and under +Windows Vista \verb|C:\Users\<username>|. In the +\filename{texmf.cnf} file, and \KPS{} in general, \verb|~| will expand +appropriately on both Windows and Unix. + + +\subsection{The Windows registry} +\label{sec:registry} + +Windows stores nearly all configuration data in its registry. The +registry contains a set of hierarchically organized keys, with several +root keys. The most important ones for installation programs are +\path{HKEY_CURRENT_USER} and \path{HKEY_LOCAL_MACHINE}, \path{HKCU} and +\path{HKLM} in short. The \path{HKCU} part of the registry is in the +user's home directory (see section~\ref{sec:winhome}). \path{HKLM} is +normally in a subdirectory of the Windows directory. + +In some cases, system information could be obtained from environment +variables but for other information, for example the location of +shortcuts, it is necessary to consult the registry. Setting environment +variables permanently also requires registry access. + + +\subsection{Windows permissions} +\label{sec:winpermissions} + +In later versions of Windows, a distinction is made between regular +users and administrators, where only the latter have free access to the +entire operating system. In practice, though, you could better describe +these classes of users as unprivileged users and normal users: being an +administrator is the rule, not the exception. Nevertheless, we have made +an effort to make \TL{} installable without administrative privileges. + +If the user is an administrator, there is an option to install for all +users. If this option is chosen, shortcuts are created for all users, +and the system environment is modified. Otherwise, shortcuts and menu +entries are created for the current user, and the user environment is +modified. + +Regardless of administrator status, the default root of \TL{} proposed +by the installer is always under \verb|%SystemDrive%|. The installer +always tests whether the root is writable for the current user. + +A problem may arise if the user is not an administrator and \TeX{} +already exists in the search path. Since the effective path +consists of the system path followed by the user path, the new \TL{} +would never get precedence. As a safeguard, the installer creates a +shortcut to the command-prompt in which the new \TL{} binary +directory is prepended to the local search path. The new \TL{} will +be always usable from within such a command-prompt. The shortcut for +\TeX{}works, if installed, also prepends \TL{} to the search path, so it +should also be immune to this path problem. + +For Vista there is another twist: even if you are logged in as +administrator, you need to explicitly ask for administrator +privileges. In fact, there is not much point in logging in as +administrator. Instead, right-clicking on the program or shortcut +that you want to run usually gives you a choice `Run as +administrator'. + +\section{A user's guide to Web2C} + +\Webc{} is an integrated collection of \TeX-related programs: \TeX{} +itself, \MF{}, \MP, \BibTeX{}, etc. It is the heart of \TL{}. The home +page for \Webc{}, with the current manual and more, is +\url{http://tug.org/web2c}. + +A bit of history: The original implementation was by Tomas Rokicki who, +in 1987, developed a first \TeX{}-to-C system based on change files +under Unix, which were primarily the original work of Howard Trickey and +Pavel Curtis. Tim Morgan became the maintainer of the system, and +during this period the name changed to Web-to-C\@. In 1990, Karl Berry +took over the work, assisted by dozens of additional contributors, and +in 1997 he handed the baton to Olaf Weber, who returned it to Karl in +2006. + +The \Webc{} system runs on Unix, 32-bit Windows systems, \MacOSX{}, and +other operating systems. It uses Knuth's original sources for \TeX{} and +other basic programs written in the \web{} literate programming system +and translates them into C source code. The core \TeX{} programs +handled in this way are: + +\begin{cmddescription} +\item[bibtex] Maintaining bibliographies. +\item[dvicopy] Expands virtual font references in \dvi{} files. +\item[dvitomp] \dvi{} to MPX (MetaPost pictures). +\item[dvitype] \dvi{} to human-readable text. +\item[gftodvi] Generic font proofsheets. +\item[gftopk] Generic to packed fonts. +\item[gftype] GF to human-readable text. +\item[mf] Creating typeface families. +\item[mft] Prettyprinting \MF{} source. +\item[mpost] Creating technical diagrams. +\item[patgen] Creating hyphenation patterns. +\item[pktogf] Packed to generic fonts. +\item[pktype] PK to human-readable text. +\item[pltotf] Plain text property list to TFM. +\item[pooltype] Display \web{} pool files. +\item[tangle] \web{} to Pascal. +\item[tex] Typesetting. +\item[tftopl] TFM to plain text property list. +\item[vftovp] Virtual font to virtual property list. +\item[vptovf] Virtual property list to virtual font. +\item[weave] \web{} to \TeX. +\end{cmddescription} + +\noindent The precise functions and syntax of these programs are +described in the documentation of the individual packages and of \Webc{} +itself. However, knowing a few principles governing the whole family of +programs will help you take advantage of your \Webc{} installation. + +All programs honor these standard \GNU options: +\begin{ttdescription} +\item[-{}-help] print basic usage summary. +\item[-{}-verbose] print detailed progress report. +\item[-{}-version] print version information, then exit. +\end{ttdescription} + +For locating files the \Webc{} programs use the path searching library +\KPS{} (\url{http://tug.org/kpathsea}). This library uses a combination +of environment variables and a configuration files to optimize searching +the (huge) collection of \TeX{} files. \Webc{} can look at many +directory trees simultaneously, which is useful in maintaining \TeX's +standard distribution and local and personal extensions in distinct +trees. To speed up file searches, the root of each tree has a file +\file{ls-R}, containing an entry showing the name and relative pathname +for all files under that root. + + +\subsection{Kpathsea path searching} +\label{sec:kpathsea} + +Let us first describe the generic path searching mechanism of the \KPS{} +library. + +We call a \emph{search path} a colon- or semicolon\hyph sepa\-rated list +of \emph{path elements}, which are basically directory names. A +search path can come from (a combination of) many sources. To look up +a file \samp{my-file} along a path \samp{.:/dir}, \KPS{} checks each +element of the path in turn: first \file{./my-file}, then +\file{/dir/my-file}, returning the first match (or possibly all +matches). + +In order to adapt optimally to all operating systems' conventions, on +non-Unix systems \KPS{} can use filename separators different from +colon (\samp{:}) and slash (\samp{/}). + +To check a particular path element \var{p}, \KPS{} first checks if a +prebuilt database (see ``Filename data\-base'' on +page~\pageref{sec:filename-database}) applies to \var{p}, i.e., if the +database is in a directory that is a prefix of \var{p}. If so, the path +specification is matched against the contents of the database. + +If the database does not exist, or does not apply to this path +element, or contains no matches, the filesystem is searched (if this +was not forbidden by a specification starting with \samp{!!}\ and if +the file being searched for must exist). \KPS{} constructs the list +of directories that correspond to this path element, and then checks +in each for the file being sought. + +The ``file must exist'' condition comes into play with \samp{.vf} files and +input files read by \TeX's \cs{openin} command. Such files may not +exist (e.g., \file{cmr10.vf}), and so it would be wrong to search the +disk for them. Therefore, if you fail to update \file{ls-R} when you +install a new \samp{.vf} file, it will never be found. +Each path element is checked in turn: first the database, then the +disk. If a match is found, the search stops and the result is +returned. + +Although the simplest and most common path element is a directory +name, \KPS{} supports additional features in search paths: layered +default values, environment variable names, config file values, users' +home directories, and recursive subdirectory searching. Thus, we say +that \KPS{} \emph{expands} a path element, meaning it transforms all +the specifications into basic directory name or names. This is +described in the following sections in the same order as it takes +place. + +Note that if the filename being searched for is absolute or explicitly +relative, i.e., starts with \samp{/} or \samp{./} or \samp{../}, +\KPS{} simply checks if that file exists. + +\ifSingleColumn +\else +\begin{figure*} +\verbatiminput{examples/ex5.tex} +\setlength{\abovecaptionskip}{0pt} + \caption{An illustrative configuration file sample} + \label{fig:config-sample} +\end{figure*} +\fi + +\subsubsection{Path sources} +\label{sec:path-sources} + +A search path can come from many sources. In the order in which +\KPS{} uses them: + +\begin{enumerate} +\item + A user-set environment variable, for instance, \envname{TEXINPUTS}\@. + Environment variables with a period and a program name appended + override; e.g., if \samp{latex} is the name of the program being run, + then \envname{TEXINPUTS.latex} will override \envname{TEXINPUTS}. +\item + A program-specific configuration file, for exam\-ple, a line + \samp{S /a:/b} in \cmdname{dvips}'s \file{config.ps}. +\item A \KPS{} configuration file \file{texmf.cnf}, containing a line like + \samp{TEXINPUTS=/c:/d} (see below). +\item The compile-time default. +\end{enumerate} +\noindent You can see each of these values for a given search path by +using the debugging options (see ``Debugging actions'' on +page~\pageref{sec:debugging}). + +\subsubsection{Config files} + +\KPS{} reads \emph{runtime configuration files} named \file{texmf.cnf} +for search path and other definitions. The search path used to look +for these files is named \envname{TEXMFCNF}, but we do not recommend +setting this (or any) environment variable. + +Instead, normal installation results in a file +\file{.../2010/texmf.cnf}. If you must make changes to the defaults +(not normally necessary), this is the place to put them. The main +configuration file is in \file{.../2010/texmf/web2c/texmf.cnf}. You +should not edit this latter file, as your changes will be lost when the +distributed version is updated. + +\emph{All} \file{texmf.cnf} files in the search path will be read and +definitions in earlier files override those in later files. For +example, with a search path of \verb|.:$TEXMF|, values from +\file{./texmf.cnf} override those from \verb|$TEXMF/texmf.cnf|. + +\begin{itemize} +\item + Comments start with \code{\%} and continue to the end of the line. +\item + Blank lines are ignored. +\item + A \bs{} at the end of a line acts as a continuation character, + i.e., the next line is appended. Whitespace at the beginning of + continuation lines is not ignored. +\item + Each remaining line has the form: +\begin{alltt} + \var{variable}[.\var{progname}] [=] \var{value} +\end{alltt}% + where the \samp{=} and surrounding whitespace are optional. +\item + The \ttvar{variable} name may contain any character other + than whitespace, \samp{=}, or \samp{.}, but sticking to + \samp{A-Za-z\_} is safest. +\item + If \samp{.\var{progname}} is present, the definition only + applies if the program that is running is named + \texttt{\var{progname}} or \texttt{\var{progname}.exe}. This allows + different flavors of \TeX{} to have different search paths, for + example. +\item \var{value} may contain any characters except + \code{\%} and \samp{@}. The + \code{\$\var{var}.\var{prog}} feature is not available on the + right-hand side; instead, you must use an additional variable. A + \samp{;}\ in \var{value} is translated to \samp{:}\ if + running under Unix; this is useful to be able to have a single + \file{texmf.cnf} for Unix, \acro{MS-DOS} and Windows systems. +\item + All definitions are read before anything is expanded, so + variables can be referenced before they are defined. +\end{itemize} +A configuration file fragment illustrating most of these points is +\ifSingleColumn +shown below: + +\verbatiminput{examples/ex5.tex} +\else +shown in Figure~\ref{fig:config-sample}. +\fi + +\subsubsection{Path expansion} +\label{sec:path-expansion} + + +\KPS{} recognizes certain special characters and constructions in +search paths, similar to those available in Unix shells. As a +general example, the complex path, +\verb+~$USER/{foo,bar}//baz+, expands to all subdirectories under +directories \file{foo} and \file{bar} in \texttt{\$USER}'s home +directory that contain a directory or file \file{baz}. These +expansions are explained in the sections below. +%$ +\subsubsection{Default expansion} +\label{sec:default-expansion} + +If the highest-priority search path (see ``Path sources'' on +page~\pageref{sec:path-sources}) contains an \emph{extra colon} (i.e., +leading, trailing, or doubled), \KPS{} inserts at that point the +next-highest-prio\-rity search path that is defined. If that inserted +path has an extra colon, the same happens with the next highest. For +example, given an environment variable setting + +\begin{alltt} +> \Ucom{setenv TEXINPUTS /home/karl:} +\end{alltt} +and a \code{TEXINPUTS} value from \file{texmf.cnf} of + +\begin{alltt} + .:\$TEXMF//tex +\end{alltt} +then the final value used for searching will be: + +\begin{alltt} + /home/karl:.:\$TEXMF//tex +\end{alltt} + +Since it would be useless to insert the default value in more than one +place, \KPS{} changes only one extra \samp{:}\ and leaves any others in +place. It checks first for a leading \samp{:}, then a trailing +\samp{:}, then a doubled \samp{:}. + +\subsubsection{Brace expansion} + +A useful feature is brace expansion, which means that, for instance, +\verb+v{a,b}w+ expands to \verb+vaw:vbw+. Nesting is allowed. +This is used to implement multiple \TeX{} hierarchies, by +assigning a brace list to \code{\$TEXMF}. +For example, in \file{texmf.cnf}, the following definition +(approximately; there are actually even more trees) is made: +\begin{verbatim} + TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN} +\end{verbatim} +Using this you can then write something like +\begin{verbatim} + TEXINPUTS = .;$TEXMF/tex// +\end{verbatim} +%$ +which means that, after looking in the current directory, the +\code{\$TEXMFHOME/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$TEXMFVAR/tex} +and \code{\$TEXMFMAIN/tex} trees \emph{only}) will be searched (the +last two use using \file{ls-R} data base files). It is a convenient +way for running two parallel \TeX{} structures, one ``frozen'' (on a +\CD, for instance) and the other being continuously updated with new +versions as they become available. By using the \code{\$TEXMF} +variable in all definitions, one is sure to always search the +up-to-date tree first. + +\subsubsection{Subdirectory expansion} +\label{sec:subdirectory-expansion} + +Two or more consecutive slashes in a path element following a directory +\var{d} is replaced by all subdirectories of \var{d}: first those +subdirectories directly under \var{d}, then the subsubdirectories under +those, and so on. At each level, the order in which the directories are +searched is \emph{unspecified}. + +If you specify any filename components after the \samp{//}, only +subdirectories with matching components are included. For example, +\samp{/a//b} expands into directories \file{/a/1/b}, \file{/a/2/b}, +\file{/a/1/1/b}, and so on, but not \file{/a/b/c} or \file{/a/1}. + +Multiple \samp{//} constructs in a path are possible, but +\samp{//} at the beginning of a path is ignored. + +\subsubsection{List of special characters and their meaning: a summary} + +The following list summarizes the special characters in \KPS{} +configuration files. + +% need a wider space for the item labels here. +\newcommand{\CODE}[1]{\makebox[3em][l]{\code{#1}}} +\begin{ttdescription} +\item[\CODE{:}] Separator in path specification; at the beginning or + the end of a path it substitutes the default path expansion.\par +\item[\CODE{;}] Separator on non-Unix systems (acts like \code{:}). +\item[\CODE{\$}] Variable expansion. +\item[\CODE{\string~}] Represents the user's home directory. +\item[\CODE{\char`\{...\char`\}}] Brace expansion. +\item[\CODE{//}] Subdirectory expansion (can occur anywhere in + a path, except at its beginning). +\item[\CODE{\%}] Start of comment. +\item[\CODE{\bs}] Continuation character (allows multi-line entries). +\item[\CODE{!!}] Search \emph{only} database to locate file, \emph{do + not} search the disk. +\end{ttdescription} + + +\subsection{Filename databases} +\label{sec:filename-database} + +\KPS{} goes to some lengths to minimize disk accesses for searches. +Nevertheless, at installations with enough directories, searching each +possible directory for a given file can take an excessively long time +(this is especially true if many hundreds of font directories have to +be traversed.) Therefore, \KPS{} can use an externally-built plain text +``database'' file named \file{ls-R} that maps files to directories, +thus avoiding the need to exhaustively search the disk. + +A second database file \file{aliases} allows you to give additional +names to the files listed in \file{ls-R}. This can be helpful to +confirm to \acro{DOS} 8.3 filename conventions in source files. + +\subsubsection{The filename database} +\label{sec:ls-R} + +As explained above, the name of the main filename database must be +\file{ls-R}. You can put one at the root of each \TeX{} hierarchy in +your installation that you wish to be searched (\code{\$TEXMF} by +default). \KPS{} looks for +\file{ls-R} files along the \code{TEXMFDBS} path. + +The recommended way to create and maintain \samp{ls-R} is to run the +\code{mktexlsr} script included with the distribution. It is invoked +by the various \samp{mktex}\dots\ scripts. In principle, this script +just runs the command +\begin{alltt} +cd \var{/your/texmf/root} && \path|\|ls -1LAR ./ >ls-R +\end{alltt} +presuming your system's \code{ls} produces the right output format +(\GNU \code{ls} is all right). To ensure that the database is +always up-to-date, it is easiest to rebuild it regularly via +\code{cron}, so that it is automatically updated when the installed +files change, such as after installing or updating a \LaTeX{} package. + +If a file is not found in the database, by default \KPS{} goes ahead +and searches the disk. If a particular path element begins with +\samp{!!}, however, \emph{only} the database will be searched for that +element, never the disk. + + +\subsubsection{kpsewhich: Standalone path searching} +\label{sec:invoking-kpsewhich} + +The \texttt{kpsewhich} program exercises path searching independent of any +particular application. This can be useful as a sort of \code{find} +program to locate files in \TeX{} hierarchies (this is used heavily in +the distributed \samp{mktex}\dots\ scripts). + +\begin{alltt} +> \Ucom{kpsewhich \var{option}\dots{} \var{filename}\dots{}} +\end{alltt} +The options specified in \ttvar{option} start with either \samp{-} +or \samp{-{}-}, and any unambiguous abbreviation is accepted. + +\KPS{} looks up each non-option argument on the command line as a +filename, and returns the first file found. There is no option to +return all the files with a particular name (you can run the Unix +\samp{find} utility for that). + +The most common options are described next. + +\begin{ttdescription} +\item[\texttt{-{}-dpi=\var{num}}]\mbox{} + Set the resolution to \ttvar{num}; this only affects \samp{gf} + and \samp{pk} lookups. \samp{-D} is a synonym, for compatibility + with \cmdname{dvips}. Default is 600. + +\item[\texttt{-{}-format=\var{name}}]\mbox{}\\ + Set the format for lookup to \ttvar{name}. By default, the + format is guessed from the filename. For formats which do not have + an associated unambiguous suffix, such as \MP{} support files and + \cmdname{dvips} configuration files, you have to specify the name as + known to \KPS{}, such as \texttt{tex} or \texttt{enc files}. Run + \texttt{kpsewhich -{}-help} for a list. + +\item[\texttt{-{}-mode=\var{string}}]\mbox{}\\ + Set the mode name to \ttvar{string}; this only affects \samp{gf} + and \samp{pk} lookups. No default: any mode will be found. +\item[\texttt{-{}-must-exist}]\mbox{}\\ + Do everything possible to find the files, notably including + searching the disk. By default, only the \file{ls-R} database is + checked, in the interest of efficiency. +\item[\texttt{-{}-path=\var{string}}]\mbox{}\\ + Search along the path \ttvar{string} (colon-separated as usual), + instead of guessing the search path from the filename. \samp{//} and + all the usual expansions are supported. The options \samp{-{}-path} + and \samp{-{}-format} are mutually exclusive. +\item[\texttt{-{}-progname=\var{name}}]\mbox{}\\ + Set the program name to \texttt{\var{name}}. + This can affect the search paths via the \texttt{.\var{progname}} + feature. + The default is \cmdname{kpsewhich}. +\item[\texttt{-{}-show-path=\var{name}}]\mbox{}\\ + shows the path used for file lookups of file type \texttt{\var{name}}. + Either a filename extension (\code{.pk}, \code{.vf}, etc.) or a + name can be used, just as with \samp{-{}-format} option. +\item[\texttt{-{}-debug=\var{num}}]\mbox{}\\ + sets the debugging options to \texttt{\var{num}}. +\end{ttdescription} + + +\subsubsection{Examples of use} +\label{sec:examples-of-use} + +Let us now have a look at \KPS{} in action. Here's a straightforward search: + +\begin{alltt} +> \Ucom{kpsewhich article.cls} + /usr/local/texmf-dist/tex/latex/base/article.cls +\end{alltt} +We are looking for the file \file{article.cls}. Since the \samp{.cls} +suffix is unambiguous we do not need to specify that we want to look for a +file of type \optname{tex} (\TeX{} source file directories). We find it in +the subdirectory \file{tex/latex/base} below the \samp{texmf-dist} \TL\ +directory. Similarly, all of the following are found without problems +thanks to their unambiguous suffix. +\begin{alltt} +> \Ucom{kpsewhich array.sty} + /usr/local/texmf-dist/tex/latex/tools/array.sty +> \Ucom{kpsewhich latin1.def} + /usr/local/texmf-dist/tex/latex/base/latin1.def +> \Ucom{kpsewhich size10.clo} + /usr/local/texmf-dist/tex/latex/base/size10.clo +> \Ucom{kpsewhich small2e.tex} + /usr/local/texmf-dist/tex/latex/base/small2e.tex +> \Ucom{kpsewhich tugboat.bib} + /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib +\end{alltt} + +By the way, that last is a \BibTeX{} bibliography database for +\textsl{TUGboat} articles. + +\begin{alltt} +> \Ucom{kpsewhich cmr10.pk} +\end{alltt} +Font bitmap glyph files of type \file{.pk} are used by display +programs like \cmdname{dvips} and \cmdname{xdvi}. Nothing is returned in +this case since there are no pre-generated Computer Modern \samp{.pk} +files in \TL{}\Dash the Type~1 variants are used by default. +\begin{alltt} +> \Ucom{kpsewhich wsuipa10.pk} +\ifSingleColumn /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk +\else /usr/local/texmf-var/fonts/pk/ljfour/public/ +... wsuipa/wsuipa10.600pk +\fi\end{alltt} +For these fonts (a phonetic alphabet from the University of Washington) +we had to generate \samp{.pk} files, and since the default \MF{} mode on +our installation is \texttt{ljfour} with a base resolution of 600\dpi{} +(dots per inch), this instantiation is returned. +\begin{alltt} +> \Ucom{kpsewhich -dpi=300 wsuipa10.pk} +\end{alltt} +In this case, when specifying that we are interested in a resolution +of 300\dpi{} (\texttt{-dpi=300}) we see that no such font is available on +the system. A program like \cmdname{dvips} or \cmdname{xdvi} would +go off and actually build the required \texttt{.pk} files +using the script \cmdname{mktexpk}. + +Next we turn our attention to \cmdname{dvips}'s header and configuration +files. We first look at one of the commonly used files, the general +prologue \file{tex.pro} for \TeX{} support, before turning our attention +to the generic configuration file (\file{config.ps}) and the \PS{} font +map \file{psfonts.map}\Dash as of 2004, map and encoding files have +their own search paths and new location in \dirname{texmf} trees. As +the \samp{.ps} suffix is ambiguous we have to specify explicitly which +type we are considering (\optname{dvips config}) for the file +\texttt{config.ps}. +\begin{alltt} +> \Ucom{kpsewhich tex.pro} + /usr/local/texmf/dvips/base/tex.pro +> \Ucom{kpsewhich --format="dvips config" config.ps} + /usr/local/texmf/dvips/config/config.ps +> \Ucom{kpsewhich psfonts.map} + /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map +\end{alltt} + +We now take a closer look at the \acro{URW} Times \PS{} support +files. The prefix for these in the standard font naming scheme is +\samp{utm}. The first file we look at is the configuration file, +which contains the name of the map file: +\begin{alltt} +> \Ucom{kpsewhich --format="dvips config" config.utm} + /usr/local/texmf-dist/dvips/psnfss/config.utm +\end{alltt} +The contents of that file is +\begin{alltt} + p +utm.map +\end{alltt} +which points to the file \file{utm.map}, which we want to +locate next. +\begin{alltt} +> \Ucom{kpsewhich utm.map} + /usr/local/texmf-dist/fonts/map/dvips/times/utm.map +\end{alltt} +This map file defines the file names of the Type~1 \PS{} fonts in +the URW collection. Its contents look like (we only show part of the +lines): +\begin{alltt} +utmb8r NimbusRomNo9L-Medi ... <utmb8a.pfb +utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb +utmr8r NimbusRomNo9L-Regu ... <utmr8a.pfb +utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb +utmbo8r NimbusRomNo9L-Medi ... <utmb8a.pfb +utmro8r NimbusRomNo9L-Regu ... <utmr8a.pfb +\end{alltt} +Let us, for instance, take the Times Roman instance +\file{utmr8a.pfb} and find its position in the \file{texmf} directory +tree with a search for Type~1 font files: +\begin{alltt} +> \Ucom{kpsewhich utmr8a.pfb} +\ifSingleColumn /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +\else /usr/local/texmf-dist/fonts/type1/ +... urw/utm/utmr8a.pfb +\fi\end{alltt} + +It should be evident from these examples how you can easily locate the +whereabouts of a given file. This is especially important if you suspect +that the wrong version of a file is picked up somehow, since +\cmdname{kpsewhich} will show you the first file encountered. + +\subsubsection{Debugging actions} +\label{sec:debugging} + +Sometimes it is necessary to investigate how a program resolves file +references. To make this practical, \KPS{} offers various levels of +debugging output: + +\begin{ttdescription} +\item[\texttt{\ 1}] \texttt{stat} calls (disk lookups). When running + with an up-to-date \file{ls-R} database this should almost give no + output. +\item[\texttt{\ 2}] References to hash tables (such as \file{ls-R} + databases, map files, configuration files). +\item[\texttt{\ 4}] File open and close operations. +\item[\texttt{\ 8}] General path information for file types + searched by \KPS. This is useful to find out where a particular + path for the file was defined. +\item[\texttt{16}] Directory list for each path element (only relevant + for searches on disk). +\item[\texttt{32}] File searches. +\item[\texttt{64}] Variable values. +\end{ttdescription} +A value of \texttt{-1} will set all the above options; in practice, +this is usually the most convenient. + +Similarly, with the \cmdname{dvips} program, by setting a combination of +debug switches, one can follow in detail where files are being picked up +from. Alternatively, when a file is not found, the debug trace shows in +which directories the program looks for the given file, so that one can +get an indication what the problem~is. + +Generally speaking, as most programs call the \KPS{} library +internally, one can select a debug option by using the +\envname{KPATHSEA\_DEBUG} environment variable, and setting it to (a +combination of) values as described in the above list. + +(Note for Windows users: it is not easy to redirect +all messages to a file in this system. For diagnostic purposes +you can temporarily \texttt{SET KPATHSEA\_DEBUG\_OUTPUT=err.log}). + +Let us consider, as an example, a small \LaTeX{} source file, +\file{hello-world.tex}, which contains the following input. +\begin{verbatim} + \documentclass{article} + \begin{document} + Hello World! + \end{document} +\end{verbatim} +This little file only uses the font \file{cmr10}, so let us look at +how \cmdname{dvips} prepares the \PS{} file (we want to use the Type~1 +version of the Computer Modern fonts, hence the option \texttt{-Pcms}). +\begin{alltt} +> \Ucom{dvips -d4100 hello-world -Pcms -o} +\end{alltt} +In this case we have combined \cmdname{dvips}'s debug class 4 (font +paths) with \KPS's path element expansion (see \cmdname{dvips} Reference +Manual, \OnCD{texmf/doc/dvips/dvips.pdf}). +The output (slightly rearranged) appears in +Figure~\ref{fig:dvipsdbga}. +\begin{figure*}[tp] +\centering +\input{examples/ex6a.tex} +\caption{Finding configuration files}\label{fig:dvipsdbga} + +\bigskip + +\input{examples/ex6b.tex} +\caption{Finding the prolog file}\label{fig:dvipsdbgb} + +\bigskip + +\input{examples/ex6c.tex} +\caption{Finding the font file}\label{fig:dvipsdbgc} +\end{figure*} + +\cmdname{dvips} starts by locating its working files. First, +\file{texmf.cnf} is found, which gives the definitions of the search +paths for the other files, then the file database \file{ls-R} (to +optimize file searching) and the file \file{aliases}, which makes it +possible to declare several names (e.g., a short \acro{DOS}-like 8.3 and +a more natural longer version) for the same file. Then \cmdname{dvips} +goes on to find the generic configuration file \file{config.ps} +before looking for the customization file \file{.dvipsrc} (which, in +this case is \emph{not found}). Finally, \cmdname{dvips} locates the +config file for the Computer Modern \PS{} fonts \file{config.cms} +(this was initiated with the \texttt{-Pcms} option on the \cmdname{dvips} +command). This file contains the list of the map files which +define the relation between the \TeX{}, \PS{} and file system +names of the fonts. +\begin{alltt} +> \Ucom{more /usr/local/texmf/dvips/cms/config.cms} + p +ams.map + p +cms.map + p +cmbkm.map + p +amsbkm.map +\end{alltt} +\cmdname{dvips} thus goes on to find all these files, plus the generic +map file \file{psfonts.map}, which is always loaded (it contains +declarations for commonly used \PS{} fonts; see the last part of +Section \ref{sec:examples-of-use} for more details about \PS{} map +file handling). + +At this point \cmdname{dvips} identifies itself to the user: +\begin{alltt} +This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com) +\end{alltt} +\ifSingleColumn +Then it goes on to look for the prolog file \file{texc.pro}: +\begin{alltt}\small +kdebug:start search(file=texc.pro, must\_exist=0, find\_all=0, + path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//: + ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//). +kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro +\end{alltt} +\else +Then it goes on to look for the prolog file \file{texc.pro} (see +Figure~\ref{fig:dvipsdbgb}). +\fi + +After having found the file in question, \cmdname{dvips} outputs +the date and time, and informs us that it will generate the +file \file{hello-world.ps}, then that it needs the font file +\file{cmr10}, and that the latter is declared as ``resident'' (no +bitmaps needed): +\begin{alltt}\small +TeX output 1998.02.26:1204' -> hello-world.ps +Defining font () cmr10 at 10.0pt +Font cmr10 <CMR10> is resident. +\end{alltt} +Now the search is on for the file \file{cmr10.tfm}, which is found, +then a few more prolog files (not shown) are referenced, and finally +the Type~1 instance \file{cmr10.pfb} of the font is located and +included in the output file (see last line). +\begin{alltt}\small +kdebug:start search(file=cmr10.tfm, must\_exist=1, find\_all=0, + path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//: + /var/tex/fonts/tfm//). +kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm +kdebug:start search(file=texps.pro, must\_exist=0, find\_all=0, + ... +<texps.pro> +kdebug:start search(file=cmr10.pfb, must\_exist=0, find\_all=0, + path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//: + ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//). +kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb +<cmr10.pfb>[1] +\end{alltt} + +\subsection{Runtime options} + +Another useful feature of \Webc{} is its possibility to control a number +of memory parameters (in particular, array sizes) via the runtime file +\file{texmf.cnf} read by \KPS{}. The memory settings can be found in +Part~3 of that file in the \TL{} distribution. The more important +are: + +\begin{ttdescription} +\item[\texttt{main\_memory}] + Total words of memory available, for + \TeX{}, \MF{} and \MP. You must make a new format file for each + different setting. For instance, you could generate a ``huge'' + version of \TeX{}, and call the format file \texttt{hugetex.fmt}. + Using the standard way of specifying the program name used by \KPS{}, + the particular value of the \texttt{main\_memory} variable will then + be read from \file{texmf.cnf}. +\item[\texttt{extra\_mem\_bot}] + Extra space for ``large'' \TeX{} data structures: + boxes, glue, breakpoints, etc. Especially useful if you use + \PiCTeX{}. +\item[\texttt{font\_mem\_size}] + Number of words for font information available for \TeX. This + is more or less the total size of all \acro{TFM} files read. +\item[\texttt{hash\_extra}] + Additional space for the hash table of control sequence names. + Only $\approx$10,000 control sequences can be stored in the main + hash table; if you have a large book with numerous cross-references, + this might not be enough. The default value of + \texttt{hash\_extra} is \texttt{50000}. +\end{ttdescription} + +\noindent Of course, this facility is no substitute for truly dynamic +arrays and memory allocation, but since these are extremely difficult to +implement in the present \TeX{} source, these runtime parameters provide +a practical compromise allowing some flexibility. + + +\begin{comment} +\section{Building on a new Unix platform} + +If you have a platform for which executables are not included, you will +need to compile \TeX{} and friends. This is not as hard as it +sounds. What you need is all in the directory \texttt{source} in the +distribution. + +\subsection{Prerequisites} + +You will need at least 100 megabytes of disk space to compile all of +\TeX{} and its support programs. You'll also need an \acro{ANSI} C +compiler, a \cmdname{make} utility, a lexical scanner, and a parser +generator. We recommend the \GNU version of these programs +(\cmdname{gcc}, \GNU \cmdname{make}, \cmdname{m4}, \cmdname{flex}, +\cmdname{bison}). You may be able to work with other C compilers and +\cmdname{make} programs, but you will need a good understanding of +building Unix programs to sort out problems. + +Also, the command \texttt{uname} must return a sensible value. + + +\subsection{Configuration} + +To begin, perform a normal installation of \TL{} to your disk (see +section~\ref{sec:install-disk} on +\p.\pageref{sec:install-disk}). You may wish to skip installing +all of the prebuilt binaries. + +Then, unpack the source from the compressed \texttt{tar} file in the +directory \dirname{source} to your disk and change directory to where +you placed it. + +Next, run \cmdname{configure} with a command line like this: +\begin{alltt} +> \Ucom{sh configure -prefix=/usr/local/TeX} +\end{alltt} + +The \optname{-prefix} directory is the one where you installed the +support tree; the directory layout will be as follows (where \$TEXDIR +stands for the directory you chose): + +\noindent +\begin{tabular}{>{\ttfamily}ll@{}} + \dirname{$TEXDIR/share/texmf} & main tree with fonts,\\ + & \qquad macros, etc\\ + \dirname{$TEXDIR/man} & Unix manual pages\\ + \dirname{$TEXDIR/info} & \GNU style Info manuals\\ + \dirname{$TEXDIR/bin/$PLATFORM} & binaries\\ +\end{tabular} +%$ + +If you want to leave out the \dirname{$PLATFORM} directory level, +i.e., put the binaries directly into \dirname{$TEXDIR/bin}, specify +the \verb|--disable-multiplatform| option to \cmdname{configure}. + +Have a look at the output of \verb|./configure --help| for more +options you can use. For example, you can skip building of \OMEGA{} and +\eTeX{}. + + +\subsection{Running \cmdname{make}} + +Make sure the shell variable or option \texttt{noclobber} is not set. +Then, run the main \cmdname{make} like this: +\begin{alltt} +> \Ucom{make world} +\end{alltt} +and relax\ldots + +Alternatively, you want to log all the output, as in: +\begin{alltt} +> \Ucom{sh -c "make world >world.log 2>\&1" \&} +\end{alltt} + +Before you believe that everything went ok, please check the log file +for errors: \GNU \cmdname{make} always uses the string \samp{***} +whenever a command fails. Also, check if all the programs were built: + +\begin{alltt} +> \Ucom{cd \var{TEXDIR}/bin/\var{archname}} +> \Ucom{ls | wc} +\end{alltt} +The result should be over 200 (you can check the exact number with the +\dirname{bin} directory contents in the distribution). + +If you need special privileges for \texttt{make install}, you can +separate the \samp{make world} into two different runs, like this: +\begin{alltt} +> \Ucom{make all} +> \Ucom{su} +> \Ucom{make install strip} +\end{alltt} + +After you've installed your new binaries, you should follow the normal +post-installation procedures, given in section~\ref{sec:postinstall} +(\p.\pageref{sec:postinstall}). + +Also, if you'd like to make your binaries available to others, please +contact us. We'll be happy to put them on the \TL\ web pages. +\end{comment} + +\htmlanchor{ack} +\section{Acknowledgements} + +\TL{} is a joint effort by virtually all of the \TeX{} user groups. +This edition of \TL{} was overseen by Karl Berry. The other principal +contributors, past and present, are listed below. + +\begin{itemize*} + +\item The English, German, Dutch, and Polish \TeX{} user groups +(\acro{TUG}, \acro{DANTE} e.V., \acro{NTG}, and \acro{GUST}, +respectively), which provide the necessary technical and administrative +infrastructure. Please join the \TeX\ user group near you! (See +\url{http://tug.org/usergroups.html}.) + +\item The \acro{CTAN} team, notably Robin Fairbairns, Jim Hef{}feron, +and Rainer Sch\"opf, which distributes the \TL{} images and provides the +common infrastructure for package updates, upon which \TL{} depends. + +\item Nelson Beebe, for making many platforms available to \TL\ +developers, and his own comprehensive testing. + +\item John Bowman, for making many changes to his advanced graphics +program Asymptote to make it work in \TL. + +\item Peter Breitenlohner and the \eTeX\ team for the stable foundation +of future \TeX's, and Peter specifically for stellar help with \GNU\ +autotools usage throughout \TL. + +\item Jin-Hwan Cho and all of the DVIPDFM$x$ team, for their +excellent driver and responsiveness to configuration issues. + +\item Thomas Esser, without whose marvelous \teTeX{} package \TL{} +would have never existed. + +\item Michel Goossens, who co-authored the original documentation. + +\item Eitan Gurari, whose \TeX4ht is used to create the \HTML{} +version of this documentation, and who worked tirelessly to improve it +at short notice, every year. Eitan prematurely passed away in June +2009, and we dedicate this documentation to his memory. + +\item Hans Hagen, for much testing and making his \ConTeXt\ format +(\url{http://pragma-ade.com}) work within \TL's framework. + +\item \Thanh, Martin Schr\"oder, and the pdf\TeX\ team +(\url{http://pdftex.org}) for continuing enhancements of \TeX's +abilities. + +\item Hartmut Henkel, for significant development contributions to +pdf\TeX\, Lua\TeX, and more. + +\item Taco Hoekwater, for major renewed development efforts on MetaPost and +(Lua)\TeX\ (\url{http://luatex.org}) itself, incorporating +\ConTeXt\ into \TL, giving Kpathsea multi-threaded functionality, and +much more. + +\item Pawe{\l} Jackowski, for the Windows installer \cmdname{tlpm}, +and Tomasz {\L}uczak, for \cmdname{tlpmgui}, used in past releases. + +\item Akira Kakuto, for providing the Windows +binaries from his \acro{W32TEX} distribution for Japanese \TeX\ +(\url{http://w32tex.org}), and many other development contributions. + +\item Jonathan Kew, for developing the remarkable \XeTeX{} engine and +taking the time and trouble to integrate it in \TL{}, as well as the +initial version of the Mac\TeX\ installer, and also for our recommended +front-end \TeX{}works. + +\item Dick Koch, for maintaining Mac\TeX\ (\url{http://tug.org/mactex}) +in very close tandem with \TL{}, and for his great good cheer in doing +so. + +\item Reinhard Kotucha, for major contributions to the \TL{} 2008 +infrastructure and installer, as well as Windows research efforts, the +\texttt{getnonfreefonts} script, and more. + +\item Siep Kroonenberg, also for major contributions to the \TL{} 2008 +infrastructure and installer, especially on Windows, and for the bulk of +work updating this manual describing those features. + +\item Heiko Oberdiek, for the \pkgname{epstopdf} package and many +others, compressing the huge \pkgname{pst-geo} data files so we could +include them, and most of all, for his remarkable work on +\pkgname{hyperref}. + +\item Petr Ol\v{s}ak, who coordinated and checked all the Czech and Slovak +material very carefully. + +\item Toshio Oshima, for his \cmdname{dviout} previewer for Windows. + +\item Manuel P\'egouri\'e-Gonnard, for helping with package updates, +documentation improvements, and \cmdname{texdoc} development. + +\item Fabrice Popineau, for the original Windows support in \TL{} and +work on the French documentation. + +\item Norbert Preining, the principal architect of the \TL{} 2008 +infrastructure and installer, and also for coordinating the Debian +version of \TL{} (together with Frank K\"uster), making many suggestions +along the way. + +\item Sebastian Rahtz, for originally creating \TL{} and maintaining it +for many years. + +\item Phil Taylor, for setting up the BitTorrent downloads. + +\item Tomasz Trzeciak, for wide-ranging help with Windows. + +\item Vladimir Volovich, for substantial help with porting and other +maintenance issues, and especially for making it feasible to include +\cmdname{xindy}. + +\item Staszek Wawrykiewicz, the principal tester for all of \TL{}, +and coordinator of the many major Polish contributions: fonts, Windows +installation, and more. + +\item Olaf Weber, for his patient maintenance of \Webc. + +\item Gerben Wierda, for creating and maintaining the original \MacOSX\ +support, and much integration and testing. + +\item Graham Williams, on whose work the \TeX\ Catalogue of packages depends. + +\end{itemize*} + +Builders of the binaries: +Alan Braslau (\pkgname{amd64-kfreebsd}, \pkgname{i386-kfreebsd}), +Peter Breitenlohner (\pkgname{x86\_64-linux}), +Karl Berry (\pkgname{i386-linux}, \pkgname{sparc-linux}), +Ken Brown (\pkgname{i386-cygwin}), +Akira Kakuto (\pkgname{win32}), +Dick Koch (\pkgname{universal-darwin}, \pkgname{x86\_64-darwin}), +Nikola Le\v{c}i\'c (\pkgname{amd64-freebsd}, \pkgname{i386-freebsd}), +Norbert Preining (\pkgname{alpha-linux}), +Jukka Salmi (\pkgname{i386-netbsd}), +Thomas Schmitz (\pkgname{powerpc-linux}), +Apostolos Syropoulos (\pkgname{i386-solaris}, \pkgname{x86\_64-solaris}), +Vladimir Volovich (\pkgname{powerpc-aix}, \pkgname{sparc-solaris}), +Olaf Weber (\pkgname{mips-irix}). +For information on the \TL{} build process, see +\url{http://tug.org/texlive/build.html}. + +Current documentation translators: +Boris Veytsman (Russian), +Jjgod Jiang, Jinsong Zhao, Yue Wang, \& Helin Gai (Chinese), +Klaus H\"oppner (German), +Manuel P\'egouri\'e-Gonnard (French), +Marco Pallante (Italian), +Nikola Le\v{c}i\'c (Serbian), +Petr Sojka \& Jan Busa (Czech\slash Slovak), +Staszek Wawrykiewicz (Polish). The \TL{} documentation web page +is \url{http://tug.org/texlive/doc.html}. + +Of course the most important acknowledgement must go to Donald Knuth, +first for inventing \TeX, and then for giving it to the world. + + + +\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:tl-coll-dists}, \p.\pageref{sec:tl-coll-dists}). 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:overview-tl} (\p.\pageref{sec:overview-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-dist/doc/generic/tds/tds.html\#Extensions} +{\texttt{texmf-dist/doc/generic/tds/tds.html\#Extensions}}. + +\item Helper scripts (not meant to be invoked by users) are now located +in a new \dirname{scripts} subdirectory of \dirname{texmf*} trees, and +can be 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-dist/doc/generic/tds/tds.html\#Scripts} +{\texttt{texmf-dist/doc/generic/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-dist/doc/pdftex/manual/pdftex-a.pdf}. + + \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}. + +\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} + + +\subsubsection{2006--2007} + +In 2006--2007, the major new addition to \TL{} was the \XeTeX{} 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). + +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 \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. + +\subsubsection{2008} + +In 2008, the entire \TL{} infrastructure was redesigned and +reimplemented. Complete information about an installation is now stored +in a plain text file \filename{tlpkg/texlive.tlpdb}. + +Among other things, this finally makes possible upgrading a \TL{} +installation over the Internet after the initial installation, a feature +MiK\TeX\ has provided for many years. We expect to regularly update new +packages as they are released to \CTAN. + +The major new engine Lua\TeX\ (\url{http://luatex.org}) is included; +besides a new level of flexibility in typesetting, this provides an +excellent scripting language for use both inside and outside of \TeX\ +documents. + +Support among Windows and the Unix-based platforms is now much more +uniform. In particular, most Perl and Lua scripts are now available on +Windows, using the Perl internally distributed with \TL. + +The new \cmdname{tlmgr} script (section~\ref{sec:tlmgr}) is the +general interface for managing \TL{} after the initial installation. +It handles package updates and consequent regeneration of formats, map +files, and language files, optionally including local additions. + +With the advent of \cmdname{tlmgr}, the \cmdname{texconfig} actions to +edit the format and hyphenation configuration files are now disabled. + +The \cmdname{xindy} indexing program +(\url{http://xindy.sourceforge.net/}) is now included on most platforms. + +The \cmdname{kpsewhich} tool can now report all matches for a given file +(option \optname{--all}) and limit matches to a given subdirectory +(option \optname{--subdir}). + +The \cmdname{dvipdfmx} program now includes functionality to extract +bounding box information, via the command name \cmdname{extractbb}; this +was one of the last features provided by \cmdname{dvipdfm} not in +\cmdname{dvipdfmx}. + +The font aliases \filename{Times-Roman}, \filename{Helvetica}, and so on +have been removed. Different packages expected them to behave +differently (in particular, to have different encodings), and there was +no good way to resolve this. + +The \pkgname{platex} format has been removed, to resolve a name conflict +with a completely different Japanese \pkgname{platex}; the +\pkgname{polski} package is now the main Polish support. + +Internally, the \web\ string pool files are now compiled into the +binaries, to ease upgrades. + +Finally, the changes made by Donald Knuth in his `\TeX\ tuneup of 2008' +are included in this release. See +\url{http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf}. + +\subsubsection{2009} + +In 2009, the default output format for Lua\AllTeX\ is now PDF, to take +advantage of Lua\TeX's OpenType support, et al. New executables named +\code{dviluatex} and \code{dvilualatex} run Lua\TeX\ with DVI output. +The Lua\TeX\ home page is \url{http://luatex.org}. + +The original Omega engine and Lambda format have been excised, after +discussions with the Omega authors. The updated Aleph and Lamed remain, +as do the Omega utilities. + +A new release of the AMS \TypeI\ fonts is included, including Computer +Modern: a few shape changes made over the years by Knuth in the Metafont +sources have been integrated, and the hinting has been updated. The +Euler fonts have been thoroughly reshaped by Hermann Zapf (see +\url{http://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf}). In +all cases, the metrics remain unchanged. The AMS fonts home page is +\url{http://www.ams.org/tex/amsfonts.html}. + +The new GUI front end \TeX{}works is included for Windows, and also in +Mac\TeX. For other platforms, and more information, see the \TeX{}works +home page, \url{http://tug.org/texworks}. It is a cross-platform front +end inspired by the \MacOSX\ TeXShop editor, aiming at ease-of-use. + +The graphics program Asymptote is included for several platforms. This +implements a text-based graphics description language vaguely akin to +MetaPost, but with advanced 3D support and other features. Its home +page is \url{http://asymptote.sourceforge.net}. + +The separate \code{dvipdfm} program has been replaced by +\code{dvipdfmx}, which operates in a special compatibility mode under +that name. \code{dvipdfmx} includes \acro{CJK} support and has +accumulated many other fixes over the years since the last +\code{dvipdfm} release. The DVIPDFMx home page is +\url{http://project.ktug.or.kr/dvipdfmx}. + +Executables for the \pkgname{cygwin} and \pkgname{i386-netbsd} platforms +are now included, while we were advised that Open\acro{BSD} users get +\TeX\ through their package systems, plus there were difficulties in +making binaries that have a chance of working on more than one version. + +A miscellany of smaller changes: we now use \pkgname{xz} compression, +the stable replacement for \pkgname{lzma} +(\url{http://tukaani.org/xz/}); a literal |$| is allowed in filenames +when it does not introduce a known variable name; the Kpathsea library +is now multi-threaded (made use of in MetaPost); the entire \TL{} build +is now based on Automake. + +Final note on the past: all releases of \TL{}, along with ancillary +material such as \CD\ labels, are available at +\url{ftp://tug.org/historic/systems/texlive}. + + +% +\htmlanchor{news} +\subsection{Present} +\label{sec:tlcurrent} +\label{sec:2010news} % keep with 2010 + +In 2010, the default version for PDF output is now 1.5, enabling more +compression. This applies to all the \TeX\ engines when used to produce +PDF and to \code{dvipdfmx}. Loading the \pkgname{pdf14} \LaTeX\ package +changes back to PDF~1.4, or set |\pdfminorversion=4|. + +pdf\AllTeX\ now \emph{automatically} converts a requested Encapsulated +PostScript (EPS) file to PDF, via the \pkgname{epstopdf} package, when +and if the \LaTeX\ \code{graphics.cfg} configuration file is loaded, and +PDF is being output. The default options are intended to eliminate any +chance of hand-created PDF files being overwritten, but you can also +prevent \code{epstopdf} from being loaded at all by putting +|\newcommand{\DoNotLoadEpstopdf}{}| (or |\def...|) before the +\cs{documentclass} declaration. It is also not loaded if the +\pkgname{pst-pdf} package is used. For more details, see the +\pkgname{epstopdf} package documentation +(\url{http://ctan.org/pkg/epstopdf-pkg}). + +A related change is that execution of a very few external commands from +\TeX, via the \cs{write18} feature, is now enabled by default. These +are commands are \code{repstopdf}, \code{makeindex}, \code{kpsewhich}, +\code{bibtex}, and \code{bibtex8}; the list is defined in +\code{texmf.cnf}. Environments which must disallow all such external +commands can deselect this option in the installer (see +section~\ref{sec:options}), or override the value after installation by +running |tlmgr conf texmf shell_escape 0|. + +Yet another related change is that \BibTeX\ and Makeindex now refuse to +write their output files to an arbitrary directory (like \TeX\ itself), +by default. This is so they can now be enabled for use by the +restricted \cs{write18}. To change this, the \envname{TEXMFOUTPUT} +environment variable can be set, or the |openout_any| setting changed. + +\XeTeX\ now supports margin kerning along the same lines as pdf\TeX. +(Font expansion is not presently supported.) + +By default, \prog{tlmgr} now saves one backup of each package updated +(\code{tlmgr option autobackup 1}), so broken packages updates can be +easily reverted with \code{tlmgr restore}. If you do post-install +updates, and don't have the disk space for the backups, run \code{tlmgr +option autobackup 0}. + +New programs included: the p\TeX\ engine and related utilities for +typesetting Japanese; the \BibTeX{}U program for Unicode-enabled +\BibTeX; the \prog{chktex} utility +(\url{http://baruch.ev-en.org/proj/chktex}) for checking \AllTeX\ +documents; the \prog{dvisvgm} (\url{http://dvisvgm.sourceforge.net}) +DVI-to-SVG translator. + +Executables for these new platforms are now included: \code{amd64-freebsd}, +\code{amd64-kfreebsd}, \code{i386-freebsd}, \code{i386-kfreebsd}, +\code{x86\_64-darwin}, \code{x86\_64-solaris}. + +A change in \TL{} 2009 that we failed to note: numerous \TeX4ht-related +executables (\url{http://tug.org/tex4ht}) were removed from the binary +directories. The generic \code{mk4ht} program can be used to run any of +the various \code{tex4ht} combinations. + +Finally, the \TL{} release on the \TK\ \DVD\ can no longer be run +live (oddly enough). A single \DVD\ no longer has enough room. One +benefit is that installation from the physical \DVD\ should now be much +faster. + + +\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 volunteers in their spare time, and so there is always more +to do. Please see \url{http://tug.org/texlive/contribute.html}. + +Please send corrections, suggestions, and offers of help to: +\begin{quote} +\email{tex-live@tug.org} \\ +\url{http://tug.org/texlive} +\end{quote} + +\medskip +\noindent \textsl{Happy \TeX ing!} + +\end{document} diff --git a/Master/texmf/doc/texlive/texlive-en/archive/tex-live.sty-2010 b/Master/texmf/doc/texlive/texlive-en/archive/tex-live.sty-2010 new file mode 100644 index 00000000000..3af32be1ab1 --- /dev/null +++ b/Master/texmf/doc/texlive/texlive-en/archive/tex-live.sty-2010 @@ -0,0 +1,493 @@ +% $Id: tex-live.sty 19329 2010-07-10 00:44:42Z karl $ +% TeX Live documentation style. Written by many people over many years. +% Public domain. +% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{tex-live}[2009/08/23 v1.7 TeX Live documentation style] +% +% colortbl and other packages otherwise make the default be letter, it seems. +\RequirePackage[a4paper,hscale=0.75,lines=60,vmarginratio=10:8]{geometry} +% +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{colortbl} +\RequirePackage{comment} +\RequirePackage{float} +\RequirePackage{graphicx} +\RequirePackage{longtable} +\RequirePackage{shortvrb} +\RequirePackage[normalem]{ulem} +\RequirePackage[obeyspaces]{url} +\RequirePackage{xspace} +% +\RequirePackage{lmodern} +\usepackage{textcomp}% including \textbullet +\def\p.{p.\,} + +% for a proper \acro command. +\RequirePackage{relsize} +%\DeclareRobustCommand{\acro}[1]{\textscale{.9}{#1}\@} +\def\acro#1{\textscale{.9}{#1}\@} +% +\RequirePackage{fancyvrb} +\DefineVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\normalsize} +\DefineVerbatimEnvironment{fverbatim}{Verbatim}{fontsize=\footnotesize} +\DefineVerbatimEnvironment{sverbatim}{Verbatim}{fontsize=\small} +\DefineVerbatimEnvironment{boxedverbatim} + {Verbatim}{fontsize=\footnotesize,frame=single} +\DefineVerbatimEnvironment{Verbatim}{Verbatim}{fontsize=\normalsize} +\def\verbatiminput#1{\VerbatimInput[fontsize=\scriptsize]{#1}} +\def\boxedverbatiminput#1{\VerbatimInput[frame=single,fontsize=\scriptsize]{#1}} +\def\listinginput#1#2{\VerbatimInput[fontsize=\scriptsize,firstnumber=#1,numbers=left]{#2}} +\MakeShortVerb\| +% +% +% Done with packages. +% +% emacs-page page layout. +% +%ltr \advance\textwidth by 1.1in +%ltr \advance\oddsidemargin by -.55in +%ltr \advance\evensidemargin by -.55in +%ltr % +%ltr \advance\textheight by 1in +%ltr \advance\topmargin by -.5in +%ltr \advance\footskip by -.5in +%ltr % +\message{dimens: textwidth=\the\textwidth\space + oddsidemargin=\the\oddsidemargin\space + evensidemargin=\the\evensidemargin\space + textheight=\the\textheight\space + topmargin=\the\topmargin\space + footskip=\the\footskip} +% +% with settings above, and without a4 (hence letter): +% textwidth=424.49744pt oddsidemargin=22.25128pt evensidemargin=22.25128pt +% textheight=622.26999pt topmargin=-20.135pt footskip=-6.135pt +% +% with default a4paper geometry settings (not enough height): +% textwidth=418.25368pt oddsidemargin=17.3571pt evensidemargin=17.3571pt +% textheight=591.5302pt topmargin=-7.86334pt footskip=30.0pt +% +% with geometry settings [a4paper,hscale=0.75,lines=60,vmarginratio=10:8]: +% textwidth=448.1309pt oddsidemargin=2.41849pt evensidemargin=2.41849pt +% textheight=718.0pt topmargin=-38.68848pt footskip=30.0pt + +% +\pagestyle{headings} +% +% LaTeX parameters. +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\renewcommand{\abovecaptionskip}{4pt} +\renewcommand{\belowcaptionskip}{4pt} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{3} +\setcounter{topnumber}{5} +\setcounter{totalnumber}{5} +% +% linebreaking, etc. +\hbadness=4000 +\vbadness=4000 +\emergencystretch=.1\hsize +\relpenalty=500 +% +\def\slash{/\penalty\z@\hskip\z@skip } +% +% various sorts of names +\newcommand*{\pkgname}[1]{\textsf{#1}}% package name +\newcommand*{\optname}[1]{\texttt{#1}}% (package,class) option name +\newcommand*{\cmdname}[1]{\textsf{#1}}% command name +\newcommand*{\colname}[1]{\emph{#1}}% collection name +\newcommand*{\dirname}[1]{\path{#1}}% directory name +\def\filename#1{\path{#1}}% file name +\newcommand*{\envname}[1]{\texttt{#1}}% environment variable name +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\file}[1]{\texttt{#1}} +\newcommand{\prog}[1]{\textsf{#1}}% same as \cmdname +\newcommand{\samp}[1]{`\texttt{#1}'} +\newcommand{\var}[1]{{\sl #1}}% not \textsl, for roman not typewriter slanted. +\newcommand{\ttvar}[1]{\texttt{\var{#1}}} +% +% underlined command input. +%\def\Ucom#1{% +% \uline{\rule[-.2\baselineskip]{0pt}{.9\baselineskip}\ttfamily #1}} +% bold command input +\def\Ucom#1{{\bfseries\ttfamily #1}} +% +% \CDref is for url's with a #, where we need to write the target url and +% displayed url separately in the input, due to catcode madness. +% (We could simplify/remove this next time, I think.) +\def\CDref#1#2{\texttt{#1}} +% +% \OnCD no longer has any use at all, since we don't have unpacked files +% on the DVD and it has never worked when reading the PDF online. +\def\OnCD#1{\path{#1}} +% +% \OnCD is currently for any other reference to a file or directory in +% the distribution. PDF readers only open .pdf files, though, so we +% should change this to only use \href for those. Or more likely use +% different macros in the source. +%\def\OnCD#1{\href{../../../../#1}{\path{#1}}} +% +% \href incorrectly appends .pdf to anything without an extension; these +% definitions using \hyper@linkurl do not, but they fail for .pdf +% references -- which are the only ones that work anyway. So this is +% useless, in practice. +%\def\CDref#1#2{\hyper@linkurl{#2}{../../../../#1}} +%\def\OnCD#1{\hyper@linkurl{\path{#1}}{../../../../#1}} + +% GUI menu/button/tab sequence: +\def\guiseq#1{\textsf{#1}} +\def\arw{\unskip$\rightarrow$\ignorespaces} +% +% Special names. +\def\dpi{$\,$dpi\xspace} +\def\bs{{\protect\normalfont\ttfamily\char'134}} +\DeclareRobustCommand{\cs}[1]{{\normalfont\ttfamily\char`\\#1}} +\def\Q#1{\par\vskip6pt\leftline{#1}\par} +\def\hyph{-} +% +% many abbreviations. +\def\AllTeX{(\La\kern-.075em)\kern-.075em\TeX} +\def\AFMtoTFM{\cmdname{AFM2TFM}\null} +\def\bv{\emph{Baskerville}} +\let\BV=\bv +\newcommand{\CS}{$\mathcal{C}\kern-.1667em\lower.5ex% + \hbox{$\mathcal{S}$}\kern-.075em $} +\def\Dash{\unskip\nobreak\thinspace---\thinspace\ignorespaces} +\def\dvicopy{\cmdname{dvicopy}} +\def\dvidvi{\cmdname{dvidvi}} +\def\dvips{\cmdname{dvips}} +\def\eTeX{$\varepsilon$-\TeX} +\def\fpTeX{\textrm{fp}\TeX\xspace} +\def\GFtoDVI{\cmdname{GFtoDVI}\null} +\def\GFtoPK{\cmdname{GFtoPK}\null} +\def\GFtype{\cmdname{GFtype}} +\def\GUI{\acro{GUI}\xspace} +\def\KPS{Kpathsea} +% This code % is hacked from its definition of \cs{LaTeX}; it allows +% slants (for example) to propagate into the raised (small) `A': +\newcommand{\La}% + {L\kern-.36em + {\setbox0\hbox{T}% + \vbox to\ht0{\hbox{$\m@th$% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A}% + \vss}% + }} +\def\OMEGA{$\Omega$} +\def\OzMF{OzMF} +\def\OzMP{OzMP} +\def\OzTeX{O\kern-.03em z\kern-.15em\TeX} +\def\PKtype{\cmdname{PKtype}} +\def\PLtoTF{\cmdname{PLtoTF}\null} +\def\ProTeXt{pro\TeX t} +\def\teTeX{\textrm{te}\TeX\xspace} +\def\TeXLive{\TeX{} Live\xspace} +\def\TFtoPL{\cmdname{TFtoPL}\null} +\def\TK{\TeX\ Collection} +\let\TL=\TeXLive +\def\TypeI{Type~1} +\def\VFtoVP{\cmdname{VFtoVP}\null} +\def\VPtoVF{\cmdname{VPtoVF}\null} +\def\Thanh{H\`an~Th\ifx % get Unicode char in tex4ht's HTML output + \HCode\UnDef\^e\llap{\raise 0.5ex\hbox{\'{}}}\else + \HCode{\string&\#x1EBF;}\fi~Th\`anh} +\def\XEmTeX{\textrm{XEm}\TeX\xspace} +\def\XEmacs{\textrm{XEmacs}\xspace} +\def\XeTeX{Xe\TeX} +\def\Webc{Web2C} +\providecommand*{\CD}{\acro{CD}\xspace} +\providecommand*{\CTAN}{\acro{CTAN}\xspace} +\providecommand*{\DVD}{\texorpdfstring{\acro{DVD}}{DVD}\xspace} +\providecommand*{\GNU}{\acro{GNU}\xspace} +\providecommand*{\HTML}{\acro{HTML}\xspace} +\providecommand*{\ISO}{\acro{ISO}\xspace} +\providecommand*{\MacOSX}{Mac\,\acro{OS\,X}\xspace} +\providecommand*{\PS}{Post\-Script\xspace} +\providecommand*{\TDS}{\acro{TDS}\xspace} +\providecommand*{\dvi}{\acro{DVI}\xspace} +\providecommand*{\web}{\texttt{WEB}\xspace} + +% Include an image. +% #1 - name of image (pictures/#1.jpg, always .jpg please) +% #2 - bb for html +% #3 - width for TeX +% +\def\tlimage#1#2#3{% + \ifnum \Status=2 % html, want relative path in output + \includegraphics[#2]{../../general/texlive-common/pictures/#1.jpg} + \else % not html, handled by TEXINPUTS in Makefile + \includegraphics[width=#3]{pictures/#1.jpg} + \fi + \\[5mm] +} + +\def\tlpng#1#2{% + \ifnum \Status=2 % html, want relative path in output + \includegraphics[bb=0 0 1 1]{#1.png}% + \else % not html, handled by TEXINPUTS in Makefile + \includegraphics[width=#2]{#1.png}% + \fi +} +% +% description-like environment that uses tt instead of bf, and doesn't +% go to the left margin. Without the \hfil, get an underfull box. +% Don't know why \descriptionlabel doesn't. +% +\newenvironment{ttdescription} + {\begin{list}{label must be supplied}{% + \itemsep=0pt % these lists tend to have short descriptions + \parindent=0pt + \let\makelabel=\ttdescriptionlabel}}% + {\end{list}} +\newcommand*\ttdescriptionlabel[1]{\hspace\labelsep + \normalfont\ttfamily #1\hfil} +% +% Likewise, for commands using sans serif. +\newenvironment{cmddescription} + {\begin{list}{label must be supplied}{% + \itemsep=0pt + \let\makelabel=\cmddescriptionlabel}}% + {\end{list}} +\newcommand*\cmddescriptionlabel[1]{\hspace\labelsep + \normalfont\sffamily #1\hfil} + +% General squeezed itemize/enumerate. +\newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + +\newenvironment{enumerate*}% + {\begin{enumerate}% + \setlength{\itemsep}{0pt}% + \setlength{\parskip}{0pt}}% + {\end{enumerate}} + +\newsavebox{\wbox} +\newenvironment{warningbox} + {\begin{lrbox}{\wbox} + \begin{minipage}{.95\textwidth}} + {\end{minipage}\end{lrbox}\fbox{\usebox{\wbox}}} +% +% lrbox is used as a representation marking. I changed it to +% lrBox in tne source file, to get closer to logical marking +\newsavebox{\mylrbox} +\newenvironment{lrBox} + {\begin{lrbox}{\mylrbox}} + {\end{lrbox}} + + +% emacs-page output setup +% +\ifx \HCode\UnDef + \providecommand{\Status}{0}% running TeX +\else + \providecommand{\Status}{2}% running TeX4ht +\fi +%\typeout{Status is \Status} +% +\newif\ifSingleColumn +% +% By default, we won't be creating hyperlinks. +\def\href#1#2{#2} +\def\hypertarget#1#2{} +\def\email#1{\href{mailto:#1}{\path{#1}}} % \path comes from url +\def\htmlanchor#1{} +% +\definecolor{hypercolor}{rgb}{0.5,0.0,0.5} % purplish external links. +% +% +\ifcase\Status + % \Status = 0 + \typeout{TeX Live documentation in DVI format} + \SingleColumntrue + \newenvironment{multicols}[1]{}{} + \or + % \Status = 1 + \typeout{TeX Live documentation in PDF format} + \RequirePackage[breaklinks, + colorlinks,linkcolor=hypercolor,citecolor=hypercolor, + urlcolor=hypercolor,filecolor=hypercolor, + bookmarksopen, + %pdfstartview={FitBH -320000}, % fails with acrobat7 + hyperindex] + {hyperref} + \SingleColumntrue + \newenvironment{multicols}[1]{}{} + \or + % \Status = 2 + \typeout{TeX Live documentation in HTML format} + \SingleColumntrue + \newenvironment{multicols}[1]{}{} + % read our config file, live4ht.cfg; q.v., for more definitions. + % hyperref load must come after the tex4ht load. + \RequirePackage[live4ht]{tex4ht} + \RequirePackage[tex4ht]{hyperref} \hyperlinkfileprefix{} + % definitions need simplifying for TeX4ht to make relative paths work. + \def\CDref#1#2{\href{../../../../#1}{#2}} + \def\OnCD#1{\href{../../../../#1}{#1}} + \def\htmlanchor#1{\HCode{<a id="#1"></a>}} + \or + % \Status = 3 + \typeout{TeX Live documentation as a Baskerville issue} + \@ifundefined{Fonts}% + {\RequirePackage{ae}}% + {\RequirePackage[T1]{\Fonts}} + \RequirePackage{bvoutln}% outline of baskerville + \SingleColumnfalse + \RequirePackage{multicol} + \or + % \Status = 4 + \typeout{TeX Live documentation as a TUB article} + \@ifundefined{Fonts}% + {\RequirePackage{ae}}% + {\RequirePackage[T1]{\Fonts}} + \SingleColumnfalse + \newenvironment{multicols}[1]{}{} +\fi +% +\ifnum \Status=4 +\else + \RequirePackage{texnames} + \providecommand\TeXXeT{\TeX-{}-% + \kern-.1emX\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT\@} + \def\MP{MetaPost} + \let\mf\MF + \newcommand\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt} + \newcommand\MIKTEX{MiK\kern-.025em \TeX}% per www.miktex.org + % from pictex.tex: + \ifx\PiC\undefined \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} \fi + \ifx\PiCTeX\undefined \def\PiCTeX{\PiC\kern-.11em\TeX} \fi +\fi +% +% hacking at sections etc., to pay attention to baskerville status +\newcommand{\@condend@multicols}{% + \ifSingleColumn + \else + \def\@tempa{multicols}% + \ifx\@tempa\@currenvir + \end{multicols}% + \fi + \fi +} +\let\Section\section +\renewcommand{\section}{% + \@ifstar + {\Section*}% + {% + \@condend@multicols + \@dblarg\@full@section + }% +} +\def\@full@section[#1]#2{% + \Section[#1]{#2}% + \ifSingleColumn\else\begin{multicols}{2}\fi +} +\let\SubSection\subsection +\renewcommand{\subsection}{% + \@ifstar{\SubSection*}% + {% + \@condend@multicols + \@dblarg\@full@subsection + } +} +\def\@full@subsection[#1]#2{% + \SubSection[#1]{#2}% + \ifSingleColumn\else\begin{multicols}{2}\fi +} + +% calm things down a bit if we're in a multiple-column version +\ifSingleColumn +\else + \def\@listI{\leftmargin\leftmargini + \parsep \z@ + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \itemsep \z@ \@plus .1\p@ + } + \let\@listi\@listI + \@listi + \def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 2\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \itemsep \z@ \@plus .1\p@ + } + \def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1\p@ \@plus 1\p@ \@minus 1\p@ + \parsep \z@ + \partopsep \z@ + \itemsep \topsep + } + \def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep + } + \def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep + } + \def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep + } +\fi +% +% array package stuff +\def\arraybackslash{\let\\=\@arraycr} +\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}} +% +% shaded rows (using facilities of colortbl) +% +\definecolor{pale}{gray}{.9} +\newcount\colrow +\gdef\RowColor{pale} +\def\SetRowColor{% + \rowcolor{\RowColor}% + \global\advance\colrow by1\relax + \ifodd\colrow + \gdef\RowColor{pale}% + \else + \gdef\RowColor{white}% + \fi +} +% redefine to hack up a reference even though we don't need it... +\renewcommand\@bibitem[1]{\if@filesw \immediate\write\@auxout + {\string\bibcite{#1}{?}}\fi\ignorespaces} +% +% \unknownTeXlive is a dummy texlive entry for the biblio +\newcommand\unknownTeXlive[2][\relax]{\textbf{\textsc{unknown}}% + \global\@all@unknown\expandafter{\the\@all@unknown{#2}}% +} +\newtoks\@all@unknown +\global\@all@unknown{} +\AtEndDocument{\@message@unknowns} +\def\@message@unknowns{\edef\@tempa{\the\@all@unknown}% + \ifx\@tempa\@empty + \else + \def\@tempa{*** TeX Live package location of }% + \expandafter\@output@unknowns\the\@all@unknown\@empty + \fi +} +\def\@output@unknowns#1{\edef\@tempb{#1}% + \ifx\@tempb\@empty + \typeout{ unknown}% + \else + \message{\@tempa#1,}% + \def\@tempa{}% + \expandafter\@output@unknowns + \fi +} + + +% Silence font warnings about no bold typewriter in LM. +\def\@font@warning#1{}% + +% Silence hyperref warnings about \kern. +\def\HyPsd@Warning#1{}% + +\endinput diff --git a/Master/texmf/doc/texlive/texlive-en/texlive-en.tex b/Master/texmf/doc/texlive/texlive-en/texlive-en.tex index 3981fa24718..bd2320d21a1 100644 --- a/Master/texmf/doc/texlive/texlive-en/texlive-en.tex +++ b/Master/texmf/doc/texlive/texlive-en/texlive-en.tex @@ -1100,7 +1100,9 @@ fonts without any installation in \TeX. If you do need to do this, see \url{http://tug.org/fonts/fontinstall.html} for our best effort at -describing the procedure. +describing the procedure. If you rigorously maintain your local font +maps, \texttt{tlmgr generate updmap} \textit{may} be useful, notably in +moving from release to release; see the \cmdname{tlmgr} documentation. \subsubsection{Increasing maximum memory on Windows and Cygwin} diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl index 36067ccb359..52373b7c67a 100755 --- a/Master/texmf/scripts/texlive/tlmgr.pl +++ b/Master/texmf/scripts/texlive/tlmgr.pl @@ -5493,10 +5493,11 @@ C<TEXMFSYSCONFIG> (while the other files are in C<TEXMFSYSVAR>), because that is the location that C<updmap-sys> (via C<tcfmgr>) uses. Notwithstanding the above, if you only use the fonts and font packages -within TeX Live, and maintain your local fonts (if any) using +within TeX Live, and rigorously maintain your local fonts (if any) using C<updmap-local.cfg>, there is nothing wrong with using C<generate -updmap>. Indeed, we use it ourselves to generate the C<updmap.cfg> file -in the live source repository. +updmap>. It can be helpful in moving from release to release, +especially. We use it ourselves to generate the C<updmap.cfg> file in +the live source repository. In more detail: C<generate> remakes any of the five config files C<language.dat>, C<language.def>, C<language.dat.lua>, C<fmtutil.cnf>, @@ -5594,11 +5595,10 @@ The respective locations are as follows: web2c/fmtutil.cnf (and fmtutil-local.cnf); web2c/updmap.cfg (and updmap-local.cfg). -Final repetition: as explained above, C<tlmgr> does I<not> use the -equivalent of C<generate updmap> for map files. Therefore, if you want -to make use of C<updmap-local.cfg>, you need to run C<tlmgr generate -updmap> yourself. After that, network updates and your local changes -should be merged. +Final repetition: as explained above, C<tlmgr> does I<not> use +C<generate updmap> for map files. Therefore, if you want to make use of +C<updmap-local.cfg>, you need to run C<tlmgr generate updmap> yourself. +After that, network updates and your local changes should be merged. =head1 CONFIGURATION FILE |