diff options
Diffstat (limited to 'Master/texmf-doc/source/english/texlive-en')
24 files changed, 18788 insertions, 0 deletions
diff --git a/Master/texmf-doc/source/english/texlive-en/Makefile b/Master/texmf-doc/source/english/texlive-en/Makefile new file mode 100644 index 00000000000..d2feb0b5f19 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/Makefile @@ -0,0 +1,68 @@ +# $Id: //depot/Master/texmf-doc/source/english/texlive-en/Makefile#12 $ $Date: 2005/09/27 $ $Author: karl $ +# Makefile for TeX Live documentation. Public domain. +doc = live + +all: pdf html + +env = TEXINPUTS=../../general/texlive-common:; export TEXINPUTS; + +pdf: + rm -f *.aux *.toc *.lof *.lot *.xref* *.tmp *.out + $(env) pdflatex '\nonstopmode\def\Status{1}\input $(doc)' + $(env) pdflatex '\nonstopmode\def\Status{1}\input $(doc)' + $(env) pdflatex '\nonstopmode\def\Status{1}\input $(doc)' + +html: + rm -f *.aux *.toc *.lof *.lot *.xref* *.tmp *.out *.4tc +# this sequence is equivalent to running "ht latex $(doc)". We do it +# this way so we can \def\Status for the \ifcase in tex-live.sty. + $(env) latex '\nonstopmode\def\Status{2}\input $(doc)' + $(env) latex '\nonstopmode\def\Status{2}\input $(doc)' + $(env) latex '\nonstopmode\def\Status{2}\input $(doc)' + $(env) latex '\nonstopmode\def\Status{2}\input $(doc)' + $(env) tex4ht $(doc) + $(env) t4ht $(doc) + +clean: + rm -f *.aux *.log *.blg *.toc *.out *.lot tex4ht.ps *.4* + rm -f *.xref* *.lg *.idv *.out *.otc *.tmp tmp.* + rm -f live.dvi live.ps + +realclean: clean + rm -f live.pdf + rm -f *.html *.htm live.css *.gif *.jpg + + +insttop = ../../../doc +instfiles = live*html *.css live.pdf +install: + lang=`dirname \`pwd\` | sed 's,.*/,,'`; \ + tldir=`pwd | sed 's,.*/,,'`; \ + instdir=$(insttop)/$$lang/$$tldir; \ + echo tldoc install to $$instdir; \ + for f in $(instfiles); do \ + cmp -s $$f $$instdir/$$f && continue; \ + p4 edit $$instdir/$$f; \ + cp -p $$f $$instdir/$$f; \ + done + @echo "Don't forget to p4 submit." + + +# don't use these, they don't work. +dvi: + rm -f *.aux *.toc + latex '\nonstopmode\def\Status{0}\input $(doc)' + latex '\nonstopmode\def\Status{0}\input $(doc)' + latex '\nonstopmode\def\Status{0}\input $(doc)' + +baskerville: + rm -f *.aux *.toc + latex '\def\Status{3}\input $(doc)' + latex '\def\Status{3}\input $(doc)' + latex '\def\Status{3}\input $(doc)' + +tugboat: + rm -f *.aux *.toc + latex '\def\Status{4}\input $(doc)' + latex '\def\Status{4}\input $(doc)' + latex '\def\Status{4}\input $(doc)' diff --git a/Master/texmf-doc/source/english/texlive-en/README b/Master/texmf-doc/source/english/texlive-en/README new file mode 100644 index 00000000000..6dc503eeb6b --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/README @@ -0,0 +1,5 @@ +$Id: //depot/Master/texmf-doc/source/english/texlive-en/README#1 $ $Date: 2004/10/11 $ $Author: karl $ +TeX Live documentation. This file is public domain. + +We only generate the documentation in PDF and HTML formats -- see the +Makefile. This saves us having to have the images in EPS format too. diff --git a/Master/texmf-doc/source/english/texlive-en/archive/bv-live.tex b/Master/texmf-doc/source/english/texlive-en/archive/bv-live.tex new file mode 100644 index 00000000000..ad044e568cb --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/bv-live.tex @@ -0,0 +1,84 @@ +% this is the baskerville version of the live documentation +\providecommand{\Status}{3} + +\setcounter{errorcontextlines}{999} +\documentclass{article} +\advance\textwidth by 1in +\advance\oddsidemargin by -1in +\advance\evensidemargin by -1in +\newsavebox{\warnbox} +\def\Q#1{\par\vskip6pt\leftline{#1}\par} +\setcounter{tocdepth}{2} +\pretolerance=1000 +\tolerance=1500 +\hbadness=3000 +\vbadness=3000 +\hyphenpenalty=400 +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\setcounter{topnumber}{5} +\setcounter{totalnumber}{5} +\def\eTeX{$\varepsilon$-\TeX} +%\def\CTAN{\textsc{ctan}} +%\def\TUB{\textsc{tub}} +\def\Dash{---} +\def\hyph{-} +%\def\TeXXeT{\TeX-XeT} +\def\OMEGA{$\Omega$} +\def\bs{{\protect\normalfont\ttfamily\char'134}} +\DeclareRobustCommand{\cs}[1]{{\normalfont\ttfamily\char`\\#1}} +%\def\cs#1{\mbox{\normalfont\ttfamily\bs#1}} +\def\La{La} +\let\textsl\textit +\let\sl\it +\let\slfamily\itfamily +\def\ttdefault{cmtt} +\usepackage{tex-live} +\begin{document} +%\author{Sebastian Rahtz\\ +%\texttt{s.rahtz@elsevier.co.uk}\\ +%Michel Goossens\\ +%\texttt{m.goossens@cern.ch}} +%\title{The \protect\TeX\ Live Guide, 3rd edition} +%\date{March 1998} + +\BASKyear{1998} +\BASKmonth{April} +\BASKvol{8} +\BASKno{2} +\BASKed*{Robin Fairbairns} +\BASKfonts{Y\&Y European Modern} +\makeBSKtitle + +\input editorial +\ifbaskerville +\end{multicols} +%\vfill\Dings\vfill +\fi +\clearpage + +\begin{center} + \LARGE The \TeX\ Live Guide, 3rd edition +\end{center} +\title{\TeX\ Live Guide, 3rd edition} + +\ifbaskerville\begin{multicols}{2}\fi +\tableofcontents +\listoftables +\ifbaskerville +\end{multicols} +\Dings +\fi + +\input tex-live +\appendix + +\Dings + +\input live-app + +\vfill\Dings\vfill +\clearpage +\input sec +\end{document} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/bvoutln.sty b/Master/texmf-doc/source/english/texlive-en/archive/bvoutln.sty new file mode 100644 index 00000000000..92f19fd027b --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/bvoutln.sty @@ -0,0 +1,193 @@ +% extracts of baskerville.cls for use with the tex-live documentation +% when we're producing a bv issue with it. + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% SIDE MARGINS: +\oddsidemargin -2.5pc \evensidemargin -2.5pc +\marginparwidth 4pc % don't use marginal notes... +\marginparsep 0.5pc % ...in the UK TUG newsletter + +% VERTICAL SPACING: +\topmargin -3pc +\headheight 12\p@ +\headsep 15\p@ +\topskip 10\p@ +\footskip 15\p@ + +% DIMENSION OF TEXT: + +\textheight 250mm % height of text on a page (A4 paper) +\textwidth 180mm % total width of a page +\columnseprule 0.5\p@ % width of line in the inter-column gutter +\columnsep 10mm % space between columns +\tolerance 9999 % make those columns justify + +% FOOTNOTES: +\footnotesep 6\p@ +\skip\footins 19.5\p@ plus 12\p@ \@minus 1\p@ + +% FLOATS: +\floatsep 12\p@ plus 5.5\p@ \@minus 1\p@ +\textfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\intextsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dblfloatsep 12\p@ plus 5.5\p@ \@minus 2\p@ +\dbltextfloatsep 15\p@ plus 4.5\p@ \@minus 3\p@ +\@fptop 0\p@ plus 0fil +\@fpsep 12\p@ plus 0fil +\@fpbot 0\p@ plus 3fil +\@dblfptop 0\p@ plus 0fil +\@dblfpsep 12\p@ plus 0fil +\@dblfpbot 0\p@ plus 3fil +\marginparpush 5\p@ + +% **************************************** +% * TITLES AND ABSTRACT * +% **************************************** +% + +%% Volume Number (ie Year - 1990) +\def\BASKvol#1{\gdef\BASK@vol{#1}} +\BASKvol{?} + +%% Issue Number (ie Month/2, roughly) +\def\BASKno#1{\gdef\BASK@no{#1}} +\BASKno{?} + +% Editor, Star form for Guest editor +\def\BASKed{\@ifstar{\BASK@ed{Guest }}{\BASK@ed{}}} +\def\BASK@ed#1#2{\gdef\BASK@editor{#1Editor: #2}} +\BASKed{????????} + +%% Year (4 digits) +\def\BASKyear#1{\gdef\thisyear{#1}} +\BASKyear{????} + +% Month (as a Word) +\def\BASKmonth#1{\gdef\thismonth{#1}} +\BASKmonth{?????} + +\def\makeBSKtitle{\par + \begingroup + \vspace*{-\headheight}% + \@maketitle + \bigskip\hrule\bigskip + \thispagestyle{plain} + \endgroup + \let\maketitle\relax + \let\@maketitle\relax +} +\newbox\BSKbox +\def\@maketitle{% + \centerline{\BASK@titleline}% + \medskip + \hbox to \textwidth{\bfseries The Annals of the UK \TeX\ Users + Group\hfill \BASK@editor\hfill Vol.~\BASK@vol\ No.~\BASK@no}% + \smallskip\hbox to \textwidth{\bfseries ISSN 1354--5930 + \hfill \thismonth\ \thisyear}% + \medskip + \noindent\ignorespaces + \BASK@headparone} + +% The Journal title command. +% You probably only want to change this if you want to use a design-size +% font rather than let \scaletowidth scale for some special issue. +\def\BASKtitle#1{\gdef\BASK@titleline{#1}} +\let\scaletowidth=\resizebox% added by Sean K. Harbour for Textures +\BASKtitle{% + \fontfamily{mbvx}\bfseries + \scaletowidth{\textwidth}{!}{% modified by Sean K. Harbour + B\,a\,s\,k\,e\,r\,v\,i\,l\,l\,e}} + + +% The first paragraph. Needs to be reset if a special issue used a +% different font set. +\def\BASKheadparone#1{\gdef\BASK@headparone{#1}} +\BASKheadparone{% +This issue of \BV\ is set in \@BASKfonts, and printed on a Xerox Docutech. Production and distribution is +undertaken in Cambridge by Robin Fairbairns. } + + +\def\BASKfonts#1{\gdef\@BASKfonts{#1}} +\BASKfonts{Monotype Baskerville, with Computer Modern Typewriter for + literal text} + +% +% for \Dings +\RequirePackage{pifont} +% +% available for inter-article dinglines +% +\def\Dings{\nopagebreak{\footnotesize\dingline{167}}} + +% +% hack representation of appendices +\let\BV@@appendix\appendix +\renewcommand{\appendix}{\BV@@appendix + \renewcommand\@seccntformat[1]{\@ifundefined{@seccnt@##1}% + {\csname the##1\endcsname\quad}% + {\csname @seccnt@##1\endcsname}} + \newcommand\@seccnt@section{Appendix~\thesection~} +} + +% +% page styles +% +% \ps@empty defined in LATEX.TEX +% +\def\ps@plain{\let\@mkboth\markboth + \def\@oddhead{} + \def\@evenhead{} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} +\def\ps@headings{\let\@mkboth\markboth + \def\@oddhead{\hfill\emph{\@title}\hfill} + \def\@oddfoot{\rm \hfil --\thepage--\hfil} + \def\@evenhead{\it Baskerville \hfill + Volume \BASK@vol, Number \BASK@no} + \def\@evenfoot{\rm \hfil --\thepage--\hfil} +} + +% +% allow setting of pagehead title +\def\title{\@ifnextchar [{\@titletwo}{\@titleone}} +\def\@titletwo[#1]#2{\gdef\@title{#1}\gdef\@longtitle{#2}} +\def\@titleone#1{\gdef\@title{#1}\gdef\@longtitle{#1}} + +% +% more exciting page parameters +\@twosidetrue +\pagestyle{headings} + +\providecommand{\ukt}{UK \acro{TUG}} + +\newcommand{\standardtitles}{% + \def\section{%\typeout{** section!}% + \@startsection {section}{1}{\z@} + {-12\p@ \@plus -6\p@ \@minus -.1\p@} + {6\p@} + {\raggedright\large\bfseries}} + \def\subsection{\@startsection{subsection}{2}{\z@} + {-4\p@ \@plus -2\p@ \@minus -.1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\itshape}} + \def\subsubsection{\@startsection{subsubsection}{3}{\z@} + {-6\p@ \@plus -3\p@ \@minus -1\p@} + {0.1\p@ \@plus 2\p@} + {\raggedright\normalsize\it}} + \def\paragraph{\@startsection{paragraph}{4}{\z@} + {12\p@ \@plus 2.25\p@ \@minus -1\p@} + {-0.5em} + {\normalsize\bfseries}} + \def\subparagraph{\@startsection{subparagraph}{5}{\z@} + {12\p@ \@plus 2.25\p@ \@minus 1\p@} + {-0.5em} + {\normalsize\it}} + \setcounter{secnumdepth}{-1} +} + +\endinput + diff --git a/Master/texmf-doc/source/english/texlive-en/archive/changemail b/Master/texmf-doc/source/english/texlive-en/archive/changemail new file mode 100644 index 00000000000..dd792a25f78 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/changemail @@ -0,0 +1,24 @@ +s/J.Smart@ed.ac.uk/??/ +s/gerd@uni-koblenz.de/??/ +s/Meijer@rulfsw.fsw.LeidenUniv.nl/??/ +s/wl@gnu.org/xlwy01@uxp1.hrz.uni-dortmund.de/ +s/weissert@SJUPHIL.SJU.EDU/Tom@Weissert.net/ +s/mehlich@informatik.uni-muenchen.de/mmehlich@semdesigns.com/ +s/eijkhout@math.ucla.edu/victor@eijkhout.net/ +s/ca_rowley@vax.acs.open.ac.uk/c.a.rowley@open.ac.uk/ +s/B.Jackowski@gust.s.org.pl/B.Jackowski@gust.org.pl/ +s/P.Pianowski@gusts.org.pl/P.Pianowski@gust.org.pl/ +s/mittelbach@mzdmza.zdv.uni-mainz.de/Frank.Mittelbach@Uni-Mainz.de/ +s/mcjones@pa.dec.com/paul.mcjones@acm.org/ +s/h.harders@tu-bs.de/Harald.Harders@dlr.de/ +s/pwilson@cme.nist.gov/peter.r.wilson@boeing.com/ +s/wikner@ariel.nac.ac.za/wikner@nac.ac.za/ +s/vitus@agropc.msk.su/vitus@ice.ru/ +s/greg@bic.mni.mcgill.ca/gward@python.net/ +s/mittelbach@mzdmza.zdv.uni-mainz.de/frank.mittelbach@latex-project.org/ +s/fbraun@rz.uni-potsdam.de/fbraun@atdot.org/ +s/david@dcarlisle.demon.co.uk/david.carlisle@latex-project.org/ +s/davidc@nag.co.uk/david.carlisle@latex-project.org/ +s/rf@cl.cam.ac.uk/rf10@cam.ac.uk/ +s/robin.fairbairns@cl.cam.ac.uk/rf10@cam.ac.uk/ +s/robin@lsl.co.uk/rf10@cam.ac.uk/
\ No newline at end of file diff --git a/Master/texmf-doc/source/english/texlive-en/archive/l.pl b/Master/texmf-doc/source/english/texlive-en/archive/l.pl new file mode 100644 index 00000000000..d74f313a5cc --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/l.pl @@ -0,0 +1,44 @@ +require "status.pl"; +require "texlive.pl"; +while (<>) { + chop; + s/,$//; + if (/^\@TeXIndex/) + { + ($nam) = /^\@TeXIndex.(.*)/; + print "\@TeXIndex\{$nam"; + $Status=1; + $Texlive=1; + $Modified=0; + } + elsif (/^ *modified/) { s/, *$//; $mod=$_; } + elsif (/^ *status/) { $Status=0; + if ($L{$nam}) + { print ",\n status\t= \{$L{$nam}\}"; + $Modified=1;} + else { print ",\n$_"; } + } + elsif (/^ *texlive/) { $Texlive=0; + if ($texlive{$nam} ne "") + { print ",\n texlive\t= \{$texlive{$nam}\}"; + $Modified=1;} + } + elsif (/^}/) { + if ($Status) { + print ",\n status\t= \{unknown\}"; + } + if ($Texlive && $texlive{$nam} ne "") + { print ",\n texlive\t= \{$texlive{$nam}\},\n"; } + if ($Modified) + { print ",\n modified\t= {1999/03/26 10:00:00 <s.rahtz\@elsevier.co.uk>}\n"; } + elsif ($M{$nam} ne "") + { print ",\n modified\t= \{$M{$nam}\}\n"; } + else + {print ",\n$mod\n"; } + print "}\n"; + } + + elsif (/= {/) { print ",\n$_"; } + else { print "\n$_"; } + } + diff --git a/Master/texmf-doc/source/english/texlive-en/archive/live-2003.tex b/Master/texmf-doc/source/english/texlive-en/archive/live-2003.tex new file mode 100644 index 00000000000..49591b965e2 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/live-2003.tex @@ -0,0 +1,3937 @@ +% $Id: //depot/Build/cdbuild/tldocsource/english/live.tex#88 $ $Author: karl $ $Date: 2003/09/25 $ +% change history (started May 13th 2002) +% 2003/09/06: fixes from Staszek +% 2003/09/05: touched by Karl +% 2003/09/04: fixes from Staszek and Fabrice +% 2003/09/01: fixes from Volker +% 2003/08/24: win32 updates, by Fabrice +% 2003/08/12: fixes from Christer Gustafsson <gustaf@powertech.no>. +% 2003/07/07: substantial revisions by karl. +% 2002/05/25: remove mention of sizes, and bsr-interpolated; add Gutenberg +% 2002/05/18: win32 updates, by Fabrice +% 2002/05/14: corrected example files, other small errors noted by Volker +% 2002/05/13: added tex-langafrican to list of collections +% +\documentclass{article} +\usepackage{tex-live} +% +% +\begin{document} + +\title{{\huge\textsf{\TK{} 2003}}\\[3mm] + The \protect\TeXLive{} Guide} +\date{September 2003} + +\author{Sebastian Rahtz, editor \\[3mm] + \email{tex-live@tug.org}\\ + \url{http://tug.org/texlive/}\\[10mm] +\ifnum \Status=2 + \includegraphics[bb=0 0 824 741]{../pictures/front.jpg} \\[5mm] +\else + \includegraphics[width=.5\linewidth]{../pictures/front} \\[5mm] +\fi + \small \textit{Documentation contacts:}\\[3mm] + \small \begin{tabular}{lcr} + Czech/Slovak & Petr Sojka & \email{sojka@fi.muni.cz} \\ + & Janka Chleb\'\i kov\'a & \email{chlebikj (at) dcs.fmph.uniba.sk} \\ + English & Karl Berry & \email{karl@freefriends.org} \\ + French & Fabrice Popineau & \email{fabrice.popineau@supelec.fr} \\ + German & Volker RW Schaa & \email{volker@dante.de} \\ + Polish & Staszek Wawrykiewicz & \email{staw@gust.org.pl} \\ + Russian & Boris Veytsman & \email{borisv@lk.net} \\ + \end{tabular} + } + +% comes out too close to the toc, and we know it's page one anyway. +\thispagestyle{empty} + +\maketitle +\newpage + +\begin{multicols}{2} +\tableofcontents +\listoftables +\end{multicols} + +\section{Introduction} +\label{sec:intro} + +This document describes the main features of the \TeXLive{} software +distribution\Dash a \TeX{} and \LaTeX{} distribution for Linux and other +Unix flavors, \MacOSX, and (32-bit) Windows systems. (Warning: it is +not especially useful for older Mac or \acro{MS-DOS} systems.) It +includes precompiled binaries for \TeX{}, \LaTeXe{}, \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 the 2003 release, the last update of packages and programs was made +on September 3, 2003. For newer versions, please consult \acro{CTAN}, +\url{http://www.ctan.org}. + +For a brief summary of the major changes in this edition of \TeXLive{}, +see section~\ref{sec:history} on p.~\pageref{sec:history}. + + +\subsection{Basic usage of \protect\TeXLive{}} +\label{sec:basic} + +You can use \TeXLive{} in three principal ways: + +\begin{enumerate} + +\item You can run \TeXLive{} directly from the distribution media +(except for the \pkgname{inst} distribution; see +section~\ref{sec:multiple-dist} on p.~\pageref{sec:multiple-dist}). +This takes almost no disk space, as you might expect, and gives you +immediate access to everything in \TeXLive{}. Of course performance +will be worse than running on local disk, but you may well find it +acceptable. + +\item You can install all or part of \TeXLive{} to a local disk. This +is the most common use of \TeXLive. You will need a minimum of 120 +megabytes, 360 megabytes for a recommended system, and 800 megabytes for +a full system. + +\item You can integrate a particular package or collection into your +existing \TeX{} system, either a \TeXLive{} system you installed earlier +or a different system. + +\end{enumerate} + +\noindent All of these are described in detail in the \acro{OS}-specific +installation sections. + + +\subsection{Getting help} +\label{sec:help} + +The \TeX{} community is both active and friendly, and virtually all +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 +commercial-style support, you can forego \TeXLive{} completely and +purchase a vendor's system; see +\url{http://tug.org/interest.html#vendors} for a list.) + +Here is a list of resources, approximately in the order we recommend +using them: + +\begin{description} +\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 \TeXLive{} in \OnCD{FAQ/english}, and is +available on the Internet through \url{http://faq.tug.org}. Please +check here first. + +\item [\TeX{} Catalogue] If you are specifically looking for a package, +font, program, etc., the \TeX{} Catalogue is the place to look. It is a +huge list of all \TeX{}-related items. See +\OnCD{texmf/doc/html/catalogue}, or +\url{http://www.ctan.org/tex-archive/help/Catalogue/catalogue.html}. + +\item [\TeX{} Web Resources] This web page has many \TeX{}-related +links, in particular for numerous books, manuals, and articles on all +aspects of the system: \url{http://tug.org/interest.html}. + +\item [support archives] The two principal forums for support are the +Usenet newsgroup \url{news:comp.text.tex} and the mailing list +\email{texhax@tug.org}. So, their archives have thousands of past +questions and answers for your searching pleasure. See +\url{http://groups.google.com/groups?group=comp.text.tex} and +\url{http://tug.org/mail-archives/texhax}, respectively. A query on a +general web search engine, such as \url{http://google.com}, never hurts. + +\item [posting questions] If you cannot find an answer, you can post to +\dirname{comp.text.tex} through Google or your newsreader, or through +email to \email{texhax@tug.org}. But before you post, \emph{please} +read this \acro{FAQ} entry for advice on asking questions in such a way +that you're most likely to get an answer: +\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}. + +\item [\TeXLive{} support] If you want to report a bug or have +suggestions or comments on the \TeXLive{} 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 +\TeXLive{}, you are better off writing to that program's maintainer or +mailing list. + +\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. Welcome to +\TeX{}! + + +\section{Structure of \protect\TeXLive} +\label{sec:struct-tl} + +The main two installation scripts for Unix and \MacOSX{} are +\texttt{install-tl.sh} and \texttt{install-pkg.sh}. We discuss them +in section \ref{sec:unix-install} on p.~\pageref{sec:unix-install}. +Here, we describe the structure and contents of \TeXLive{}. + + +\subsection{Multiple distributions: \protect\pkgname{live}, + \protect\pkgname{inst}, \protect\pkgname{demo}} +\label{sec:multiple-dist} + +As of 2003, space limitations of \acro{CD-ROM} format have forced us to +divide \TeXLive{} into three distributions, as follows. + +\begin{description} + +\item [live] a complete, runnable system on \acro{DVD}; it is too large +for \acro{CD-ROM}. (The \DVD{} also includes a snapshot of the \CTAN{} +repository, completely independent of \TeXLive{}.) + +\item [inst(allable)] a complete system on \CD; in order to make it fit, +we had to compress everything we could. Therefore, it is not possible +to run \TeX\ directly from the installable \CD, you have to install it to +disk (hence its name). Installation is described in subsequent sections. + +\item [demo] a live system runnable directly from \CD; in order to make +this fit, we omitted the very large collection of \acro{CJK} (Chinese, +Japanese, Korean) language support, support for typesetting music, some +less-commonly used fonts, and included executables only for Linux, +\MacOSX, and Windows systems. + +\end{description} + +\noindent You can tell which type of distribution you're in by looking +for a \texttt{00\var{type}.TL} file in this top-level directory. + + +\subsection{Top level directories} + +Here is a brief listing and description of the top level directories in +the \TeXLive{} distribution. + +\smallskip +\begin{tabular}{>{\ttfamily}lp{.8\hsize}} +bin & The \TeX{} system programs, arranged by platform. \\ +Books & Examples from some of the books about \TeX\ (see + \filename{Books/README}). \\ +FAQ & Current versions of major FAQ collections. \\ +info & A few manuals in \acro{GNU} Info format, where available. \\ +\MacOSX & Supporting software for \MacOSX (see + section~\ref{sec:mac-install} on p.~\pageref{sec:mac-install}). \\ +man & Unix man pages. \\ +source & The source of all programs, including the main \Webc{} + \TeX{} and \MF{} distributions. These are stored in a + \cmdname{bzip2}-compressed tar archive. \\ +support & assorted auxiliary packages and programs. These are + \emph{not} installed by default. This includes + \cmdname{Ghostscript}, \cmdname{netpbm}, and assorted editors and + \TeX\ shells. \\ +texmf & root of installed packages, fonts, config files, etc. \\ +usergrps & Material about a few of the \TeX\ user groups. (Visit + \url{http://tug.org/usergroups.html} for a current list.) \\ +xemtex & The \cmdname{XEmacs} editor and other support programs for + Windows (see section~\ref{sec:win-xemtex} on p.~\pageref{sec:win-xemtex}). + These programs generally come pre-installed on Unix systems, or are + at least easy to compile. \\ +\end{tabular} + + +\subsection{Extensions to \TeX} +\label{sec:tex-extensions} + +\TeXLive{} contains three extended versions of \TeX: + +\begin{description} + +\item [\eTeX] adds a small but powerful 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/doc/etex/base/etex_man.pdf}. \eTeX{} is now the default for +\LaTeX{} and pdf\LaTeX{}. + +\item [pdf\TeX] writes Acrobat PDF format as well as \dvi{}. The +\LaTeX{} \pkgname{hyperref} package has an option `\optname{pdftex}' +which turns on all the program features. See +\OnCD{texmf/doc/pdftex/pdftex-l.pdf} and +\OnCD{texmf/doc/pdftex/base/example.tex}. + +\item [\OMEGA\ (Omega)] 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. See +\OnCD{texmf/doc/omega/base/doc-1.8.tex} (not completely up-to-date). + +\end{description} + + +\subsection{Other notable programs in \protect\TeXLive} + +Here are a few other commonly-used programs included in \TeXLive{}: + +\begin{cmddescription} + +\item [bibtex] bibliography support. + +\item [makeindex] index support. + +\item [dvips] convert \dvi{} to \PS{}. + +\item [xdvi] \dvi{} previewer for the X Window System. + +\item [dvilj] HP LaserJet driver. + +\item [dv2dt, dt2dv] convert \dvi{} to/from plain text. + +\item [dviconcat, dviselect] cut and paste pages +from \dvi{} files. + +\item [dvipdfm] convert \dvi{} to PDF, an alternative approach +to pdf\TeX\ (mentioned above). See the \pkgname{ps4pdf} and +\pkgname{pdftricks} packages for still more alternatives. + +\item [psselect, psnup, \ldots] \PS{} +utilities. + +\item [lacheck] \LaTeX{} syntax checker. + +\item [texexec] Con\TeX{}t and PDF processor. + +\item [tex4ht] \TeX{} to HTML converter. + +\end{cmddescription} + + +\section{Unix installation} +\label{sec:unix-install} + +As introduced in section~\ref{sec:basic} on p.~\pageref{sec:basic}, +\TeXLive{} has three principal uses: + +\begin{enumerate} +\item Run directly from media. +\item Install to disk. +\item Integrate a particular package or collection into your existing +\TeX{} installation. +\end{enumerate} + +\noindent The following sections describes the Unix-specific procedures +for each of these. + +\ifSingleColumn \begin{figure}[ht]\noindent \fi +\begin{warningbox} +\textbf{Warning: } The \TK{} \CD{}s and \DVD{} are in ISO 9660 (High Sierra) +format, \emph{with} Rock Ridge (and Joliet, for Windows) +extensions. Therefore, in order to take full advantage of the \TK{} +under Unix, your system needs to be able to use the Rock Ridge +extensions. Please consult the documentation for your \cmdname{mount} +command to see how to do this. If you have several different machines +on a local network, you may be able to mount the \CD{}s on one which +does support Rock Ridge, and use this with the others. + +\leavevmode\quad Linux, Free\acro{BSD}, Sun, \acro{SGI} and +Alpha systems should be able to use the \CD{}s without problems. We +would appreciate receiving detailed advice from users on other systems +who succeed, for future versions of this documentation. + +\leavevmode\quad +The discussion below assumes you have been able to mount +the \CD{}s with full Rock Ridge compatibility. +\end{warningbox} +\ifSingleColumn\end{figure}\fi + + +% +\subsection{Running \protect\TeXLive{} directly from media (Unix)} + +\def\runlive{% text repeated in windows section +It is possible to use the \TeX{} system directly from the \pkgname{demo} +\CD{} or the \pkgname{live} \DVD{}, without installing the distribution +to disk. (Thus the name `\TeXLive', in fact.) It is \emph{not} +possible to run \TeX{} directly from the \pkgname{inst} \CD (see +section~\ref{sec:multiple-dist} on p.~\pageref{sec:multiple-dist}). +} + +Only Linux, \MacOSX, and Windows binaries are included on the demo \CD; +if you want to run live on other Unix systems, you'll need to use the +\DVD. + +\def\startinst{% repeated in other subsections +To start, we must mount the \CD{} or \DVD{}, with Rock Ridge extensions +enabled. The exact command to do this varies from system to system; the +following works under Linux, except the name of the device +(\filename{/dev/cdrom}, here) may vary. (All our examples will use +\texttt{>} as the shell prompt; user input is \underline{underlined}.) +\begin{alltt} +> \Ucom{mount -t iso9660 /dev/cdrom /mnt/cdrom} +\end{alltt} + +\noindent Change the current directory to the mount point: +\begin{alltt} +> \Ucom{cd /mnt/cdrom} +\end{alltt} + +\noindent Under \MacOSX, the directory is typically under +\dirname{/Volumes}, and the media will be mounted automatically. +} + +\startinst + +Run the installation script \filename{install-tl.sh}: +\begin{alltt} +> \Ucom{sh install-tl.sh} +Welcome to TeX Live... +\end{alltt} + +\def\firstinstcommand{% +\noindent After various greeting messages and a list of the main menu +options, the installation will ask you to enter a command. Do this by +typing the desired character and hitting return; don't type the angle +brackets. Either uppercase or lowercase is ok; we'll use lowercase in +our examples. +} +\firstinstcommand + +For running live, our first command will be \Ucom{d} and then the +subcommand \Ucom{1} to set directories. Even in this case, we must +choose a directory on the local disk to place files that the \TeX{} +system itself generates, such as fonts and formats, and also to provide +a place for updated configuration files, if need be. We'll use +\dirname{/usr/local/texmf-local} in this example. (If the default value +of \dirname{/usr/TeX} works for you, then you can skip this step.) +\begin{alltt} +Enter command: \Ucom{d} +Current directories setup: +<1> TEXDIR: /usr/TeX +... +Enter command: \Ucom{1} +New value for TEXDIR [/usr/TeX]: \Ucom{/usr/local/texmf-local} +... +Enter command: \Ucom{r} +\end{alltt} + +\noindent Back at the main menu, our second and last command is +\Ucom{r}, to set up for running live off the media without installing +to disk: +\begin{alltt} +Enter command: \Ucom{r} +Preparing destination directories... +... +Welcome to the TeX Live system! +> +\end{alltt} + +\noindent And we are back at the system prompt, as shown. + +Next, it is necessary to alter two environment variables: +\envname{PATH}, to an architecture-dependent value (so that we can run +the programs), and \envname{VARTEXMF}, to the value specified above. See +table~\ref{tab:archlist} for a list of the architecture names for the +different systems, and whether they are available on the \pkgname{demo} +\CD. All systems are available in the \pkgname{inst} and \pkgname{live} +distributions. (In addition to the version-specific names listed here, +there are generic names without the version numbers. For instance, +\dirname{sparc-solaris} links to \dirname{sparc-solaris2.7}. The +generic names can be used to protect against the version numbers +changing in the future, if you wish.) + +\def\runtexconfig{% +After the main installation has completed, and environment variables +have been set, the next step is to run \cmdname{texconfig} to customize +your installation for your needs. This is explained in +section~\ref{sec:texconfig}, p.~\pageref{sec:texconfig}. +} +\runtexconfig + +\begin{table*}[ht] +\caption{Supported system architectures.} +\label{tab:archlist} +\begin{tabular}{>{\ttfamily}lll} +alpha-linux & HP Alpha Linux & \\ +alphaev5-osf4.0d & HP Alphaev5 OSF & \\ +%hppa2.0-hpux10.20 & HP9000 HPUX 10.20 & \\ +i386-freebsd4.8 & Intel x86 FreeBSD & \\ +i386-linux & Intel x86 GNU/Linux & demo \CD\\ +i386-openbsd3.3 & Intel x86 OpenBSD & \\ +i386-solaris2.8 & Intel x86 Solaris & \\ +mips-irix6.5 & SGI IRIX & \\ +powerpc-aix4.3.3.0 & IBM RS/6000 AIX & \\ +powerpc-darwin6.3 & \MacOSX & demo \CD\\ +sparc-solaris2.7 & Sun Sparc Solaris & \\ +sparc64-linux & Sun Sparc Linux & \\ +win32 & Windows (32-bit) & demo \CD\\ +\hline +\end{tabular} +\end{table*} + +\label{text:path} +The syntax for setting the environment variables, and the initialization +file to put them in, depends on the shell you use. If you use a +Bourne-compatible shell (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}, et +al.), put the following into your \filename{$HOME/.profile} file: +\begin{alltt} +PATH=/mnt/cdrom/bin/\Ucom{\emph{archname}}:$PATH; export PATH +VARTEXMF=/usr/local/texmf-local/texmf-var; export VARTEXMF +\end{alltt} + +\noindent For C shell-compatible shells (csh, tcsh), put the following +into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /mnt/cdrom/bin/\Ucom{\emph{archname}}:$PATH +setenv VARTEXMF /usr/local/texmf-local/texmf-var +\end{alltt} + +\def\donewithinst{% +\noindent Then log out, log back in, and test your installation +(see section~\ref{sec:test-install} on p.~\pageref{sec:test-install}). +} +\donewithinst + +\def\ifindoubt{% +If in doubt, please ask any local system gurus to help you with +problems; for example, the way to mount the \TeXLive{} media, which +directory or directories to use, and precise details of the changes to +your personal initialization files can and do vary from site to site. +} +\ifindoubt + + +% +\subsection{Installing \protect\TeXLive{} to disk} +\label{sec:unix-install-disk} + +It is possible, indeed typical, to install the \TeX{} system from the +\TeXLive{} to disk. This can be done either from the \pkgname{live} +\DVD, or the \pkgname{inst} \CD. It can also be done from the +\pkgname{demo} \CD, if you don't need the omitted packages or systems. +(See section~\ref{sec:multiple-dist} on p.~\pageref{sec:multiple-dist} +for an explanation of the different distributions.) + +\startinst + +Run the installation script \filename{install-tl.sh}: +\begin{alltt} +> \Ucom{sh install-tl.sh} +Welcome to TeX Live... +\end{alltt} + +\firstinstcommand + +Here is an introductory list of the options in the main menu. The order +in which you select the options makes little difference, except that +\Ucom{i} must be last. It's reasonable to go through them in the +order presented~here. + +% apparently here.sty [H] doesn't support table*. +\begin{table}[H] +\caption{Main menu options for the installation.} +\label{tab:main-menu-options} +\begin{tabular}{>{\ttfamily}ll} +p & The system you are running on.\\ +b & The architectures to install binaries for.\\ +s & The base installation scheme to use (minimal, recommended, + full, etc.)\\ +c & Override the installation scheme for individual collections.\\ +l & Override for language collections.\\ +d & Directories in which to install.\\ +o & General options.\\ +i & Perform the installation.\\ +\end{tabular} +\end{table} + +Here are further details on each option. + +\textbf{\optname{p} -- Current platform.} Since the installation script +automatically guesses which platform you're running on, this is +generally unnecessary to override. It's there in case the automatic +detection fails. + +\textbf{\optname{b} -- Binary architectures.} By default, only the +binaries for your current platform will be installed. From this menu, +you can select installation of binaries for other architectures as well +(or not install the current platforms). This is often useful if you +are sharing a \TeX\ tree across a network of heterogenous machines. For +a list of the supported architectures, see table~\ref{tab:archlist}, +p.~\pageref{tab:archlist}. + +\textbf{\optname{s} -- Base installation scheme.} From this menu, you +can choose an overall common set of packages. The default is a +recommended set for typical needs, but you can also choose a basic set +to conserve disk space, or a full set to get absolutely everything. The +\pkgname{Live} scheme is used for creating the \TeXLive{} +\pkgname{demo} distribution itself, and isn't generally useful to select +for a particular site. There are also specific sets for Omega and +\acro{XML} users. + +\textbf{\optname{c} -- Individual collections.} From this menu, you can +override the basic scheme's choice of which collections to install. +Each collection\Dash TeX macro files, Metafont font families, and so +on\Dash consists of several packages. In this menu, selection letters +are case-sensitive. + +\textbf{\optname{l} -- Language collections}. This menu has the same +basic functionality as \Ucom{c}, to override collection choices. In +this case, the collections are specifically for different languages. +Selection letters are case-sensitive here. Here is a list of the +language collections in \TeXLive: + +% xx really should generate list from texmf/tpm/collection/tex-lang* +% a la install-tl.sh. +\begin{tabbing} +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \kill + (some) African scripts \> + Armenian \> + Chinese,Japanese,Korean \> +Croatian \\ + Cyrillic \> + Czech/Slovak \> + Danish \> +Dutch \\ + Finnish \> + French \> + German \> +Greek \\ + Hungarian \> + Indic \> + Italian \> +Latin \\ + Manju \> + Mongolian \> + Norwegian \> +Polish \\ + Portuguese \> + Spanish \> + Swedish \> +Tibetan \\ + \acro{UK} English \> +Vietnamese \\ +\end{tabbing} + +\noindent Language collections typically includes fonts, macros, +hyphenation patterns, and other support files. (For instance, +\pkgname{frenchle.sty} is installed if you select the \optname{French} +collection.) In addition, installing a language collection will alter +the \filename{language.dat} configuration file controlling which +hyphenations are loaded. + +\textbf{\optname{d} -- Installation directories}. Three directories can +be changed here: +\label{text:instdir} + +\begin{ttdescription} +\item [TEXDIR] By default, the top-level directory under which +everything else will be installed. The default value is +\dirname{/usr/TeX}, and is often changed. For example, changing to a +value such as \dirname{/usr/local/texlive2003} would make it possible to +keep different releases of \TeXLive{} separate. You may then wish to +make \dirname{/usr/local/texlive} a symbolic link, after testing the new +release. + +Under \MacOSX, the usual frontends look for \TeX{} in +\dirname{/usr/local/teTeX}, so you may wish to install \TeXLive{} there. + +\item [TEXMFLOCAL] This tree is where the \TeX{} system scripts install +non-version-specific files, primarily fonts. The default value is +\dirname{TEXDIR/texmf-local}. It's also the recommended location to put +any local packages or configuration settings. Therefore, it's desirable +to change it to a location independent of the current \TeXLive{} +release; for example, \dirname{/usr/local/texmf-local}. + +\item [VARTEXMF] This tree is where the scripts install files that +\emph{are} version-specific, primarily format files and the +configuration files which are modified by \cmdname{texconfig} (see +section~\ref{sec:texconfig}, p.~\pageref{sec:texconfig}). The default +value is \dirname{TEXDIR/texmf-var}, and there's generally no reason to +change it. + +\end{ttdescription} + +\textbf{\optname{o} - General options.} From this menu, you can select +three general options affecting the installation: + +\begin{ttdescription} +\item [a] Specify an alternate directory for generated fonts. +The default is to use the \envname{VARTEXMF} tree, as explained above. +Setting this is useful if you plan to mount the main tree read-only, and +therefore another location (perhaps machine-specific) must be used for +dynamically created fonts. + +\item [l] Create symbolic links for the binaries, man pages, +and/or \acro{GNU} Info files in other locations. For example, you may +wish to make the man pages available under \dirname{/usr/local/man} and +the Info files available under \dirname{/usr/local/info}. (Of course +you need appropriate privileges to write in the specified directories.) + +\item [d] Skip installation of the font/macro documentation tree. +This is useful to save space, or if you've previously installed the +documentation elsewhere. + +\item [s] Skip installation of the main font/macro source +tree. This is useful if you are arranging to share that tree between +machines and/or architectures in some other way, such as \acro{NFS} or +\cmdname{automount}. + +\end{ttdescription} + +\textbf{i - Perform installation.} When you're satisfied with your +configuration options, enter \Ucom{i} to actually do the installation +from the media to your chosen locations. + +The last step is to include the architecture-specific subdirectory of +\dirname{TEXDIR/bin} in your +\envname{PATH}, so the newly-installed programs can be found. The +architecture names are listed in table~\ref{tab:archlist}, +p.~\pageref{tab:archlist}, or you can simply list the directory +\dirname{TEXDIR/bin}. + +The syntax for doing this, and the initialization file to put it in, +depends on the shell you use. If you use a Bourne-compatible shell +(\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}, et al.), put the following +into your \filename{$HOME/.profile} file: +\begin{alltt} +PATH=/\Ucom{\emph{TEXDIR}}/bin/\Ucom{\emph{archname}}:$PATH; export PATH +\end{alltt} + +\noindent For C shell-compatible shells (\cmdname{csh}, \cmdname{tcsh}), +put the following into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /\Ucom{\emph{TEXDIR}}/bin/\Ucom{\emph{archname}}:$PATH +\end{alltt} + +\runtexconfig + +Here is a brief annotated example which selects a full installation, +with binaries for the current system only, with directory changes as +recommended above. The prompts and \acro{RETURN} keys are omitted for +brevity. + +\begin{alltt} +> \Ucom{sh install-tl.sh} +\Ucom{s} \Ucom{b} \Ucom{r} # scheme, full, return to main +\Ucom{d} # change directories +\Ucom{1} \Ucom{/usr/local/texlive2003} # top-level dir +\Ucom{2} \Ucom{/usr/local/texmf-local} # TEXMFLOCAL outside TEXDIR +\Ucom{r} # return to main +\Ucom{i} # perform installation +> \Ucom{texconfig} ... +# New PATH, assuming Linux: +> \Ucom{PATH=/usr/local/texlive2003/bin/i386-linux:$PATH; export PATH} +\end{alltt} + +\ifindoubt + + +% +\subsection{Installing individual packages to disk} + +You can add individual packages or collections from the current +distribution to an existing non-\TeXLive{} setup, or an earlier +\TeXLive{} installation. You can do this from the \pkgname{demo} \CD{} +or the \pkgname{live} \DVD{}, but \emph{not} from the \pkgname{inst} +\CD. (See section~\ref{sec:multiple-dist} on +p.~\pageref{sec:multiple-dist}.) + +\startinst + +Run the installation script \filename{install-pkg.sh} (not +\filename{install-tl.sh}, which is intended for complete installations +only): +\begin{alltt} +> \Ucom{sh install-pkg.sh \emph{options}} +\end{alltt} + +This first set of options controls what gets read: + +\begin{ttdescription} +\item [-{}-package=\emph{pkgname}] The individual package to work on. + +\item [-{}-collection=\emph{colname}] The individual collection to work on. + +\item [-{}-nodoc] Exclude documentation files from the operation. + +\item [-{}-nosrc] Exclude source files from the operation. + +\item [-{}-cddir=\emph{dir}] Source directory to read from; defaults +to the current directory. If you followed the instructions above, that +will be the distribution directory, and won't need to be changed. + +\item [-{}-listdir=\emph{dir}] The so-called `lists' directory within +\emph{cddir} from which to read the package information. The default is +\texttt{\emph{cddir}/texmf/tpm/lists}; the only reason to change it is +if you're making changes to \TeXLive{} yourself. + +\end{ttdescription} + +What actually happens is controlled by the following options. If +neither of these are specified, the default action is to install the +selected files. The main destination tree is found by expanding +\envname{\$TEXMFMAIN} with \cmdname{kpsewhich}. You can override it by +setting either the environment variable \envname{TEXMFMAIN} or +\envname{TEXMF}. + +\begin{ttdescription} +\item [-{}-listonly] List the files that would be installed, but don't +actually install anything. + +\item [-{}-archive=\emph{tarfile}] Instead of installing the files into +the \TeX{} system, make a \cmdname{tar} archive. + +\end{ttdescription} + +Additional options: + +\begin{ttdescription} + +\item [-{}-config] After installation, run \code{texconfig init}. + +\item [-{}-nohash] After installation, don't run \cmdname{mktexlsr} to +rebuild the filename database. + +\item [-{}-verbose] Give more information as the script runs. + +\end{ttdescription} + +Here are some usage examples: + +\begin{enumerate} + +\item To see the files in the package \pkgname{fancyhdr} without +installing it: + +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=fancyhdr --listonly} +\else> \Ucom{sh install-pkg.sh --package=fancyhdr \bs} +> \Ucom{--listonly} +\fi{} +texmf/doc/latex/fancyhdr/README +texmf/doc/latex/fancyhdr/fancyhdr.dvi +texmf/doc/latex/fancyhdr/fancyhdr.pdf +... +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{natbib}: +\begin{alltt} +> \Ucom{sh install-pkg.sh --package=natbib} +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{alg} without source files or +documentation: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=alg --nosrc --nodoc} +\else> \Ucom{sh install-pkg.sh -{}-package=alg \bs} +> \Ucom{-{}-nosrc -{}-nodoc} +\fi\end{alltt} + +\item Install all the packages in the collection of additional +plain \TeX\ macros: +\begin{alltt} +> \Ucom{sh install-pkg.sh --collection=tex-plainextra} +\end{alltt} + +\item Write all files in the \pkgname{pstricks} package to a +\cmdname{tar} file in \path|/tmp|: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar} +\else +> \Ucom{sh install-pkg.sh -{}-package=pstricks \bs} +> \Ucom{-{}-archive=/tmp/pstricks.tar} +\fi\end{alltt} + +\end{enumerate} + +\ifindoubt + + +% +\section{Post-installation} +\label{sec:postinstall} + +After the main installation is done, for any operating system, the +remaining steps are to configure the system for your local needs, and +perform some basic tests. + +Another sort of post-installation is to acquire packages, fonts, or +programs that were not included in \TeXLive{}. The basic idea is to +install such additions in the \envname{TEXMFLOCAL} tree (if you +installed to disk), or \envname{VARTEXMF} (if you are running live). +See ``Installation directories'' on p.~\pageref{text:instdir}. + +Unfortunately, the details can vary widely, and so we do not attempt to +address them here. Please see +\url{http://www.ctan.org/tex-archive/info/beginlatex/html/chapter5.html#pkginst} +for a good description, and +\url{http://www.ctan.org/tex-archive/info/Type1fonts} for font creation +and installation information in particular. + + +\subsection{The \protect\cmdname{texconfig} program} +\label{sec:texconfig} + +At any time after installation, you can and should use the program +\cmdname{texconfig} to configure the system to fit your local needs. It +is installed in the architecture-specific subdirectory +\texttt{TEXDIR/bin/\emph{arch}} along with everything else. + +If you run it without arguments, it will enter full-screen mode and +allow you to view and change options interactively. + +You can also run it with various command-line options. Here are some of +the most commonly used: + +\begin{ttdescription} + +\item [texconfig dvips paper letter] Set default paper size for +\cmdname{dvips} to be letter-size. + +\item [texconfig xdvi us] Likewise, for \cmdname{xdvi}. + +\item [texconfig rehash] Update all the \TeX{} system filename databases. + +\item [texconfig faq] Show the \teTeX{} \acro{FAQ}. +(See also the main \TeX{} \acro{FAQ} in the \dirname{FAQ} subdirectory +of \TeXLive.) + +\item [texconfig help] Output help information. + +\end{ttdescription} + +Of course, \cmdname{texconfig} only supports changing a few of the many +options and configuration parameters in a \TeX{} system. The main +configuration file for the base \Webc{} programs is named +\filename{texmf.cnf}. You can find its location by running +\samp{kpsewhich texmf.cnf}; it contains many comments explaining the +default settings and useful alternatives. + + +\subsection{Testing the installation} +\label{sec:test-install} + +After installing \TeXLive{} as best you can, you naturally want to test +it out, so you can start creating beautiful documents and/or fonts. + +This section gives some basic procedures for testing that the new system +is functional. We described the Unix commands; 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 (Web2c 7.5.2) 3.141592 +kpathsea version 3.5.2 +Copyright (C) 1997-2003 D.E. Knuth. +... +\end{alltt} +If this comes back with `command not found' instead of version and +copyright information, most likely you don't have the correct +\dirname{bin} subdirectory in your \envname{PATH}. See +the environment-setting information on p.~\pageref{text:path}. + +\item Process a basic \LaTeX{} file: +\begin{alltt} +> \Ucom{latex sample2e.tex} +>TeX (Web2c 7.5.2) 3.141592 +... +Output written on sample2e.dvi (3 pages, 7256 bytes). +Transcript written on sample2e.log. +\end{alltt} +If this fails to find \filename{sample2e.tex} or other files, perhaps +you have interference from old environment variables or configuration +files. For a deep analysis, you can always ask \TeX{} to report on +exactly what it is searching for, and finding; see ``Debugging actions'' +on page~\pageref{Debugging}. + +\item Preview the result online: +\begin{alltt} +> \Ucom{xdvi sample2e.dvi} +\end{alltt} +Under Windows, the analogous command is \cmdname{windvi}. You should +see a new window with a nice document explaining some of the basics of +\LaTeX{}. (Well worth reading, if you're new to the system.) 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} +Unfortunately neither \cmdname{gv} nor \cmdname{xpdf} are currently +included in \TeXLive{}, so you must install them separately. See +\url{http://wwwthep.physik.uni-mainz.de/~plass/gv} and +\url{http://www.foolabs.com/xpdf}, respectively. + +\item Other standard test files you may find useful: + +\begin{ttdescription} +\item [docstrip.tex] Produce \TeX{} source or documentation from a +\samp{.dtx} file. +\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} +You can process these in the same way as we did with +\filename{sample2e.tex}. + +\end{enumerate} + +If you are new to \TeX{}, or otherwise need help with actually +constructing \TeX{} or \LaTeX{} documents, please visit +\url{http://tug.org/begin.html}. We especially recommend the +\textsl{Formatting Information} manual by Peter Flynn, available at +\url{http://www.ctan.org/tex-archive/documentation/beginlatex}. + + +\section{\MacOSX{} installation} +\label{sec:mac-install} + +\TeXLive{} supports \MacOSX, but no prior Macintosh versions. (If you +are running an older Mac version, you can view the files by installing +the Joliet system extension available from +\url{http://www.tempel.org/joliet}; however, the \TeXLive{} binaries +will not run.) + +Installation of \TeX{} under \MacOSX{} can be done in two ways: + +\begin{enumerate} +\item With the \filename{install*} scripts, as with Unix. +\item With the \cmdname{i-Installer} included in +\filename{MacOSX/II2.dmg}. +\end{enumerate} + +\noindent Each of these is described in a following section. + +In addition, typical use of \TeX{} under \MacOSX\ goes through a +\emph{frontend}. This is also described below. + + +\subsection{\protect\cmdname{i-Installer}: Internet installation} +\label{sec:i-Installer} + +The \cmdname{i-Installer} is included in the \TeXLive{} distribution as +an alternative to normal installation. It does not use the contents of +the \TeXLive{} distribution at all; instead, the system (approximately +70 megabytes) is downloaded over the Internet. + +One advantage of \cmdname{i-Installer} is that it makes updates +relatively painless. If you are interested, please see the +\cmdname{i-Installer} \TeX{} home page at \url{http://www.rna.nl/tex.html}. + +To use it, mount \filename{./MacOSX/II2.dmg}. Read the documentation, +launch it, and install at least \emph{TeX Foundation} and \emph{TeX +Programs}. The first will finish without configuration, as soon as the +second is installed you will be presented with a graphical interface to +setting up your \TeX{} system. + +The \cmdname{i-Installer} distribution uses the \teTeX{} \dirname{texmf} +tree with some additions. Due to differences between \TeXLive{} and +\teTeX{} you cannot update a \TeXLive{} installation with an +\cmdname{i-Installer} \emph{TeX Programs} i-Package. + + +\subsection{\protect\cmdname{install*.sh}: \protect\TeXLive{} installation} + +In order to run the installation scripts under \MacOSX, you need to have +the \cmdname{bash} shell installed. If you are running \MacOSX~10.2 +or later, you have \cmdname{bash}, and can proceed. If you're running +an earlier \MacOSX{} version, however, the default shell is +\cmdname{zsh}, which won't work; please see the +subsection~\ref{sec:mac-bash} (p.~\pageref{sec:mac-bash}) below for +instructions on installing bash \cmdname{bash}. + +Once you have \cmdname{bash}, the Unix installation documentation in the +previous section can be followed. See section~\ref{sec:unix-install} on +p.~\pageref{sec:unix-install}; \MacOSX-specific notes are included where +needed. + + +\subsection{\MacOSX{} frontends} + +Using \TeX{} on a Macintosh typically goes through a front end program, +comprising an execution shell, editor, previewer, and other facilities. +Here are the principal frontends: + +\begin{cmddescription} +\item [TeXShop] Included in \TeXLive{} as +\filename{./MacOSX/texshop.dmg}. See +\url{http://www.uoregon.edu/~koch/texshop/texshop.html}. + +\item [ITeXMac] Included in \TeXLive{} as +\filename{./MacOSX/iTeXMac-*.dmg}. See +\url{http://itexmac.sourceforge.net}. + +\item [Mac-emacs] A port of Emacs to \MacOSX{}, integrating +\pkgname{AucTeX}. See \url{http://www.cs.man.ac.uk/~franconi/mac-emacs}. + +\end{cmddescription} + +The frontends use \dirname{/usr/local/teTeX} as the default location; +therefore, you must either install \TeXLive{} there, or change the +configuration of the frontend. + + +\subsection{\cmdname{bash} installation for older \MacOSX{} versions} +\label{sec:mac-bash} + +\MacOSX{} versions 10.1 and earlier do not include \cmdname{bash} by +default, and the default shell does not run the \TeXLive{} installation +scripts properly. This section explains how to install \cmdname{bash}. + +First, check if bash is already installed. `Launch Terminal' +(\filename{/Applications/utilities/Terminal}) and type \code{rehash; +which bash}. If the answer is a filename (for example, +\code{/bin/bash}), then \cmdname{bash} is already installed, and you're done +here; go back to the main installation instructions. +If the answer is \code{bash: command not found}, proceed here. + +There are two ways to install \cmdname{bash} if you need it\Dash via the +\acro{GUI} or via command line. + +To install via \acro{GUI}, double-click the \filename{MacOSX/bash.dmg} +file in \TeXLive{}. The disk image (volume) will be mounted. Then +start the \cmdname{i-Installer} application on that volume. You will be +asked to authenticate; if you have never seen that before, you might not +have enough privileges to install. Just enter your own user name and +password. Hit install. Bash will be installed on your system. + +To install via command line: +\begin{enumerate} +\item ensure you have admin privileges: log in as the +\code{admin} user, the System Administrator, a user with Admin +privileges, using \cmdname{sudo}, etc. + +\item copy \filename{MacOSX/bash.tar.gz} from the \TeXLive{} +distribution to your home directory. + +\item Launch Terminal, and run: +\begin{alltt} +(cd /usr/local/; sudo tar xvzf ~/bash.tar.gz) +\end{alltt} +You'll be asked for your password, and then \cmdname{bash} will be +installed. + +\item Quit Terminal. + +\end{enumerate} + +After using either installation method, be sure to recheck that +\cmdname{bash} is installed with \code{rehash; which bash} in a new +Terminal window. + + +\section{Windows installation} +\label{sec:win-install} + +\TeXLive{} can be installed on systems running Windows 9x, \acro{ME}, +\acro{NT}, \acro{2K} or \acro{XP}. Older versions of Windows (3.1x) +and \acro{MS-DOS} are not supported. + +It is necessary to have your Windows set up so that it uses the +Microsoft Joliet extensions for reading \CD{}s; simply look at the \CD{} +in Explorer and see whether it shows long, mixed-case, file names. If it +does not, you must install the Joliet extensions. + +The Windows \TeX{} system included in \TeXLive{} is no more and no less +than the \fpTeX{} distribution. It includes a \texttt{dvi} previewer, +\textsf{Windvi}, which is similar in usage to the established Unix +\textsf{xdvi}. The documentation can be found in +\OnCD{texmf/doc/html/windvi/windvi.html}. + +\subsection{The \texttt{TeXLive.exe} program} + +\begin{figure*} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.7\textwidth]{../pictures/Welcome-to-TeXLive} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 551 534]{../pictures/Welcome-to-TeXLive.jpg} + \else + \includegraphics[width=.7\textwidth]{../pictures/Welcome-to-TeXLive} + \fi + \fi + \end{center} + \caption{``Welcome to \TeXLive'' window}\label{graph:welcome} +\end{figure*} + +If your computer is configured to let the \CD{} autostart, then a dialog +box with a menu bar will popup on the screen, and you will have several +choices from there: + +\begin{itemize} +\item Install \TeX{} on your hard disk +\item Do maintenance on your \TeX{} system. +\item Remove the \TeX{} system. +\item Use \TeX{} off the \TeXLive{} \CD{} or \DVD{}. +\item Browse documentation: \TeXLive{} documentation, TUG web + pages, \fpTeX web pages. +\item Run the \cmdname{TeXdocTK} application to find specific documentation. +\end{itemize} + +If your \CD{} does not autostart, you can explicitly run the program +by double clicking on \path|bin/win32/TeXLive.exe| on the \CD{} from +the explorer window. + +\subsection{Running \protect\TeXLive{} directly from media (Windows)} + +\runlive + +To run live under Windows, from the menu, chose \verb|Explore CD-Rom|, then +\verb|Run TeX off CD-Rom|. This will launch the \cmdname{XEmacs} editor. + +%% To run live under Windows, do the following: + +%% \begin{enumerate} +%% \item from the menu, chose \verb|Explore CD-Rom|, then +%% \verb|Run TeX off CD-Rom|, that will launch the \cmdname{XEmacs} editor. + +%% This program needs to be a \TeX{} oriented editor. It must be able +%% to run the \TeX{} compiler, previewer and any other needed tool. If +%% you don't have one already installed on your system, you can install +%% one from the \CD{}, details section~{\ref{sec:texlive-install}}. + +%% \emph{There is no way we can guess if the program you will +%% select is actually a text editor, so be careful}. +%% Here is a list of frequently used \TeX{} editors: +%% \begin{center} +%% \begin{tabular}[H]{ll} +%% GNU Emacs & \path|c:\Program Files\NTEmacs\bin\runemacs.exe| \\ +%% XEmacs & \path|c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\xemacs.exe| \\ +%% WinShell & \path|c:\Program Files\WinShell\WinShell.exe| \\ +%% WinEdt & \path|c:\Program Files\WinEdt Team\WinEdt\WinEdt.exe|\\ +%% TeXnicCenter & \path|c:\Program Files\TeXnicCenter\TEXCNTR.exe| +%% \end{tabular} +%% \end{center} +%% The program +%% selected will be memorized as the editor to use for future runs. + +%% \item from the menu, chose \verb|Explore CD-Rom|, then +%% \verb|Run TeX off CD-Rom|. The environment will be modified, a small +%% temporary directory created and some configuration files copied +%% there. Then, the selected editor selected will be launched, and you +%% will be able to type in some text, let \TeX{} typeset it and the +%% view it or print it. + +%% If Ghostscript is not detected on your machine, you will be warned +%% that rendering your DVI files might fail. You can install it from +%% the \path|Install|, \path|Support| menu item. See +%% section~\ref{sec:texlive-install} for details. + +%% \item you can select a different text editor any time you want. + +%% \item if you chose \verb|Cleanup CD-Rom setup|, everything \TeX{} +%% needed will be removed, comprised the selection of your text +%% editor, but not the extra packages you may have downloaded and +%% installed. If you installed \cmdname{WinShell} or \cmdname{NTEmacs}, +%% they won't be removed. +%% \end{enumerate} + +XEmacs startup file will set the environment variables needed. XEmacs will also +setup a temporary \acro{TDS} compliant texmf tree in the temporary area of your +computer. It is needed to store files that may be built on the fly, such as +\path|pk| bitmap fonts, or format files. Configuration files are copied from +the \CD{} to this texmf tree, so that you can edit them if needed. The +\path|ls-R| database is computed for this texmf tree. The AUC-\TeX{} mode will +be entered Whenever you will visit or create a \TeX{} file, providing all the +bells and whistles for \TeX{} support XEmacs is capable of. + +If you run 'M-x shell' within XEmacs, then you will have access to all the TeXLive +tools from the command line provided by XEmacs. + +\smallskip {\small\noindent \textbf{[For advanced users:]} You can also + use the small batch file \path|mkloctex.bat| to be called in a + directory \path|bin\win32| of the \CD. From the Start menu select + `Run', then browse the \acro{CD} drive and select + \path|mkloctex.bat|. Before starting it, you should add two parameters + separated by a space: the letter of your \acro{CD} drive and the + letter of the drive where you want to install the \TeX\ directory. + The whole line should read, e.g., \verb+d:\bin\win32\mkloctex.bat d c+. + When installation is complete, please read carefully the information + on screen. If you are running Windows 9x/\acro{ME}, then you will have to + restart Windows.} + +\subsection{Support packages for Windows} +\label{sec:win-xemtex} + +To be complete, a \TeXLive installation needs support packages that are not +commonly found on a Windows machine. +Many scripts are written using the Perl language. Some important tools require +the Ghostscript \PS{} interpreter to render or to convert files. A graphic +file toolbox is also needed in some cases. Last but not least, a \TeX-oriented +editor makes it easy to type in your \TeX{} files. + +All these tools are quite easy to find for Windows, but in order to try to make +your life even easier, we have put such a set of tools on \TeXLive: +\begin{itemize} +\item \cmdname{Ghostscript} 7.07 +\item a minimal \cmdname{Perl} 5.8, sufficient to run all the \TeXLive{} +Perl scripts +\item a subset of \cmdname{ImageMagick} 5.5.6 +\item the \cmdname{ISpell} checker +\item \cmdname{XEmacs} 21.5.14 with a selection of packages to support +\TeX{} typesetting. +\end{itemize} + +These packages should be installed only all at once. The bundle is +known as the \XEmTeX{} bundle. + +If you didn't install \XEmTeX{}, \cmdname{Perl} and \cmdname{Ghostscript} are +installed anyway if they are not detected on your machine. This is because they are +required by many important tools. The \envname{PERL5LIB} and \verb|GS_LIB| +environment variables will be set too. + +When you are under +\cmdname{XEmacs}, the tools provided shadow any other version you might +have installed previously. The point here is that \path|TeXSetup.exe| +will not install anything outside of the \TeXLive location, neither will +it run foreign installers, nor will it try to autodetect installed +products using unreliable rules of thumb. The \XEmTeX{} bundle is +standalone and is meant to evolve in the future. The reference site is +\url{http://www.fptex.org/xemtex/}. + +If you don't want to install this bundle, then you are on your own to +install the required tools to complete your \TeXLive{} system. Here is a +list of places to get those tools: + +\begin{description} +\item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} +\item[Perl] \url{http://www.activestate.com/} (but you might need some + supplementary packages from CPAN: \url{http://www.cpan.org/}) +\item[ImageMagick] \url{http://www.imagemagick.com} +\item[NetPBM] alternatively, you could use NetPBM instead of ImageMagick to + process or convert your graphic files. NetPBM home page is + \url{http://netpbm.sourceforge.net/} +\item[\TeX-oriented editors] There is a wide choice, and it is a matter of the + user's taste. Here is a selection: + \begin{itemize} + \item \cmdname{GNU Emacs} is available natively under Windows, the + reference url is + \url{http://www.gnu.org/software/emacs/windows/ntemacs.html} + \item \cmdname{XEmacs} is available natively under Windows, the + reference url is \url{http://www.xemacs.org/} + \item \cmdname{WinShell} is available on \TeXLive in the \path|support| + directory, the reference url is \url{http://www.winshell.de} + \item \cmdname{WinEdt} is shareware available from \url{http://www.winedt.com} + \item TeXnicCenter is available from + \url{http://www.toolscenter.org/products/texniccenter/} + \item \cmdname{Vim} is available on \TeXLive{} in the + \path|support\vim| directory and the + reference site is \url{http://www.vim.org} + \item \cmdname{SciTE} is available from \url{http://www.scintilla.org/SciTE.html} + \end{itemize} +\end{description} + +You might want to install other tools that are not free\footnote{Not +free, that is, in the sense of freedom to modify and redistribute, +following Debian's guidelines. This does not mean you can't acquire +them for no money.} and therefore not included on \TeXLive{}, such as +\cmdname{GSView}, the \cmdname{Ghostscript} companion to more +conveniently view PS/PDF files. \cmdname{GSView} is available from +\url{http://www.cs.wisc.edu/~ghost/gsview/} or any \acro{CTAN} site. + +%% \subsection{Installing editors or support packages} +%% \label{sec:texlive-install} + +%% You can use the \path|TeXSetup.exe| program to install a +%% single (not \TeX{}-dependent) package. This might be an editor +%% such as \cmdname{WinShell} or \cmdname{NTEmacs}, +%% or a support package like \cmdname{NetPBM} +%% (graphics formats conversion) or \cmdname{Ghostscript}. + +%% Some of the packages are not free, or not with the same meaning as for +%% the rest of the \CD{}. These packages have been made available through +%% the Internet. You need to enable an Internet connection in order to +%% install them. Chosing the \path|Enable Internet access| subitem will +%% search your system for an active Internet connection, or start one if +%% possible. \emph{If your computer is not connected to the Internet, +%% then the timeout might be long, 30s or more}. So try to enable it +%% only if you know you have a connection. + +%% Only a few packages are available from the \CD{}, but the most +%% important of them: \cmdname{NTEmacs} and \cmdname{WinShell} for the +%% editors, \cmdname{Ghostscript} and \cmdname{NetPBM} for the other +%% support packages. \cmdname{NetPBM} is needed for running \TeX{}4ht. + +%% The downloadable packages are sometimes huge: \cmdname{Perl} is 10Mb, +%% \cmdname{XEmacs} is 50Mb, so be warned that it can take a lot of time +%% to install such things. \path|TeXSetup.exe| does not yet provide an +%% estimation of the time needed to complete the download. + +%% When installing these packages, \path|TeXSetup| is working in +%% unattended mode. However, the programs that have their own installer +%% like WinEdt or Ghostscript for example will require human interaction. + +%% Those packages who have no specific installer will be unpacked and configured +%% for your system. You will be required to select some directory where +%% they will be installed. The directory to select should be the root +%% directory of the whole installation. Assuming you want to install +%% NTEmacs and NetPBM, the archive files already contain the +%% \path|NTEmacs\| and \path|NetPBM\| part, so the directory you have to +%% select is something like \path|c:\Local| or \path|c:\Program Files|. + +\subsection{Installing \TeXLive{} to disk} + +\textbf{Warning: Win9x users must ensure they have enough environment + space before undertaking installation. The \cmdname{TeXSetup.exe} + program won't change the environment size for them. A few environment + variables will be created and it is possible you run out of + environment space. Add "SHELL=<path>COMMAND.COM /E:4096 /P" in the + config.sys file in order to increase your environment size.} + +Installation is started by letting the media autostart. The program run +is \path|TeXSetup.exe| if you are using the inst disk. If you are using +the live or the demo disk, you will have to select the item +\path|TeXLive Software| from the menu, then the subitem \path|Install on +Hard Disk|. This will invoke \path|TeXSetup.exe|. You can also find it +in the \path|bin/win32| directory and run it, if the autostart fails for +any reason. \path|TeXSetup.exe| is a Windows wizard and it will display +several pages while running. + +\begin{description} +\item[Welcome Page] + You can choose a \emph{quick} installation from + here. In this case, the installation will run without any human + assistance from beginning to end, with all the default settings + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). If you have enough privileges (administrator or power user + rights) under a Windows version where this is applicable, then you can + decide to install the \TeXLive{} for all users or for yourself only by + checking the appropriate box. + For installing the whole \XEmTeX{} bundle (XEmacs, Ghost\-script, + Perl, ImageMagick and Ispell) you can check \emph{Install XEmTeX + Support} box. + \begin{figure*}[!htb] + The \cmdname{TeXSetup} Wizard\hfill + Source directories for the \TeXLive{} files + + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/setup-wizard.jpg}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/source-for-texlive.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/setup-wizard.jpg} +\includegraphics[bb=0 0 506 403]{../pictures/source-for-texlive.jpg} + \else + \includegraphics[width=.48\textwidth]{../pictures/setup-wizard}% + \hfill% + \includegraphics[width=.48\textwidth]{../pictures/source-for-texlive} + \fi + \fi + \caption{The \TeXLive{} setup wizard}\label{graph:setup-src} + \end{center} +\end{figure*} +\item[Source Page] + This page is a bit complex. It will allow you to select two source + directories for your \TeXLive{} system + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). You will need a \emph{local + source directory} and possibly a \emph{remote source directory}. + +Why do we need both these directories? The files consisting of the +\TeXLive{} system are on the \CD{}, of course, but some other useful +packages are not, either because of space lacking or because their +license was not compatible with \TeXLive{}. You need to enable Internet +downloading if you want to install these packages that are marked with a +specific ``remote'' icon. + + However, don't panic: the default parameters of the setup will allow + you to install a full system using the \CD{} only. Simply, you won't + have \file{WinEdt} (for example), but you will be able to install it + later. + + So you can take your files from: + \begin{itemize} + \item the \CD{} or any similar flat tree of files, available through + some standard directory (this means the \CD{} can be mounted on + some remote machine and be made available through network + sharing), + \item a set of \file{.zip} files (this is the case when you are + installing from the demo \CD{} or the \fpTeX{} distribution), + \item the Internet; in this case, the program takes care of + downloading the \file{.zip} files it needs for you. + \end{itemize} + This option is available only if you enable Internet file + downloading in the right part of the page. You also need to + configure this Internet access by selecting to connect either using + Internet Explorer~5 \file{wininet.dll}, or using a direct connection (\texttt{ftp}, + \texttt{http}). +% or using a proxy server. +% Last, you can be assisted in defining the \emph{local source +% directory} and \emph{remote source directory} which will be used +% to copy the files onto your hard disk. The \texttt{browse} buttons +% allow to select a directory for the former, and an url among a list +% of mirrors for the latter. +\item[Root Page] + On this page, you will tell where you want the files to be + installed (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Only the root directory really matters, the other ones + are set according to the root one. You may want to make + \path|$TEXMFEXTRA| point to some TDS compliant directory with other + \TeX{} files or assign a different value to + \path|$HOMETEXMF|, which is set by default to whatever Windows think + is your `HOME' location. +\begin{figure*}[!htb] + Root and directories\hfill% + Scheme selection + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.46\textwidth]{../pictures/root-of-installation.jpg}\hfill% + \includegraphics[width=.46\textwidth]{../pictures/scheme-selection.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/root-of-installation.jpg} +\includegraphics[bb=0 0 506 403]{../pictures/scheme-selection.jpg} + \else + \includegraphics[width=.46\textwidth]{../pictures/root-of-installation}% + \hfill% + \includegraphics[width=.46\textwidth]{../pictures/scheme-selection} + \fi + \fi + \caption{\TeXLive-Setup: Root and directories / Schemes}\label{graph:root-schm} + \end{center} +\end{figure*} +\item[Get TPM Page] + This page does not require any manual intervention. The \file{.tpm} + files which describe collections and packages are retrieved + (possibly from the Internet), unzipped if needed and parsed. +\item[Schemes Page] + On this page, you will select the global scheme of your + installation (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). A scheme is a large set of files targeted at some kind + of usage. There are 3 generic schemes for basic, recommended and + full installation. The other ones are devoted to LUGs (what GUST or + GUTenberg propose for their members) or applications (XML and + \TeX{}). + When a scheme is selected, it is still possible to refine the + selection by checking the appropriate box. If doing so, you will be + presented the packages page to change your selection, else you will + jump to the review page. +\item[Packages Page] + Collections and packages are presented in a tree form + (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). The links + in the tree are dependency links. Collections \emph{depend on} + packages and maybe other collections, and it is the same for each + package. You can select any package or collection individually, but + your request will be granted only if the object is not requested by + another one which is selected. For example, you can't deselect + \texttt{tex-basic} without deselecting all the collections that + request it. + + The \texttt{tex-xemtex} collection displayed on the picture is Win32 specific. It + holds a number of bonus packages (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ) which can be installed + automatically and individually: Ghostscript (the \PS{} + interpreter), XEmacs editor preconfigured for \TeX{}, tools like Perl, + ImageMagick, Ispell. \emph{None of these packages are selected by + default}. + + On this page, you also have the information about disk space + needed, for each object, and for the set of those who are selected, + and also the disk space available on the partition selected for the + installation. Last, you can choose to install or not the + documentation files and source files associated with each package. +\item[Review Page] + You will find there a summary of your choices + (Figure~\ref{graph:review}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). It is still possible to + go back to change them. +\begin{figure*}[!htb] + Packages Page\hfill% + Win32 Support + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/package-selection}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/win32-support} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/package-selection.jpg}\hfill% +\includegraphics[bb=0 0 506 403]{../pictures/win32-support.jpg} + \else + \includegraphics[width=.48\textwidth]{../pictures/package-selection}% + \hfill% + \includegraphics[width=.48\textwidth]{../pictures/win32-support} + \fi + \fi + \end{center} + \caption{Packages Page / Win32 goodies} + \label{graph:win32-support} +\end{figure*} +\item[Files Copy Page] + The selected files are copied on your hard disk (Figure~\ref{graph:file-copy}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). All the files not + yet available on your local disk are first downloaded from the + remote source directory on the Internet. Then every package is + unpacked (if \path|.zip| files), or copied from the \CD{}. +\item[Configuration Page] Several packages need some configuration + step to make them usable (Figure~\ref{graph:configuration}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Also the \TeXLive{} system needs some post-processing step + (format files generation, ls-R databases generation, environment + variables, etc.). All these operations are done there, some of them + can be lengthy. +\begin{figure*}[!htb] + \textbf{Review Page}\hfill% + \textbf{File Copy Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/file-copy} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{../pictures/review-settings.jpg}\hfill% + \includegraphics[bb=0 0 506 403]{../pictures/file-copy.jpg} + \else + \includegraphics[width=.48\textwidth]{../pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/file-copy}% + \fi + \fi + \end{center} + \caption{Review Page / File Copy Page} + \label{graph:review}\label{graph:file-copy} +\end{figure*} +\item[Final Page] The installation being over, you may want to display + the Windows specific documentation (HTML format) and / or the log + file of the setup process (Figure~\ref{graph:final} + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). If it is needed (Win9x/WinME), you will + be asked to reboot your computer. +\end{description} + +\begin{figure*}[!htb] + \textbf{Configuration Page}\hfill% + \textbf{Final Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/congratulations} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{../pictures/configuration.jpg}\hfill% + \includegraphics[bb=0 0 506 403]{../pictures/congratulations.jpg} + \else + \includegraphics[width=.48\textwidth]{../pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/congratulations}% + \fi + \fi + \end{center} + \caption{Configuration Page / Final page} +\label{graph:configuration}\label{graph:final} +\end{figure*} + +Please be aware that the choice of cluster size on DOS disk +partitions can radically affect the size of your \TeX\ +installation. The support tree has hundreds of small files, and it is +not unusual for a complete installation to take up to four times the +amount of space used on the \CD. + + +\section{Windows maintenance and post-installation} + +\subsection{What's different in Windows?} + +The Windows version of \Webc{} has some specific features that should be +pointed out. + +\begin{description} +\item[\KPS{}] The hash-tables that \KPS{} builds are quite large for + the \TeXLive{}. In order to cut down the starting time of any + \KPS{}-enabled program, these hash-tables have been put in shared + memory. This way, when you chain the execution of several such + programs, like \path|tex| calling \path|mpost| calling \path|tex|, + the overhead when starting each of the subprograms is + reduced. This change is hidden to the user, except if you set the + debug flag of kpathsea to the \path|-1| value: you will then trace + access to the shared memory, which is not what you want (it is + accessed very often!). What is useful in a log trace of the shared + memory access is still to be defined, so the situation might evolve + in the future. +\item[\cmdname{kpsecheck}] This command provides some options that did + not fit well into \cmdname{kpsewhich}. It will allow you to list all + the files that occur multiple times across your texmf trees. This + could be handy, but most of the time you will also get unwanted + output (like dozens of \path|README| files)\footnote{It is noticeable + that all these files result in clashes inside the \KPS{}-hashing + mechanism; fortunately, \KPS{} never looks for these files.}. For + this reason, you can combine the \path|-multiple-occurences| with 2 + other options for including or excluding any filename that match + some pattern (you can request for several patterns). + + The \cmdname{kpsecheck} command will also report the status of shared + memory: in use or not used. That might be useful to know because if + the status reported is \samp{in use}, that means one or several + processes are working, and the effect of any \cmdname{mktexlsr} + command will be delayed until the next time where no \KPS{} linked + process will be running. + + Last, this same command will report about the location it thinks + Ghostscript can be found. Under Win32, for many programs, it is + easier to use the Ghostscript dll, and find it by using the + Ghostscript registry key than to change the \path|PATH|, which has a + limited length anyway. +\item[\Webc{}] The engines have a few more options than in Unix + \Webc{}, and one option with a different behaviour: + \begin{itemize} +%% \item the \path|-fmt| option behaves differently. Previously and +%% with the regular \Webc{} distribution, this option has 2 different +%% meanings when you are in ``ini'' or ``vir'' mode. Under Win32, it +%% has the same meaning: preload the format file specified with the +%% argument. The meaning of building a format of such name in ini +%% mode is obtained by the new \path|-job-name| option. +%% \item \path|-job-name| option: allows to set the name of the file +%% resulting from the compilation process. In normal mode, it will +%% change the base name of all files produced (\path|.dvi|, +%% \path|.aux|, etc.), while in ini mode, it will set the name of +%% the format file written. + \item \path|-halt-on-error| stop the compilation at the first error. + \item \path|-job-time| set the job time to the same timestamp as the + file given in argument. +\item \path|-oem| use the DOS codepage for console output. + \item \path|-output-directory| allow to write all the output files in the + specified directory. + \item \path|-time-statistics| print statistics about the job run + time. It is to be noted that Win9x not being a true multitasking + operating system, it has no reliable timer for short periods, so + the value printed is an approximation. Under NT/2K/XP, the result + is quite accurate with user time and system time values allocated + for this run. For Unix + users: the \path|time| command is not usually available to Windows + users. + \end{itemize} +\end{description} + +\subsection{Adding packages to your installation} + +You will find an option in the \guiseq{TeXLive} menu (or go to +\guiseq{Start\arw Programs \arw TeXLive \arw Add TeX package} menu) to +run \file{TeXSetup.exe} in maintenance mode. The steps are almost the +same as in the initial installation. + +We'll discuss differences below, but first, whatever changes you make, +\textbf{do not forget to rebuild the ls-R database files}. Otherwise, +your new files will not be found. You can do this either via the +\acro{GUI} (\guiseq{Start \arw Programs \arw TeXLive \arw Maintenance +\arw Rebuild ls-R}), or manually running the \file{mktexlsr} command. + +The main difference is in the packages selection page. In maintenance +mode, the list of installed packages is compared to the list of packages +available from your source directories. Packages that are not installed +will be displayed in green, out of date packages will be displayed in +red and up-to-date, installed packages are displayed in black. + +This way, you can choose to add or upgrade components, either from +\TeXLive{} or from the Internet, where you are likely to find some more +recent version of your packages. + +It is up to you to select which packages you want to install. The rest +of the process is similar to the first installation. + +If you want to add files that are not provided by the \TeXLive{} (or +\fpTeX{}) distribution, it is recommended to put them in the +\path|$TEXMFLOCAL| directory. This way, you will be safe against +upgrades of the \TeXLive{} software. + +The directory pointed to by \path|$TEXMFLOCAL| is initially empty. If, +for example, you want to add the support file for the Maple symbolic +computation program, you will have to put the style files in:\\ +\path|c:\Program Files\TeXLive\texmf-local\tex\latex\maple\|\\ and the +documentation files in:\\ \path|c:\Program +Files\TeXLive\texmf-local\doc\latex\maple\| + +\subsection{Uninstalling \protect\TeXLive{}} + +The uninstall procedure is available either from the \file{TeXLive.exe} +program, from the \path|TeXLive| menu or from the control panel +(\guiseq{Start \arw Control Panel, Add/Remove Programs}). This procedure +will cleanup your hard disk of most of the \TeXLive{} files. However, +\TeX{} is a system that is creating files and there is no mechanism to +keep track of all of them. Moreover, Win32 support packages have their +own uninstall procedure, which you will have to run separately (provided +you want to get rid of them). Last, the files you may have stored in +\path|$TEXMFLOCAL| won't be removed. So, even if the vast majority of +files are automatically removed by the uninstall procedure, you will +have to do some manual cleanup to actually remove all of them. + +\subsection{Running \texttt{TeXSetup.exe} from the command line} + +The \path|TeXSetup.exe| program has a number of other useful +options. You can get the list by running: +\begin{verbatim} +c:\>TeXSetup --help +\end{verbatim} + +Here is the description: +\begin{description} +\item[\path|--automatic-reboot|] reboot without waiting user + confirmation once installation is over; +\item[\path|--dry-run|] do nothing, just log everything that will be + done without this option; +\item[\path|--quick|] use the recommended installation and default + directories, ask nothing up to rebooting; +\item[\path|--with-xemtex|] selects the \XEmTeX{} bundle; +\item[\path|--net-method (=ie5/direct)|] enable to download components with + restricted licenses from the Internet (either using direct + connection of Internet Explorer 5 DLLs): you need to have an available + network connection and some of the packages are huge; +\item[\path|--remote-source-directory <url>|] this is the base url for the remote packages; +\item[\path|--local-source-directory <dir>|] by default, \path|TeXSetup.exe| + will guess the root directory of the set of files you want it to act on, if you ever + upgrade \path|TeXSetup.exe|, you won't be able to copy the new version + onto your \CD{}, so you will need to use this option to specify the + root of the \CD{}; +\item[\path|--installation-directory <dir>|] this is the root of your + installation, all files will be copied under this location. The + default value is \verb+c:\Program Files\TeXLive+; +\item[\path|--texmfmain-directory <dir>|] +\item[\path|--texmflocal-directory <dir>|] +\item[\path|--texmfextra-directory <dir>|] +\item[\path|--texmfhome-directory <dir>|] +\item[\path|--vartexmf-directory <dir>|] +\item[\path|--vartexfonts-directory <dir>|] these are the directories + used to configure the location of your files. They map directly to + the \path|texmf.cnf| variables. +\item[\path|--with-source-files(=yes/no)|] copy the source files + for \TeX{} packages, default value is no; +\item[\path|--with-documentation-files(=yes/no)|] copy documentation files for \TeX{} + packages. Default value is yes. Beware: this is only documentation about specific + packages, general documentation will be installed anyway; +\item[\path|--program-folder <folder>|] the name of the folder under + which you will find the menus; +\item[\path|--add-package <pkg>|] this is used to add or update a specific + package after a first regular installation; +\item[\path|--scheme <pkg>|] install the named scheme instead of the + default \path|texlive-recommended| scheme; +\item[\path|--maintenance|] mostly the same as \path|--add-package| + without specifying a package to add; +\item[\path|--uninstall|] this option will remove anything \TeX{} related coming from + the \CD{}, which means there can be files left if you added style + files or format files, and also that supplementary tools will not be + removed. This option is still a bit crude in this release; +\item[\path|--help|] this option opens up a box with the list of options. +\end{description} + +\subsection{Network installation} + +\KPS{} knows about UNC names, so you can use them to get your TEXMF +tree from the network. But there is better than this. +All the support files and configuration files, everything except the files in the +\path|bin/win32| are shareable with a \teTeX{} or Unix \TeXLive{} installation. That means +you can use Samba either to mount from an NT server to a Unix +workstation or the converse. Several strategies are possible: +\begin{itemize} +\item Put everything on the server. Just add each set of files for the os and +architecture you want to use in the \path|bin| directory. That means +for example \path|bin/win32| and \path|bin/i386-linux|. Next configure +your main variables. You can use UNC names to +point to the right directories under Win32. +\item Install a local copy for the binaries and format files. In this + case, assign \path|$TEXMFMAIN| to the main \path|texmf| tree that + will be accessed remotely. Set \path|$VARTEXMF| to be a local + directory which will hold local configuration files and on-the-fly + generated files. +\end{itemize} + +\subsection{Personal configurations} + +\subsubsection{Dvips} + +The configuration file for dvips can be found in\\ +\verb+C:\Program Files\TeXLive\texmf-var\dvips\config\config.ps+\\ +You may open it with any editor + %(\cmdname{WinShell} will do fine) + and change some parameters: + +\begin{description} +\item [fonts] you can change the default printer \MF{} mode or printer + resolution in case \cmdname{dvips} needs to generate PK fonts. By default it + is configured to use Type~1 versions of the CM fonts, so it should + not call \cmdname{mktexpk} too often; +\item[printer] you can tell dvips where you want to print by default. If + the \optname{o} option is not followed by a printer name, then a + \file{.ps} \PS{} file is written. You can give dvips a printer + name such as: +\begin{verbatim} +o lpt1: +% o | lpr -S server -P myprinter +% o \\server\myprinter +\end{verbatim} +\item[paper] Next, you might want + to change the paper size from European (A4) to US letter + by making the US letter the first paper size mentioned in the file. + Scroll to the group of lines beginning with \code{@}. Move + the appropriate lines so that this section begins with the lines:\\ +\hspace*{1em} @ letterSize 8.5in 11in\\ +\hspace*{1em} @ letter 8.5in 11in\\ +\hspace*{1em} @+ \%\%BeginPaperSize: Letter\\ +\hspace*{1em} @+ letter\\ +\hspace*{1em} @+ \%\%EndPaperSize +\end{description} + +The current \TeXLive{} distribution implements the procedure of making +always up-to-date fontmaps files for Dvips and Pdftex. This is done by +the \cmdname{updmap} program during installation, as well as during any +font package addition. If you add new packages by hand, edit the file +\verb+updmap.cfg+ in \path|$VARTEXMF/web2c|. + +\subsubsection{Pdftex} + +If you use the program pdf{}latex to write \acro{PDF} format directly, +and you are using \acro{US} letter-size paper, edit the file +\verb+C:\Program Files\TeXLive\texmf-var\pdftex\config\pdftex.cfg+ and +change \samp{page\_width} and \samp{page\_height}. These entries should read: +\begin{alltt} +page_width 8.5 true in +page_height 11 true in +\end{alltt} +Save the file and exit the editor. + +\subsubsection{GSView} +GSView is now distributed under the Aladdin License, and therefore is no longer included in +\TeXLive{}. + +If you may want to change the page size to US letter size. If so, open +GSView from the \guiseq{Start} menu, and select \guiseq{Media\arw Letter}. + +Also, there are menu settings that are supposed to give you the most +readable screen image. On \guiseq{Media \arw Display Settings}, set both +\optname{Text Alpha} and \optname{Graphics Alpha} to 4~bits. + +Note that the installation process has set all \code{.ps} and +\code{.eps} files to automatically open with \cmdname{GSView}. + +For printing instructions, see section~\ref{printing} below. + +\subsubsection{WinDvi} +\label{sub:windvi} + +The \file{TeXSetup.exe} program takes care of associating the files +with the \file{.dvi} extension with \file{Windvi}. + +Open it with \guiseq{Start\arw Programs\arw TeXLive\arw DVI Viewer}. + +You can set it for US letter-size paper by going to \guiseq{View\arw +Options\arw Papertype} and selecting US (8.5\verb+"+ x 11\verb+"+) (and +then \optname{OK}. Exit \cmdname{windvi}. + +You can change other parameters from there as well, such as the ability +to execute system commands specified by the document (disabled by +default for security reasons). Also, the first time you view any .dvi +file, you may find the magnification too large. Zoom out until you get +an appropriate size. + +%There are two important parameters related to printing that can't yet +%be set from the dialog boxes, namely the resolution and the \MF{} mode +%for the printer. You can set them once for all by specifying them on +%the command line: +%\begin{verbatim} +%c:\>windvi -p 360 -mfmode canonbjc foo.dvi +%\end{verbatim} +%When you will exit Windvi, these parameters will be stored in the +%configuration file. The available modes are found in this file:\\ +%\path|c:\Program Files\TeXLive\texmf\metafont\misc\modes.mf| + +All configuration settings for \cmdname{Windvi} are stored in a file +named \path|windvi.cnf| file. You can find it by running this command at +the prompt: +\begin{verbatim} +c:\>kpsewhich --expand-var $HOME/windvi.cnf +\end{verbatim} + +Should you have problems with \cmdname{Windvi}, please remove the configuration +file and test your problem against a vanilla configuration. + +\subsection{Testing} + +For generic verification procedures, see section~\ref{sec:test-install} +on p.~\pageref{sec:test-install}. This section describes +Windows-specific tests. + +Open the file \verb+sample2e.tex+ in your editor (Xemacs, WinShell), +found in \path|C:\Local\TeX\texmf\tex\latex\base|. The \LaTeX\ source +should appear on the screen. Process it by clicking on the +\guiseq{Command\arw LaTeX} menu (XEmacs) or \LaTeX\ icon on the toolbar +(WinShell), then view it by clicking on the \guiseq{Command\arw View DVI} +menu (XEmacs) or Preview (Windvi) icon (WinShell). + +At first, when you preview files with Windvi, 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. + +\textbf{Hint for the future:} If a \LaTeX\ run stops because \LaTeX\ +cannot find a file, you can press Ctrl-z to quit. + + +\subsection{Printing} +\label{printing} + +It is possible to print from Windvi. In this case, printing will be done +using the Windows unified printer driver. By definition, it is +compatible with all printers. However, there is some drawback: it can +generate some huge spool files, and some (older) versions of Windows +just don't like them. The advantage is that you can use features like +embedding BMP or WMF images. You also need to make sure that the printer +parameters are correctly set (subsection~\ref{sub:windvi}), else you +will get scaled printing (printing at 600\dpi{} on a 300\dpi{} printer +will give you only one quadrant of your page). + + +Printing is faster and more reliable if you run \cmdname{dvips} to make +a \filename{.ps} file and then print from \cmdname{GSView}. In +\cmdname{GSview}, select \guiseq{File\arw Print\ldots}. A \guiseq{Print} +window will appear. + +If you are using a \PS{} printer, \textit{be sure to select +\guiseq{\PS{} Printer}}. This is done in the \guiseq{Print Method} box +at the bottom left of the \guiseq{Print} window. You can then select any +of the printers that you have previously installed. If you fail to +check the box for \optname{\PS{} Printer}, printing will not work. + +If you will be using your own non-\PS{} printer, select +\guiseq{Ghostscript device} in the \guiseq{Print Method} box, then click +on the button to the right labelled \guiseq{djet500} and select your +printer type from the list that pops up. (In the older version of +\cmdname{GSView}, make sure \optname{\PS{} Printer} is \textit{not} +selected, then select your printer type from the \guiseq{Device} list.) + +%If you use \cmdname{WinShell} and a \PS{} printer, probably the +%most convenient way to print is to add an icon to the \cmdname{WinShell} +%toolbar that invokes dvips in a way that sends the output directly to a +%default printer. For detailed instructions on how to do this, see +%the next section. + +%% \subsection{\cmdname{WinShell}} +%% \label{winshell:more} + +%% \subsubsection{Configuring \cmdname{WinShell}} +%% \label{sec:winshell} + +%% Start this program from the Start menu or from the Desktop shortcut. +%% Go to \guiseq{Options \arw Program Calls}. + +%% \begin{itemize}\itemsep 0pt +%% \item In the DVIWin tab, if the filename is \filename{yap}, replace it +%% with \filename{windvi.exe}. +%% \item In the Ghostview tab, make sure it gives the correct path for +%% gsview32.exe:\\ +%% \hspace*{1em} \verb+C:\ghostgum\gsview\gsview32.exe+ (for 3.6, the +%% current version)\\ +%% or \\ +%% \hspace*{1em} \verb+C:\gstools\gsview\gsview32.exe+ (for the older +%% version) + +%% \end{itemize} + +%% Click \guiseq{OK}. + +%% Note that the install process sets all files with the \texttt{.tex} +%% extension to open with \cmdname{WinShell}. Unless you plan to use another editor +%% (such as WinEdt or Emacs), this is appropriate. + +%% Unfortunately, \cmdname{WinShell} does not have a spell-checking +%% feature. However, if you have installed the \path|tex-extrabin| +%% collection, your installation includes \cmdname{Ispell} (a spell +%% checking program found on most Unix systems). The executable is in your +%% PATH so \verb+ispell.exe+ will be found if you invoke it from a DOS +%% window. If you installed documentation, look at \path|C:\Program +%% Files\TeXLive\texmf\doc\html\manpages\ispell.html|for information on +%% Ispell. (Otherwise, you can find \verb+ispell.html+ on the CD.) If you +%% rely on spell checking, you may want to add an Ispell icon to +%% \cmdname{WinShell}. See subsection~\ref{winshell:ispell} of this +%% document for how to do that. + +%% For an excellent commercial (but inexpensive) spelling checker, +%% see \url{http://www.microspell.com}. + +%% \cmdname{WinShell} also has on-line help, which you can access via the +%% $\textbf{\underbar{?}}$ on the menu bar. + +%% Other information about using \cmdname{WinShell} can be found in +%% section \ref{winshell:more} on p.~\pageref{winshell:more}. + + +%% \subsubsection{Installing Bug Fixes} + +%% \cmdname{WinShell}'s author (\href{mailto:idb@winshell.de}{Ingo de Boer}, +%% thanks to him) sometimes releases beta versions of the next \cmdname{WinShell} +%% version which are also bug fixes. You can grab them from +%% \url{http://www.winshell.de}. Usually they are \file{.zip} files that +%% only require to be unpacked in \cmdname{WinShell} directory (\path|c:\Program +%% Files\WinShell| by default), either using WinZip or a similar tool, or +%% by using \file{unzip} on the command line. If you got some +%% \file{winshellbugfix.zip} file and that you saved it in the \cmdname{WinShell} +%% directory, then you need to run: +%% \begin{verbatim} +%% c:\>cd c:\"Program Files"\WinShell +%% c:\>c:\local\bin\unzip winshellbugfix.zip +%% \end{verbatim} +%% Say \optname{yes} if you are asked if some files should be overwritten. The +%% \path|unzip.exe| programme can be found in the +%% \path|support/gnu-utils| package. If you +%% do not have it on your machine, you can use any archiver tool like +%% WinZip to achieve the same effect. + +%% \subsubsection{The \cmdname{Project} feature: organizing many files} + +%% If your document is split into several files (for example a thesis), +%% look into \cmdname{WinShell}'s \cmdname{Project} feature. From the +%% \guiseq{Project} menu, you give the project a name (e.g., \code{Thesis}), +%% supply the name of the main (or root) file, and then \code{add} other +%% files. These filenames display on the left of the screen where you can +%% double click the names to view and switch between them. Clicking the +%% \guiseq{\LaTeX} icon always processes the main file. + +%% Note the icons on the toolbar for toggling the project space (on the left) +%% and the log space (at the bottom). If you are not using the Project +%% feature, you may want to toggle off the space on the left, using the full +%% screen width to display your file. + +%% \subsubsection{Printing from \cmdname{WinShell} to a \PS{} Printer} +%% \label{winshell:print} + +%% The Dvips icon on the \cmdname{WinShell} toolbar puts the \PS{} output +%% in a file, which you can then view with GSView and print from there if +%% you choose. However, it's convenient to add a \cmdname{WinShell} +%% ``program call'' to dvips which sends the output directly to a +%% designated \PS{} printer. The steps below show how to do this for the +%% printer \optname{vclw}; you should substitute the name of your most +%% frequently-used printer. +%% \begin{enumerate} +%% \item Make the program aware of the printer: +%% \begin{itemize} + +%% \item Open \cmdname{WinShell}, go to \guiseq{Options\arw Program +%% Calls\arw User defined}. + +%% \item Click on \guiseq{Tool 1} in the list on the right and fill in the +%% fields to the left as follows:\vspace{-6pt} +%% \begin{quote} +%% Name: \verb+Print+\\ +%% exe file: \verb+dvips+\\ +%% cmd-line: \verb+ -D600 %m -o vclw+\\ +%% Uncheck the box for \guiseq{DVIPS first} +%% \end{quote}%\vspace{-12pt} +%% \item Click \guiseq{OK} +%% \end{itemize} +%% \item Add \guiseq{Print} to the toolbar: +%% \begin{itemize} +%% \item Go to \guiseq{Options\arw View\arw Customize}. +%% \item In the \guiseq{Category} box, select \guiseq{User-Programs}. +%% \item Select \guiseq{Print} and drag it to the toolbar, placing it just to +%% the right of the \cmdname{GSView} icon. +%% \item You then have a choice of \guiseq{Image only}, \guiseq{Text only}, +%% or \guiseq{Image and Text}. The easiest is to select \guiseq{Text only} +%% and click \guiseq{OK}. You should then see \guiseq{Print} on the +%% toolbar. (If you prefer, you can select \guiseq{Image only\arw Edit}, +%% and edit the displayed picture to your satisfaction.) +%% \end{itemize} +%% \end{enumerate} +%% Now, to print a \LaTeX\ document, just click on the \guiseq{Print} icon +%% to send to your selected printer. To use a different printer, you will +%% need to click on the \guiseq{Dvips} icon to print to a file. Then click +%% on the \cmdname{GSView} icon and use \cmdname{GSView} to send to any +%% printer you have installed on your \acro{PC}. + +%% \subsubsection{Adding Ispell to \cmdname{WinShell}} +%% \label{winshell:ispell} +%% \begin{enumerate} +%% \item Add Ispell to User Tools: +%% \begin{itemize} +%% \item Open \cmdname{WinShell}, go to \guiseq{Options\arw Program +%% Calls\arw User defined}. +%% \item In the list on the right, click on \guiseq{Tool~1} (or +%% \guiseq{Tool~2} if you have already used \guiseq{Tool~1}) and fill in +%% the fields to the left as follows:\vspace{-6pt} +%% \begin{quote} +%% Name: \verb+Ispell+\\ +%% exe file: \verb+ispell+\\ +%% cmd-line: \verb+ -t -d american %c.tex+\\ +%% Uncheck the boxes for \guiseq{LaTeX first} and \guiseq{DVIPS first} +%% \end{quote} +%% \item Click \guiseq{OK}. +%% \end{itemize} + +%% \item Add Ispell to the toolbar: +%% \begin{itemize}\itemsep 0pt +%% \item Go to \guiseq{Options\arw View\arw Customize}. +%% \item In the \guiseq{Category} box, select \guiseq{User-Programs}. +%% \item Select \guiseq{Ispell} and drag it to the toolbar, placing it just to +%% the right of the \cmdname{GSView} icon (or the last icon you added). +%% \item You then have a choice of `\guiseq{mage only}, \guiseq{Text only}, +%% or \guiseq{Image and Text}. The easiest is to select \guiseq{Text only} +%% and click \guiseq{OK}. You should then see \guiseq{Ispell} on the +%% toolbar. (If you prefer, you can select \guiseq{Image only\arw Edit}, +%% and edit the displayed picture to your satisfaction.) +%% \end{itemize} +%% \end{enumerate} +%% Now, when you have a \LaTeX\ document open, you can click on +%% \guiseq{Ispell} to perform spell checking. Ispell will open another +%% window and display the first misspelled word on the left with the +%% filename on the right. Below that you will see the context in which the +%% misspelling appears; often several suggestions for replacements are also +%% displayed. To replace the word, enter the number corresponding to the +%% desired replacement. Other possible responses are listed below; for +%% example, you can press the space bar to ignore the misspelled word. For +%% more information on Ispell, read the manual page: +%% \verb+C:\Program Files\TeXLive\texmf\doc\html\manpages\ispell.html+. + +%% Note that when you replace a word, you will not see the correction in +%% your \cmdname{WinShell} window until you close the file (click the +%% \guiseq{X} in the upper right corner) and then open it again (use the +%% \guiseq{File} menu). + +\subsection{Tips and tricks for Win32} + +\subsubsection{Different flavors of Win32} + +What we call Win32 is not an operating system by itself. It is a large +set of functions (around 12,000 in the header files of the Microsoft +\acro{SDK}) that you can use to write programs for different operating +systems of the Windows family. + +Windows comes in different flavors: +\begin{itemize} +\item Win95, Win98 and Win\acro{ME}, which \emph{are not true multitasking, + multithreading} environments. They are the latest\Dash and hopefully + last\Dash metamorphosis of \acro{DOS}. This can be more or less proven + by the fact that when booting, the PC will load the \path|command.com| + interpreter, and if you stop the boot process at this point, you can + ask for the current (\acro{DOS}) version and it will answer something + like \samp{MS-DOS 7.0} (at least for the old versions of Win9x). +\item Windows \acro{NT}, which is a new operating system written from + scratch, capable of true multitasking behaviour, and including many + high level features. +\item Windows 2000, based on \acro{NT}, with all the bells and + whistles of Win98. +\item Windows \acro{XP}, which comes with Personal and Pro flavors. This is + the last step in merging both lines of products (Win9x based and + \acro{NT} based). \acro{XP} is based on \acro{NT}. +\end{itemize} + +Win9x are able to run 32~bits programs and 16~bits programs +concurrently. But the operating system by itself is not entirely +written in 32~bits mode, and does not support memory protection: 16bits +applications can overwrite parts of the operating system memory! Some +parts of the system like the \acro{GDI} (Graphical Device Interface) +manage limited resources like bitmaps, fonts, pens and so on for the set +of all programs that run concurrently. All the bitmaps headers available +at the same time can't amount for more than 64kB. This explains the +performance tool and the fact that you can put your system on his knees +by making intensive use of graphic objects for example. + +NT, 2K and XP do not suffer from these limitations, and neither from +other Win9x limitations. They are true multitasking environments, with +protected memory. They are much more responsive than Win9x because +of better memory management, better file system and so on. + +\subsubsection{Command line prompt} + +You may wonder, ``Why would I need to use a command line prompt when +I have Windows?'' + +Good question. The problem is of very general nature. Not all operations +can be done easily using only a \acro{GUI}. Command line gives you +programming power\Dash assuming a clever command interpreter. + +But the problem here is more fundamental: \TeX{} is \emph{a batch} +tool. Not an interactive one. \TeX{} needs to compute the best +layout for each page, resolve cross-references and so on. This can be +done only by a global processing of the document. It is not (yet) a +task that can be done interactively. + +This means that you should use \TeX{} from a command line. In fact the +situation is not so bad. There is an advantage to write command line +tools for complex processing: they are better debugged, because they are +independent of any \acro{GUI} problems, and \acro{GUI} tools can be +designed to interface to the command line tools. This is the case for +\TeX{}, where you will mostly interact with it through a \acro{GUI} text +editor. + +However, you may need to use the command line prompt in a number of +situations. One is when you are having difficulties and want to debug +your setup. + +\begin{description} + \item[Win9x] You can open a command line prompt by looking either for + the \acro{MS-DOS} icon in the \guiseq{Start\arw Programs} menu, + or by choosing \guiseq{Start\arw Run} menu typing in + \path|command.com| as the progrm name. + \item[NT, 2K, XP] You can open a command line prompt by looking for + \guiseq{Command Prompt} in the \guiseq{Start\arw Accessories} menu. + You can also choose \guiseq{Start\arw Run} and type in + \path|cmd.exe|, which is the name of the brand new command + interpreter for \acro{NT} (thus, it is untrue to call this a + \emph{DOS} box!). +\end{description} + +These locations may change across different Windows versions. + + +\subsubsection{Path separators} + +The Win32 API understands both \path|/| and \path|\| characters as PATH +separators. But the command interpreters do not! So whenever a path name +is used programmatically, you can use both separators, and even mix them +up in the same path name. But on the command line, you must type +\path|\| as path separator. The reason is compatibility: the command +processor used \samp{/} to introduce arguments to commands. + +All this to say: do not be surprised to read path names written using +the Unix convention; \fpTeX{} is a port of \Webc, and aims to be compatible +across platforms. For this reason, all the configuration files that +need to specify path names use the Unix convention. + +\subsubsection{File systems} +\label{sec:clusters} + +The worst feature of Win9x with regard to \TeX{} is probably the +so-called FAT file system. \TeX{} uses many many small files, with size +around 1--3kB. The \acro{FAT} file system is old, and predates by +decades the multi-gigabytes hard disks we have today. As a result, it +cannot manage efficiently the tens of thousands of \TeX{} files found in +\TeXLive{}. The \acro{FAT} file system allocates a minimum of 32kB for +\emph{any} file on a huge partition. It means that \TeX{} will use much +more disk space than it actually needs. + +The other, more modern, file systems available, \acro{FAT32} and +\acro{NTFS}, do not have this drawback. They manage clusters of 4kB +only. (You can lower the limit to 512 bytes on \acro{NTFS}.) + +\subsubsection{How to add some directory to your PATH} + +There are pairs of variables and values which behave much like global +variables inside your programs. The set of those variables is called the +environment. Each program is initialized with a copy of the +environment when it is run. It can request and change the +value of any variable. The changes happen in the copy of the +environment, and is not at all propagated to the other running +programs. + +Your PATH is a special environment variable used to search for +programs you want to run. +There is a different procedure to change it for Win9x, WinME and NT/2K/XP: + +\begin{description} +\item[Windows 95/98] Edit your \path|autoexec.bat|. In this file should be a line + starting with \texttt{PATH=} and followed by a list of directories separated + by \path|;|. Please add the directory with the executables in this line. + After this, this line could look as follows: +\begin{verbatim} +PATH=c:\windows;c:\windows\system;c:\"Program Files"\TeXLive\bin\win32 +\end{verbatim} +\item[Windows ME] You need to run the special program + \path|c:\windows\system\msconfig.exe| to be able to change any + environment variable. From this program, select the `Environment' + tab, and then add or modify the variable you want. You will be asked to reboot the + machine upon any change. +\item[Windows NT/2K/XP] + Click left on \guiseq{Start \arw Settings \arw Control Panel}. Now the + window with the control panel icons opens. Double click on System. The + System Properties window opens. Click on the tab \textsf{Environment} + or look for a button named \guiseq{Environment Variables} among the + dialog boxes. Now you can change the environment variables for your + user account. Note: There are also displayed the environment settings + for the system. Normally, you can't change the system variables + unless you have administrator rights on your machine. If you want to + change the \texttt{PATH} for all users, you will have to contact your + system administrator or be the system administrator yourself\Dash in + the latter case you should know what you are doing. + + If there is already a \texttt{PATH} setting for your user account, + left click on \texttt{PATH}. In the field \textsf{Variable} appears + \texttt{PATH} while the field Value shows the current setting of + \texttt{PATH} as a list of directories separated by \path|;|. Add + the directory where the executables are located (e.g. + \path|c:\Program Files\TeXLive\bin\win32|). If there isn't a \texttt{PATH} variable + for your user account, simply click in the field Variable and type + in \texttt{PATH}, click in the field \textsf{Value} + and type in the directory with the executables. Important: Click on + the \textsf{Apply} button before clicking \textsf{Ok}, otherwise the + changes to \texttt{PATH} won't apply to your system. Be careful when + changing the environment settings. +\end{description} + +The best way to be sure that a variable has been properly set is to +open a console and type: +\begin{verbatim} +set VARIABLE +\end{verbatim} +which should return the corresponding value. + +\subsubsection{\TeX{} engines} + +If you have a look at the \Webc{} documentation, you will read that all +the various \TeX{} derived programs use the same base engine. For +example, \path|tex.exe| and \path|latex.exe| are exact copies of the +same program, but each one will use a different format file, based on +its calling name. + +Under Unix, this feature is implemented through \emph{symbolic +links}. It saves up a bit of disk space, because some engines are +used with many different format files. + +The Win32 API does not know about file links. So to save up almost +the same amount of memory, all the \TeX{} base engines have been put +in DLLs (\emph{Dynamic Linked Library}). This means that you will have +the following layout: +\begin{alltt} +13/05/2002 17:06 3 584 latex.exe +13/05/2002 17:06 266 240 tex.dll +13/05/2002 17:06 3 584 tex.exe +\end{alltt} +and the \path|latex.exe| file is nothing but a rough copy of +\path|tex.exe| using the same core \path|tex.dll|. +The same trick has been used for the \path|mktex*.exe| family of programs which are +linked to the \path|mktex.dll| library. + +In fact, a generic tool called \path|lnexe.exe| is provided to build the +equivalent of Unix hard links for executable files only under Win32. + +\subsection{In case of problems} +\label{sec:troubleshooting} + +\subsubsection{What to do if \texttt{latex} does not find your files?} + +\begin{itemize} + +\item \cmdname{kpsewhich} is the tool of choice to debug any +problem. Unfortunately, \cmdname{kpsewhich} outputs debug information +to stderr, and the Windows console does not know how to redirect stderr +to a file\footnote{Well, NT and Win2k consoles know how to do that. But +the trick will work for any console.}. For diagnostic purposes you can +temporarily set an environment variable (in a \acro{DOS} box): + +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=err.log +\end{verbatim} +You can also set the debug level: +\begin{verbatim} +SET KPATHSEA_DEBUG=-1 +\end{verbatim} + +If you want to redirect stderr to stdout, which is not possible +Windows, then do: +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=con: +\end{verbatim} +This way you can capture both stdout and stderr in the same file. + +\item Assuming the installation has been done in \path|c:/Program Files/TeXLive|, check + the following values: \\ + {\small + \begin{tabular}{ll} + \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-path $TEXMF| & \path|c:/Program Files/TeXLive/texmf| \\ + \path|kpsewhich -expand-path $TEXMFCNF| & + \path|.;c:/Program Files/TeXLive/texmf/web2c;| \\ + & \path|c:/Program Files/TeXLive/bin/win32;| \\ + & \path|c:/Program Files/TeXLive/bin;| \\ + & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/Program Files/TeXLive/texmf/tex//| + \end{tabular} +} +\item If you have other \TeX{}-related values already set in your + environment, please, remove them. They are overriding the ones in + texmf.cnf. +\item Check the values from:\\ +{\small + \begin{tabular}{ll} + \texttt{kpsewhich cmr10.tfm} & \path|c:/Program Files/TeXLive/texmf/fonts/tfm/public/cm/cmr10.tfm|\\ + \texttt{kpsewhich latex.fmt}& \path|c:/Program Files/TeXLive/texmf/web2c/latex.fmt| + \end{tabular} +} +\item At this point, if everything is correct, \TeX{} and friends + should work. If it is not the case, you will need to play with + the \path|-debug=n| option from \path|kpsewhich|, and check back all + the values. Try to identify and report the problem. +\end{itemize} + +\subsubsection{What to do if your setup still does not work as expected?} + +Here are several questions to investigate: + +\begin{enumerate} +\item Is \file{tex.exe} in my \path|PATH|? + +\item Is the \path|TEXMFCNF| variable correctly set to +\path|c:/Program Files/TeXLive/texmf-var/web2c| (default value)? + +\item Are there any errors in the log file generated by the +\file{TeXSetup.exe} program? You can find this by searching for the +string \samp{Error}. + +\item Are there any relevant bug fixes at \url{http://tug.org/texlive/}? +(Unlikely, but it doesn't hurt to check.) + +\item Check the web pages at +\url{http://www.fptex.org/}, or consider subscribing to the \fpTeX{} +mailing list, via \url{http://tug.org/mailman/listinfo/fptex}. + +\end{enumerate} + + +The \TeXLive{} software consists of hundreds and programs and tens of +thousands of files, all from varying sources. So it is quite difficult to +predict all possible causes for problems. Nevertheless, we will do our +best to help you. (see section~\ref{sec:help} on p.~\pageref{sec:help}.) + + +\subsection{Compiling the source files} + +You have the whole set of source files, in the +\path|source/source.tar.bz2| archive available in the distribution together with +a patch file for Win32. To +be able to compile the whole distribution for Windows, you will need: + +\begin{itemize} +\item Windows 2K/XP +\item Microsoft Visual Studio .Net 2003 +\item a set of Unix tools (\texttt{sed}, + \texttt{grep}, \texttt{gawk}, etc.) and also Perl, Flex and Bison, +\item to adjust the paths in the + \path|win32/make/common.mak| file according to your installation +\item to adjust the paths in the Perl script file + \path|win32/perl/build.pl|, +\item run the compilation from the \path|mswin32/| directory using this + command: +\begin{verbatim} +c:\texlive\source\mswin32>perl ./perl/build.pl --install --log=install.log +\end{verbatim} +\end{itemize} + +There is a lot of work to do to make this process easier and cleaner. + +\subsection{Where to get more information} + +The Windows \TeX{} system included on \TeXLive{} is also known as +\fpTeX. The packaging differs, but \fpTeX{} is no more no less than the +current \TeXLive\ release for Windows. + +The \fpTeX{} home page is \url{http://www.fptex.org}. + +The current \fpTeX release is available from any \CTAN site in +\url{htp://www.ctan.org/tex-archive/systems/win32/fptex}. + +The main ftp site for \fpTeX\ is \url{ftp://ftp.dante.de/pub/fptex/} +from where beta versions of \fpTeX\ and additionnal tools are available. +This main site is (partially) mirrored daily by all \CTAN{} sites at +\path|systems/win32/fptex|. + +The \TeX{} Users Group is kindly hosting a mailing list dedicated to +\fpTeX. It is used for announcements, bug reports, enhancement requests, +and general discussion about \fpTeX. To subscribe, visit +\url{http://tug.org/mailman/listinfo/fptex}. The mailing list +address is \email{fptex@tug.org}. + + +\section{A user's guide to \protect\Webc{}} + +\Webc{} is an integrated collection of \TeX-related programs: \TeX{} +itself, \MF{}, \MP, \BibTeX{}, etc. It is the heart of \TeXLive{}. + +A bit of history: The original implementation was by Tomas Rokicki who, +in 1987, developed a first \TeX{}-to-C system adapting change files +under Unix, which were primarily the 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. + +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 \web{} and translates them into C source +code. The core \TeX{} programs are: + +\begin{cmddescription} +\item[bibtex] Maintaining bibliographies. +\item[dmp] \cmdname{troff} to MPX (\MP{} pictures). +\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[makempx] \MP{} label typesetting. +\item[mf] Creating typeface families. +\item[mft] Prettyprinting \MF{} source. +\item[mpost] Creating technical diagrams. +\item[mpto] MetaPost label extraction. +\item[newer] Compare modification times. +\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 \acro{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{}. 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 more than one directory tree +simultaneously, which is useful in maintaining \TeX's standard +distribution and local extensions in two 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{\protect\KPS\ path searching} + +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{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{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{Debugging}). + +\subsubsection{Config files} + +\begingroup\tolerance=3500 +\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} (by default such a file lives +in the \file{texmf/web2c} subdirectory). \emph{All} +\file{texmf.cnf} files in the search path will be read and definitions +in earlier files override those in later files. Thus, with a search +path of \verb|.:$TEXMF|, values from \file{./texmf.cnf} override those +from \verb|$TEXMF/texmf.cnf|. +\endgroup + +\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} + \emph{variable}[.\emph{progname}] [=] \emph{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{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{Default-expansion} + +\tolerance=2500 +If the highest-priority search path (see ``Path sources'' on +page~\pageref{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 + +\tolerance=1500 + +\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 can be used to implement multiple \TeX{} hierarchies, by +assigning a brace list to \code{\$TEXMF}. +For example, in \file{texmf.cnf}, you find +the following definition: +\begin{verbatim} + TEXMF = {$HOMETEXMF,$TEXMFLOCAL,!!$VARTEXMF,!!$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{\$HOMETEXMF/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$VARTEXMF/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{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 summarises the meaning of special characters +in \KPS{} configuration files. + +\newcommand{\CODE}[1]{\makebox[2.5em][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. +\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`\{\dots\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{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{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); most sites have only one hierarchy. \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} && ls -LAR ./ >ls-R +\end{alltt} +presuming your system's \code{ls} produces the right output format +(\acro{GNU}'s \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 for changes in the installed files\Dash perhaps after installing or +updating a \LaTeX{} package\Dash the file \file{ls-R} is automatically +updated. + +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{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 more important 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 + found in the first column of Table~\ref{tab:kpathsea}, which lists + currently recognized names, a description, possible file extensions, + and associated environment variables. +\end{ttdescription} + + +\def\KpathKey#1#2#3#4#5{% name, number, description, variables, + % suffixes +\SetRowColor#1 & #3 & #4 & #5\\} +\def\HEAD#1{\multicolumn{1}{l}{\emph{#1}}} +% +\begin{small} +% a footnoterule immediately under a bottom-of-page rule looks dead +% silly, so we suppress it +\renewcommand\footnoterule{\relax} +% +\begin{longtable}{@{}% + >{\ttfamily}P{.16\textwidth}% Col.1 + P{.3\textwidth}% Col 2 + >{\ttfamily\footnotesize}P{.29\textwidth}% Col 3 + >{\ttfamily}P{.14\textwidth}% Col 4 +@{}} +\caption{Kpathsea file types.}\label{tab:kpathsea}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\endfirsthead +\multicolumn{3}{l}{Kpathsea file types \emph{continued}}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\noalign{\vspace{2pt}} +\endhead +\mbox{}\\ +\hline +\endfoot +\KpathKey + {afm} + {4} + {Adobe font metrics} + {AFMFONTS} + {.afm} +\KpathKey + {base} + {5} + {Metafont memory dump} + {MFBASES, TEXMFINI} + {.base} +\KpathKey + {bib} + {6} + {\BibTeX{} bibliography source} + {BIBINPUTS, TEXBIB} + {.bib} +\KpathKey + {} + {2} + {bitmap fonts} + {GLYPHFONTS, TEXFONTS} + {} +\KpathKey + {bst} + {7} + {\BibTeX{} style files} + {BSTINPUTS} + {.bst} +\KpathKey + {cnf} + {8} + {Runtime configuration files} + {TEXMFCNF} + {.cnf} +\KpathKey + {dvips config} + {34} + {\textsf{dvips} configuration files, e.g., \file{config.ps} + and \file{psfonts.map}} + {TEXCONFIG} + {.map} +\KpathKey + {fmt} + {10} + {\TeX{} memory dump} + {TEXFORMATS, TEXMFINI} + {.fmt, .efmt, .efm} +\KpathKey + {gf} + {0} + {generic font bitmap} + {GFFONTS} + {.gf} +\KpathKey + {graphic/figure} + {25} + {Encapsulated \PS{} figures} + {TEXPICTS, TEXINPUTS} + {.eps, .epsi} +\KpathKey + {ist} + {35} + {\textsf{makeindex} style files} + {TEXINDEXSTYLE, INDEXSTYLE} + {.ist} +\KpathKey + {ls-R} + {9} + {Filename databases} + {TEXMFDBS} + {} +\KpathKey + {map} + {11} + {Fontmaps} + {TEXFONTMAPS} + {.map} +\KpathKey + {mem} + {12} + {MetaPost memory dump} + {MPMEMS, TEXMFINI} + {.mem} +\KpathKey + {mf} + {13} + {Metafont source} + {MFINPUTS} + {.mf} +\KpathKey + {mfpool} + {14} + {Metafont program strings} + {MFPOOL, TEXMFINI} + {.pool} +\KpathKey + {mft} + {15} + {MFT style file} + {MFTINPUTS} + {.mft} +\KpathKey + {} + {41} + {miscellaneous fonts} + {MISCFONTS} + {} +\KpathKey + {mp} + {16} + {MetaPost source} + {MPINPUTS} + {.mp} +\KpathKey + {mppool} + {17} + {MetaPost program strings} + {MPPOOL, TEXMFINI} + {.pool} +\KpathKey + {MetaPost support} + {18} + {MetaPost support files, used by DMP} + {MPSUPPORT} + {} +\KpathKey + {ocp} + {19} + {\OMEGA{} compiled process files} + {OCPINPUTS} + {.ocp} +\KpathKey + {ofm} + {20} + {\OMEGA{} font metrics} + {OFMFONTS, TEXFONTS} + {.ofm, .tfm} +\KpathKey + {opl} + {21} + {\OMEGA{} property lists} + {OPLFONTS, TEXFONTS} + {.opl} +\KpathKey + {otp} + {22} + {\OMEGA{} translation process files} + {OTPINPUTS} + {.otp} +\KpathKey + {ovf} + {23} + {\OMEGA{} virtual fonts} + {OVFFONTS, TEXFONTS} + {.ovf} +\KpathKey + {ovp} + {24} + {\OMEGA{} virtual property lists} + {OVPFONTS, TEXFONTS} + {.ovp} +\KpathKey + {pk} + {1} + {packed bitmap fonts} + {\emph{program}FONTS \textrm{(\texttt{\emph{program}} being + \textsmaller{\cmdname{XDVI}}, + etc.)}, PKFONTS, TEXPKS, GLYPHFONTS, TEXFONTS} + {.pk} +\KpathKey + {\PS{} header} + {30} + {downloadable \PS{}} + {TEXPSHEADERS, PSHEADERS} + {.pro, .enc} +\KpathKey + {tex} + {26} + {\TeX{} source} + {TEXINPUTS} + {.tex, .cls, .sty, .clo, .def} +\KpathKey + {TeX system documentation} + {27} + {Documentation files for the \TeX{} system} + {TEXDOCS} + {} +\KpathKey + {TeX system sources} + {29} + {Source files for the \TeX{} system} + {TEXSOURCES} + {} +\KpathKey + {texpool} + {28} + {\TeX{} program strings} + {TEXPOOL, TEXMFINI} + {.pool} +\KpathKey + {tfm} + {3} + {\TeX{} font metrics} + {TFMFONTS, TEXFONTS} + {.tfm} +\KpathKey + {Troff fonts} + {31} + {Troff fonts, used by DMP} + {TRFONTS} + {} +\KpathKey + {truetype fonts} + {36} + {TrueType outline fonts} + {TTFONTS} + {.ttf, .ttc} +\KpathKey + {Type~1 fonts} + {32} + {Type 1 \PS{} outline fonts} + {T1FONTS, T1INPUTS, TEXPSHEADERS, DVIPSHEADERS} + {.pfa, .pfb} +\KpathKey + {type42 fonts} + {37} + {Type 42 \PS{} outline fonts} + {T42FONTS} + {} +\KpathKey + {vf} + {33} + {virtual fonts} + {VFFONTS, TEXFONTS} + {.vf} +\KpathKey + {web2c files} + {38} + {\Webc{} support files} + {WEB2C} + {} +\KpathKey + {other text files} + {39} + {text files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\KpathKey + {other binary files} + {40} + {binary files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\end{longtable} +\end{small} + + +\begin{multicols}{2} + + The last two entries in Table~\ref{tab:kpathsea} are special + cases, where the paths and environment variables depend on the name + of the program: the variable name is constructed by converting the + program name to upper case, and then appending \texttt{INPUTS}. + + The environment variables are set by default in the configuration + file \file{texmf.cnf}. It is only when you want to override one or + more of the values specified in that file that you might want to set + them explicitly in your execution environment. + + The \samp{-{}-format} and \samp{-{}-path} options are mutually + exclusive. + +\begin{ttdescription} + +\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{SExamplesofuse} + +Let us now have a look at \KPS{} in action. Here's a straightforward search: + +\begin{alltt} +> \Ucom{kpsewhich article.cls} +/usr/local/texmf/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} root +directory. Similarly, all of the following are found without problems +thanks to their unambiguous suffix. +\begin{alltt} +> \Ucom{kpsewhich array.sty} + /usr/local/texmf/tex/latex/tools/array.sty +> \Ucom{kpsewhich latin1.def} + /usr/local/texmf/tex/latex/base/latin1.def +> \Ucom{kpsewhich size10.clo} + /usr/local/texmf/tex/latex/base/size10.clo +> \Ucom{kpsewhich small2e.tex} + /usr/local/texmf/tex/latex/base/small2e.tex +> \Ucom{kpsewhich tugboat.bib} + /usr/local/texmf/bibtex/bib/beebe/tugboat.bib +\end{alltt} + +The latter 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 on our system (since we use the Type~1 versions included in \TeXLive{}). +\begin{alltt} +> \Ucom{kpsewhich ecrm1000.pk} +\ifSingleColumn /usr/local/texmf/fonts/pk/ljfour/jknappen/ec/ecrm1000.600pk +\else +/usr/local/texmf/fonts/pk/ljfour/jknappen/ +... ec/ecrm1000.600pk +\fi\end{alltt} +For the extended Computer Modern files 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 ecrm1000.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. In fact, a program like \cmdname{dvips} or \cmdname{xdvi} would +go off and actually build the \texttt{.pk} files at the required +resolution 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 +prolog \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}. 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/config/config.ps +> \Ucom{kpsewhich psfonts.map} + /usr/local/texmf/dvips/base/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/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 --format="dvips config" utm.map} +/usr/local/texmf/dvips/psnfss/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/fonts/type1/urw/utm/utmr8a.pfb +\else /usr/local/texmf/fonts/type1/ +...urw/utm/utmr8a.pfb +\fi\end{alltt} + +It should be evident from these few 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{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 the \file{ls-R} + database, 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. +\end{ttdescription} +A value of \texttt{-1} will set all the above options; in practice, +this is usually the most convenient value touse. + +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 +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/html/dvips/dvips_toc.html}). +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{SExamplesofuse} 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 +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 \TeXLive{} 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} (compare the generic value + and the huge one instantiated by \texttt{hugetex}, + etc.). +\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 TFM files read. +\item[\texttt{hash\_extra}] + Additional space for the hash table of control sequence names. + Approximately 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. You can see that both the + \cmdname{hugetex} and \cmdname{pdflatex} program invocations ask for + an extra 15,000 control sequences (the default value of + \texttt{hash\_extra} is zero). +\end{ttdescription} + +\noindent Of course, this facility is no substitute for truly dynamic +arrays and memory allocation, but since this is extremely difficult to +implement in the present \TeX{} source, these runtime parameters provide +a practical compromise allowing some flexibility. + + +\section{Building on a new Unix platform} + +If you have a platform for which we have not created executables, you +will need to compile \TeX{} and friends from scratch. 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 \acro{GNU} version of these programs +(\cmdname{gcc}, \acro{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 \TeXLive{} to your disk (see +section~\ref{sec:unix-install-disk} on +p.~\pageref{sec:unix-install-disk}). You may wish to skip installing +any 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} & \acro{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: \acro{GNU} \cmdname{make} always uses the string \samp{***} +whenever a command fails. Also, check if all the programs were built: + +\begin{alltt} +> \Ucom{cd \emph{TEXDIR}/bin/\emph{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} +on p.~\pageref{sec:postinstall}. + + +\section{Last words} + +This edition of \TeXLive{} is edited by Sebastian Rahtz, with the major +contributors being Fabrice Popineau, who has worked away unceasingly at +the Windows part of the package (especially the setup!)\ and contributed +in many different ways with ideas, advice and code, and Staszek +Wawrykiewicz, who provided great testing feedback, and co-ordinated the +Polish contributions. + +Kaja Christiansen performed a vital role in endless recompilations on +assorted Unix platforms. Vladimir Volovich did great work on cleaning +the source and making other improvements, while Gerben Wierda did all +the work for \MacOSX. + +\subsection{Acknowledgements} + +\TeXLive{} is a joint effort by virtually all \TeX{} Users Groups. In +particular, we are very grateful for past and present help from: + +\begin{itemize} + +\item The German-speaking \TeX{} Users (\acro{DANTE} e.V.), who provide +the hardware the \TeXLive{} source repository; and Rainer Sch\"opf and +Reinhard Zierke who look after it. \acro{DANTE} president Volker Schaa +coordinated production with the Lehmann's Bookstore +(\url{http://www.lob.de}). + +\item The Perforce corporation (\url{http://www.perforce.com}), for providing +a free copy of their excellent change management system, which we use to +manage. + +\item Karl Berry, who provided the original \Webc{} distribution, and +has continued to give invaluable advice, encouragement, and help. + +\item Mimi Burbank, who arranged access at the Florida State University +School of Computational Science and Information Technology to a slew of +different computers to compile \TeX{} on, and acted as an essential +guinea-pig whenever asked. + +\item Thomas Esser, without whose marvellous \teTeX{} package \TeXLive{} +would certainly not exist, and whose continual help makes it a better +product. + +\item Michel Goossens, who co-authored the documentation. + +\item Eitan Gurari, whose \TeX4ht was used to create the \HTML{} +version of this documentation, and who worked tirelessly to improve +it at short notice. + +\item Petr Olsak, who coordinated and checked all the Czech and Slovak +material very carefully. + +\item Olaf Weber, for his patient assembly and maintenance of Web2c. + +\item Graham Williams, on whose work the catalogue of packages depends. + +\end{itemize} + +In addition, Gerhard Wilhelms, Volker Schaa, Fabrice Popineau, Janka +Chleb\'\i{}kov\'a, Staszek Wawrykiewicz, Erik Frambach, and Ulrik Vieth +kindly translated documentation at various times into their respective +languages, checked other documentation, and provided very welcome +feedback. + + +\subsection{Release history} +\label{sec:history} + +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 +\TeXLive. + +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 \TeXLive{} 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 \TeXLive{} 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. + +In 2003, with the continuing flood of updates and additions, we found +that \TeXLive{} had grown so large it could no longer be contained on a +single \CD, so we split it into three different distributions (see +section~\ref{sec:multiple-dist} on p.~\pageref{sec:multiple-dist}). In +addition: + +\begin{itemize} +\item At the request of the \LaTeX{} team, we changed the standard + \cmdname{latex} and \cmdname{pdflatex} commands to now use \eTeX{} (see + p.~\pageref{text:etex}). +\item The new Latin Modern fonts were included (and are recommended). +\item Support for Alpha \acro{OSF} was removed + (\acro{HPUX} support was removed previously), since no one had (or + volunteered) hardware available on which to compile new binaries. +\item Windows setup was substantially changed; for the first time + an integrated environment based on XEmacs was introduced. +\item Important supplementary programs for Windows + (Perl, Ghost\-script, Image\-Magick, Ispell) are now installed + in the \TeXLive{} 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 8-bit input + characters as themselves in output (e.g., \verb|\write|) files, + log files, and the terminal, i.e., \emph{not} translated using the + \verb|^^| notation. In \TeXLive{}~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: \TeXLive{} 2003. +\end{itemize} + + +\subsection{Future releases} + +\emph{\TeXLive{} is not perfect!} (And never will be.) We intend to +continue to release new versions yearly, and would like to provide more +help material, more utilities, more installation programs, and (of +course) an ever-improved and checked tree of macros and fonts. This work +is all done by hard-pressed volunteers in their limited spare time, and +a great deal remains to be done. If you can help, don't hesitate to put +your name forward! + +Please send corrections, suggestions, and offers of help to:\hfill\null +\begin{quote} +Sebastian Rahtz \ / \ 7 Stratfield Road \ / \ Oxford OX2 7BG \ / \ UK \\ +\email{tex-live@tug.org} \\ +\url{http://tug.org/texlive} +\end{quote} + +\medskip +\noindent \textsl{Happy \TeX'ing!} + +\end{multicols} +\end{document} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/live-2004.tex b/Master/texmf-doc/source/english/texlive-en/archive/live-2004.tex new file mode 100644 index 00000000000..81fa5d22c20 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/live-2004.tex @@ -0,0 +1,3854 @@ +% $Id: //depot/Master/texmf-doc/source/english/texlive-en/live.tex#19 $ $Author: karl $ $Date: 2005/05/14 $ +% 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} +\begin{document} + +\title{% + {\huge \textit{The \protect\TL{} Guide}\\\strut} + {\LARGE \textsf{\TK{} 2004}} +} + +\author{Sebastian Rahtz \& Karl Berry, editors \\[3mm] + \url{http://tug.org/texlive/} + } + +\date{November 2004} + +\maketitle + +\begin{multicols}{2} +\tableofcontents +\listoftables +\end{multicols} + +\section{Introduction} +\label{sec:intro} + +This document describes the main features of the \TL{} software +distribution\Dash a \TeX{} and \LaTeX{} distribution for Linux and other +Unix flavors, \MacOSX, and (32-bit) Windows systems. (Warning: it is +not especially useful for older Mac or \acro{MS-DOS} systems.) + +\TL{} includes precompiled binaries for \TeX{}, \LaTeXe{}, \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. It is part of the even larger \TK{} +(briefly described below in section~\ref{sec:struct-tl}, +\p.\pageref{sec:struct-tl}), a cooperative effort by the \TeX\ user +groups. + +For newer versions of the packages included here, please check +\acro{CTAN}: \url{http://www.ctan.org} + +For a brief summary of the major changes in this edition of \TL{}, +see section~\ref{sec:history} (\p.\pageref{sec:history}). + + +\subsection{Basic usage of \protect\TL{}} +\label{sec:basic} + +You can use \TL{} in three principal ways: + +\begin{enumerate} + +\item You can run \TL{} directly from the \DVD +(see section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). +This takes almost no disk space, as you might expect, and gives you +immediate access to everything in \TL{}. Of course performance +will be worse than running on local disk, but you may well find it +acceptable. + +\item You can install all or part of \TL{} to a local disk. This +is the most common use of \TL. You will need (approximately) a +minimum of 100 megabytes, 310 megabytes for a recommended system, and +730 megabytes for a full system. + +\item You can integrate a particular package or collection into your +existing \TeX{} system, either a \TL{} system you installed +earlier, or a different system. + +\end{enumerate} + +\noindent All of these are described in detail in the \acro{OS}-specific +installation sections following, but here is a quick start: + +\begin{itemize*} + +\item The main installation script for Unix and \MacOSX{} is +\texttt{install-tl.sh}; + +\item The single package installation script is \texttt{install-pkg.sh}. + +\item Unfortunately, this version of \TL{} has no Windows installer, due +to technical difficulties. See section~\ref{sec:win-install} below +for more information. + +\end{itemize*} + + +\subsection{Getting help} +\label{sec:help} + +The \TeX{} community is both active and friendly, and virtually all +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 forego \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-doc/doc/english/FAQ-en}, 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 list of all \TeX{}-related items. See +\OnCD{texmf-doc/doc/english/catalogue}, or +\url{http://www.ctan.org/tex-archive/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/groups?group=comp.text.tex} 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 for advice on asking questions +in such a way that you're most likely to get an 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{}, you are better off writing to that program's maintainer or +mailing list. + +\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. Welcome to +\TeX{}! + + +% 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{Structure of \protect\TeX\protect\ Live} +\label{sec:struct-tl} + +This section describes the structure and contents of \TL{} and the +\TK{} of which it is a part. + +\subsection{Multiple distributions: \protect\pkgname{live}, + \protect\pkgname{inst}, + \protect\pkgname{protext}} +\label{sec:multiple-dist} + +Space limitations of \acro{CD-ROM} format have forced us to divide +\TK{} into several distributions, as follows. + +\begin{description} + +\item [live] A complete system on \acro{DVD}; it is too large +for \acro{CD}. It can be run live or installed to disk. It also +includes a snapshot of the \CTAN{} repository, entirely independent of +\TL{}, as well as assorted other packages in a +\texttt{texmf-extra} directory. + +Unfortunately, this release of \TL{} does not include a Windows +installer, due to technical difficulties. (We hope there will be an +installer again in a few months.) Therefore, when the \DVD{} is mounted +on Windows, the setup program offers to start the \pkgname{protext} +installation (see below), and also mentions \CTAN{} and \TL{}, which are +in subdirectories of the top level of the \DVD{}. + +\CTAN{} and \texttt{texmf-extra} do not follow the same copying +conditions as \TL{}, so be careful when redistributing or +modifying. + +\item [inst(allable)] A complete system on \CD; in order to make this fit, +the packages and programs are compressed. Therefore, it is not possible +to run \TeX\ directly from the installable \CD, you have to install it +to disk (hence its name). Furthermore, it can only be installed on Unix +(including Linux, \MacOSX, etc.)\ systems, not Windows, although a set +of experimental Windows binaries is included (for sharing across +platforms). Installation is described in subsequent sections. + +\item [protext] An enhancement of the \MIKTEX\ system, 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. It can be run live, or installed to disk. +The \ProTeXt\ home page is \url{http://tug.org/protext}. + +\ProTeXt\ is provided as both the top level of the \pkgname{live} \DVD\ +and on its own \CD\ (for those who cannot use the \DVD). + +\end{description} + +\noindent You can tell which type of distribution you're in by looking +for a \texttt{00\var{type}.TL} file at the top of the \TL{} directory. +This file also contains the \TL{} release date. + +Naturally, each user group chooses what to distribute, at its own +discretion. (\acro{TUG} is sending all three discs above to all of its +members.) + + +\subsection{Top level directories} +\label{sec:tld} + +Here is a brief listing and description of the top level directories in +the \TL{} distribution. This has changed considerably in 2004: the +single \texttt{texmf} tree has been split into several smaller trees. + +Also, on the \pkgname{live} \DVD, the entire \TL{} hierarchy is in a +subdirectory \dirname{texlive2004}, not at the top level of the disc. + +\smallskip +\begingroup + \renewcommand{\arraystretch}{1.3} % open up interrow spacing +\begin{tabular}{>{\ttfamily}lp{.78\hsize}} +bin & The \TeX{} system programs, arranged by platform. \\ +MacOSX & Supporting software for \MacOSX (see + section~\ref{sec:mac-install}, \p.\pageref{sec:mac-install}). \\ +source & The source of all programs, including the main \Webc{} + \TeX{} and \MF{} distributions. These are stored in a + \cmdname{bzip2}-compressed tar archive. \\ +support & Assorted auxiliary packages and programs. These are + \emph{not} installed automatically. This includes + assorted editors and \TeX\ shells. \\ +texmf & Tree for the programs, along with their support files and + documentation. Does not include \TeX\ formats and packages. \\ +texmf-dist & The main tree of formats and packages. \\ +texmf-doc & Tree for self-contained pure documentation, with no other + installed files.\hfil\break Arranged by language. \\ +texmf-var & Tree for files automatically generated and stored. \\ +xemtex & The \cmdname{XEmacs} editor and other support programs for + Windows. + These programs generally come pre-installed on Unix systems, or are + at least easy to compile. \\ +\end{tabular} +\endgroup + +\smallskip + +In addition to the directories above, the installation scripts and +\filename{README} files (in various languages) are at the top level of +the distribution. + +The (new) \dirname{texmf-doc} directory contains only documentation, but +it does not contain all the documentation. The documentation for the +programs (manuals, man pages, Info files) is in \dirname{texmf/doc}, +since the programs are in \dirname{texmf}. Similarly, the documentation +for \TeX\ packages and formats is in \dirname{texmf-dist/doc}. You can +use the \cmdname{texdoc} or \cmdname{texdoctk} programs to find any +documentation wherever it's located. The comprehensive links in the +top-level file \OnCD{doc.html} may also be helpful. + + +\subsection{Extensions to \protect\TeX} +\label{sec:tex-extensions} + +\TL{} contains several extended versions of \TeX: + +\begin{description} + +\item [\eTeX] adds a small but powerful 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] writes Acrobat \acro{PDF} format as well as \dvi{}. The +\LaTeX{} \pkgname{hyperref} package has an option `\optname{pdftex}' +which turns on all the program features. See +\OnCD{texmf/doc/pdftex/manual/pdftex-a.pdf} (A4 paper) or +\OnCD{texmf/doc/pdftex/manual/pdftex-l.pdf} (letter paper), and +\OnCD{texmf/doc/pdftex/examples/example.tex}. + +\item [pdfe\TeX] combines the pdf\TeX\ and \eTeX\ extensions. This is +the default program for all formats except plain \TeX. +See above for documentation. + +\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. See +\OnCD{texmf-dist/doc/omega/base/doc-1.8.tex} (not completely up-to-date). + +\item [Aleph] combines the \OMEGA\ and \eTeX\ extensions. +See \OnCD{texmf-dist/doc/aleph/base} for some minimal documentation. + +\end{description} + + +\subsection{Other notable programs in \protect\TL} + +Here are a few other commonly-used programs included in \TL{}: + +\begin{cmddescription} + +\item [bibtex] bibliography support. + +\item [makeindex] 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 [dv2dt, dt2dv] convert \dvi{} to/from plain text. + +\item [dviconcat, dviselect] cut and paste pages +from \dvi{} files. + +\item [dvipdfm] convert \dvi{} to \acro{PDF}, an alternative approach +to pdf\TeX\ (mentioned above). See the \pkgname{ps4pdf} and +\pkgname{pdftricks} packages for still more alternatives. + +\item [psselect, psnup, \ldots] \PS{} +utilities. + +\item [lacheck] \LaTeX{} syntax checker. + +\item [texexec] Con\TeX{}t and \acro{PDF} processor. + +\item [tex4ht] \TeX{} to \acro{HTML} converter. + +\end{cmddescription} + + +\section{Unix installation} +\label{sec:unix-install} + +As introduced in section~\ref{sec:basic} (\p.\pageref{sec:basic}), +\TL{} has three principal uses: + +\begin{enumerate} +\item Run directly from media. +\item Install to disk. +\item Integrate a particular package or collection into your existing +\TeX{} installation. +\end{enumerate} + +\noindent The following sections describes the Unix-specific procedures +for each of these. + +\ifSingleColumn \begin{figure}[ht]\noindent \fi +\begin{warningbox} +\textbf{Warning: } The \TK{} \CD{}s and \DVD{} are in ISO 9660 (High Sierra) +format, \emph{with} Rock Ridge (and Joliet, for Windows) +extensions. Therefore, in order to take full advantage of the \TK{} +under Unix, your system needs to be able to use the Rock Ridge +extensions. Please consult the documentation for your \cmdname{mount} +command to see how to do this. If you have several different machines +on a local network, you may be able to mount the \CD{}s on one which +does support Rock Ridge, and use this with the others. + +\leavevmode\quad Linux, \acro{BSD}, Sun, and \acro{SGI} +systems should be able to use the \CD{}s without problems. We +would appreciate receiving detailed advice from users on other systems +who succeed, for future versions of this documentation. + +\leavevmode\quad +The discussion below assumes you have been able to mount +the \CD{}s with full Rock Ridge compatibility. +\end{warningbox} +\ifSingleColumn\end{figure}\fi + + +% +\subsection{Running \protect\TL{} directly from media (Unix)} + +\def\runlive{% text repeated in windows section +It is possible to use the \TeX{} system directly from the \pkgname{live} +\DVD{}, without installing the distribution to disk. (Thus the name +\TeX\ `Live', in fact.) It is \emph{not} possible to run \TeX{} +directly from the other \CD s (see section~\ref{sec:multiple-dist}, +\p.\pageref{sec:multiple-dist}). +} + +\def\startinst{% repeated in other subsections +To start, you mount the \CD{} or \DVD{}, with Rock Ridge extensions +enabled. The exact command to do this varies from system to system; the +following works under Linux, except the name of the device +(\filename{/dev/cdrom}, here) may vary. (All our examples will use +\texttt{>} as the shell prompt; user input is +\Ucom{\texttt{underlined}}.) +\begin{alltt} +> \Ucom{mount -t iso9660 /dev/cdrom /mnt/cdrom} +\end{alltt} + +\noindent Change the current directory to the mount point: +\begin{alltt} +> \Ucom{cd /mnt/cdrom} +\end{alltt} + +\noindent Under \MacOSX, the directory is typically under +\dirname{/Volumes}, and the media will be mounted automatically. + +Run the installation script \filename{install-tl.sh}: +\begin{alltt} +> \Ucom{sh install-tl.sh}\\ +Welcome to TeX Live... +\end{alltt} + +\noindent After various greeting messages and a list of the main menu +options, the installation will ask you to enter a command. Do this by +typing the desired character and hitting return; don't type the angle +brackets. Either uppercase or lowercase is ok; we'll use lowercase in +our examples. +} + +\runlive +\startinst + +For running live, our first command will be \Ucom{d} and then the +subcommand \Ucom{1} to set directories. Even in this case, we must +choose a directory on the local disk to place files that the \TeX{} +system itself generates, such as fonts and formats, and also to provide +a place for updated configuration files, if need be. We'll use +\dirname{/usr/local/texmf-local} in this example. (If the default value +of \dirname{/usr/TeX} works for you, then you can skip this step.) +\begin{alltt} +Enter command: \Ucom{d} +Current directories setup: +<1> TEXDIR: /usr/TeX +... +Enter command: \Ucom{1} +New value for TEXDIR [/usr/TeX]: \Ucom{/usr/local/texmf-local} +... +Enter command: \Ucom{r} +\end{alltt} + +\noindent Back at the main menu, our second and last command is +\Ucom{r}, to set up for running live off the media without installing +to disk: +\begin{alltt} +Enter command: \Ucom{r} +Preparing destination directories... +... +Welcome to TeX Live! +> +\end{alltt} + +\noindent And we are back at the system prompt, as shown. + +Next, it is necessary to alter two environment variables: +\envname{PATH}, to an architecture-dependent value (so that we can run +the programs), and \envname{VARTEXMF}, to the value specified above. See +table~\ref{tab:archlist} for a list of the architecture names for the +different systems. + + +\def\textruntexconfig{% +After the main installation has completed, and environment variables +have been set, the last step is to run \cmdname{texconfig} to customize +your installation for your needs. This is explained in +section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}. +} +\textruntexconfig + +\begin{table*}[ht] +\caption[Supported system architectures.]{Supported system +architectures. In addition to the version-specific names listed here, +there are generic names without the version numbers. For instance, +\texttt{sparc-solaris} links to \texttt{sparc-solaris2.7}. The generic +names can be used to protect against the version numbers changing in the +future, if you wish.} +\label{tab:archlist} +\begin{tabular}{>{\ttfamily}ll} +alpha-linux & HP Alpha GNU/Linux \\ +%alphaev5-osf4.0d & HP Alphaev5 OSF \\ +%hppa2.0-hpux10.20 & HP9000 HPUX 10.20 \\ +i386-freebsd4.10 & Intel x86 FreeBSD \\ +i386-linux & Intel x86 GNU/Linux \\ +%i386-openbsd3.3 & Intel x86 OpenBSD \\ +%i386-solaris2.8 & Intel x86 Solaris \\ +mips-irix6.5 & SGI IRIX \\ +powerpc-aix4.3.3.0 & IBM RS/6000 AIX \\ +powerpc-darwin6.8 & \MacOSX \\ +sparc-solaris2.7 & Sun Sparc Solaris \\ +sparc64-linux & Sun Sparc GNU/Linux \\ +win32 & Windows (32-bit) \\ +x86\_64-linux & Intel/AMD 64-bit GNU/Linux \\ +\hline +\end{tabular} +\end{table*} + +\label{text:path} +The syntax for setting the environment variables, and the initialization +file to put them in, depends on the shell you use. If you use a +Bourne-compatible shell (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}, et +al.), put the following into your \filename{$HOME/.profile} file: +\begin{alltt} +PATH=/mnt/cdrom/bin/\var{archname}:$PATH; export PATH +VARTEXMF=/usr/local/texmf-local/texmf-var; export VARTEXMF +\end{alltt} + +\noindent For C shell-compatible shells (\cmdname{csh}, \cmdname{tcsh}), +put the following into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /mnt/cdrom/bin/\var{archname}:$PATH +setenv VARTEXMF /usr/local/texmf-local/texmf-var +\end{alltt} + +\noindent Then log out, log back in, and test your installation +(see section~\ref{sec:test-install}, \p.\pageref{sec:test-install}). + +\def\textifindoubt{% +If in doubt, please ask any local system gurus to help you with +problems; for example, the way to mount the \TL{} media, which +directory or directories to use, and precise details of the changes to +your personal initialization files can and do vary from site to site. +} +\textifindoubt + + +% +\subsection{Installing \protect\TeX\protect\ Live to disk} +\label{sec:unix-install-disk} + +It is possible, indeed typical, to install the \TeX{} system from the +\TL{} to disk. This can be done either from any of the \TK{} discs. +(See section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}, +for an explanation of the different distributions.) + +\startinst + +Table~\ref{tab:main-menu-options} briefly lists the options in the main +menu. The order in which you select the options makes little +difference, except that \Ucom{i} must be last. It's reasonable to go +through them in the order presented here. + +% apparently here.sty [H] doesn't support table*. +\begin{table}[H] +\caption{Main menu options for the installation.} +\label{tab:main-menu-options} +\begin{tabular}{>{\ttfamily}ll} +p & The platform you are running on.\\ +b & The architectures for which to install binaries.\\ +s & The base installation scheme to use (minimal, recommended, + full, etc.)\\ +c & Override the base scheme for individual collections.\\ +l & Override for language collections.\\ +d & Directories in which to install.\\ +o & Other options.\\ +i & Perform the installation.\\ +\end{tabular} +\end{table} + +Here are further details on each option. + +\textbf{\optname{p} -- Current platform.} Since the installation script +automatically guesses which platform you're running on, it is generally +unnecessary to use this option. It's there in case you need to override +the automatic detection. + +\textbf{\optname{b} -- Binary architectures.} By default, only the +binaries for your current platform will be installed. From this menu, +you can select installation of binaries for other architectures as well +(or not install the current platforms). This can be useful if you are +sharing a \TeX\ tree across a network of heterogenous machines. For a +list of the supported architectures, see table~\ref{tab:archlist}, +\p.\pageref{tab:archlist}. + +\textbf{\optname{s} -- Base installation scheme.} From this menu, you +can choose an overall common set of packages, called a ``scheme''. The +default \optname{recommended} scheme suffices for typical needs, but you +can also choose the \optname{basic} scheme if you are low on disk space, +or \optname{full} to get absolutely everything. There are also specific +sets for Omega and \acro{XML}. + +\textbf{\optname{c} -- Individual collections.} From this menu, you can +override the base scheme's set of collections to install. Collections +are one level lower than schemes\Dash collections consist of +one or more packages, where packages (the lowest level grouping in \TL) +contain the actual \TeX\ macro files, font families, and so on. +In this menu, selection letters are case-sensitive. + +\textbf{\optname{l} -- Language collections}. This menu has the same +basic purpose as \Ucom{c}, to override the base scheme. In this case, +the collections are specifically for different languages. Selection +letters are case-sensitive here. Here is a list of the language +collections in \TL: + +% xx really should generate list from texmf/tpm/collection/tex-lang* +% a la install-tl.sh. +\begin{tabbing} +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \kill +(some) African scripts \> +Arabic \> +Armenian \> +Chinese\,Japanese\,Korean \\ +Croatian \> +Cyrillic \> +Czech/Slovak \> +Danish \\ +Dutch \> +Finnish \> +French \> +German \\ +Greek \> +Hungarian \> +Indic \> +Italian \\ +Latin \> +Manju \> +Mongolian \> +Norwegian \\ +Polish \> +Portuguese \> +Spanish \> +Swedish \\ +Tibetan \> +\acro{UK} English \> +Vietnamese \\ +\end{tabbing} + +\noindent Language collections typically include fonts, macros, +hyphenation patterns, and other support files. (For instance, +\pkgname{frenchle.sty} is installed if you select the \optname{French} +collection.) In addition, installing a language collection will alter +the \filename{language.dat} configuration file controlling which +hyphenation patterns are loaded. + +\textbf{\optname{d} -- Installation directories}. Three directories can +be changed here: +\label{text:instdir} + +\begin{ttdescription} +\item [TEXDIR] The top-level directory under which +everything else will be installed. The default value is +\dirname{/usr/TeX}, and is often changed. For example, changing to a +value such as \dirname{/usr/local/texlive2003} would make it possible to +keep different releases of \TL{} separate. (You may then wish to make +\dirname{/usr/local/texlive} a symbolic link, after testing the new +release.) + +Under \MacOSX, the usual frontends look for \TeX{} in +\dirname{/usr/local/teTeX}, so you may wish to install \TL{} there. + +\item [TEXMFLOCAL] This tree is where the \TeX{} system (not as part of +installation, but rather over time) puts non-version-specific files, +primarily fonts. The default value is \dirname{TEXDIR/texmf-local}. +However, it's also the recommended location to put any local packages or +configuration settings. Therefore, it's desirable to change it to a +location independent of the current \TL{} release; for example, +\dirname{/usr/local/texmf-local}. + +\item [VARTEXMF] This tree is where the system puts files that +\emph{are} version-specific, primarily format files and the +configuration files which are modified by \cmdname{texconfig} (see +section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}). The default +value is \dirname{TEXDIR/texmf-var}, and there's generally no reason to +change it. + +\end{ttdescription} + +\textbf{\optname{o} -- Other options.} From this menu, you can select +the following general options: + +\begin{ttdescription} +\item [a] Specify an alternate directory for generated fonts. +The default is to use the \envname{VARTEXMF} tree, as explained above. +Setting this is useful if you plan to mount the main tree read-only, and +therefore you need another location (perhaps host-specific) for +dynamically created fonts. + +\item [l] Create symbolic links for the binaries, man pages, +and\slash or \acro{GNU} Info files in other locations. For example, you may +wish to make the man pages available under \dirname{/usr/local/man} and +the Info files available under \dirname{/usr/local/info}. (Of course +you need appropriate privileges to write in the specified directories.) + +It is not advisable to overwrite a \TeX\ system that came with your +system with this option. It's intended more for having the links in +standard directories known to users, such as \dirname{/usr/local/bin}, +which don't already contain any \TeX\ files. + +\item [d] Skip installation of the font/macro documentation tree. +This is useful if you need to save space, or if you've previously +installed the documentation elsewhere. + +\item [s] Skip installation of the main font/macro source +tree. This is useful if you are arranging to share that tree between +machines and\slash or architectures in some other way, such as \acro{NFS}. + +\end{ttdescription} + +\textbf{i -- Perform installation.} When you're satisfied with your +configuration options, enter \Ucom{i} to actually do the installation +from the media to your chosen locations. + +% text is similar to above, but no VARTEXMF, so we have to write out. +After the installation completes, your next step is to include the +architecture-specific subdirectory of \dirname{TEXDIR/bin} in your +\envname{PATH}, so the newly-installed programs can be found. The +architecture names are listed in table~\ref{tab:archlist}, +\p.\pageref{tab:archlist}, or you can simply list the directory +\dirname{TEXDIR/bin}. + +The syntax for doing this, and the initialization file to use, depends +on your shell. If you use a Bourne-compatible shell (\cmdname{sh}, +\cmdname{bash}, \cmdname{ksh}, et al.), put the following into your +\filename{$HOME/.profile} file: + +\begin{alltt} +PATH=/mnt/cdrom/bin/\var{archname}:$PATH; export PATH +\end{alltt} + +\noindent For C shell-compatible shells (\cmdname{csh}, \cmdname{tcsh}), +put the following into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /mnt/cdrom/bin/\var{archname}:$PATH +\end{alltt} + +\textruntexconfig + +Here is a brief annotated example which selects a full installation, +with binaries for the current system only, with directory changes as +recommended above. The prompts and \acro{RETURN}s are omitted for +brevity. + +\begin{alltt} +> \Ucom{sh install-tl.sh} +\Ucom{s} \Ucom{b} \Ucom{r} # scheme, full, return to main +\Ucom{d} # change directories +\Ucom{1} \Ucom{/usr/local/texlive2003} # top-level dir +\Ucom{2} \Ucom{/usr/local/texmf-local} # TEXMFLOCAL outside TEXDIR +\Ucom{r} # return to main +\Ucom{i} # perform installation +> \Ucom{texconfig} ... +# New PATH, with Linux as the example: +> \Ucom{PATH=/usr/local/texlive2003/bin/i386-linux:$PATH; export PATH} +\end{alltt} + +\textifindoubt + + +% +\subsection{Installing individual packages to disk} + +You can add individual packages or collections from the current +distribution to an existing non-\TL{} setup, or an earlier +\TL{} installation. + +\startinst + +Run the installation script \filename{install-pkg.sh} (not +\filename{install-tl.sh}, which is intended for complete installations +only): +\begin{alltt} +> \Ucom{sh install-pkg.sh \var{options}} +\end{alltt} + +The first set of options controls what gets read: + +\begin{ttdescription} +\item [-{}-package=\var{pkgname}] The individual package to work on. + +\item [-{}-collection=\var{colname}] The individual collection to work on. + +\item [-{}-nodoc] Exclude documentation files from the operation. + +\item [-{}-nosrc] Exclude source files from the operation. + +\item [-{}-cddir=\var{dir}] Source directory to read from; defaults +to the current directory. If you followed the instructions above, that +will be the distribution directory, and won't need to be changed. + +\item [-{}-listdir=\var{dir}] The so-called `lists' directory within +\var{cddir} from which to read the package information. The only +reason to change the default is if you're making changes to \TL{} +yourself. + +\end{ttdescription} + +What actually happens is controlled by the following options. If +neither of these are specified, the default action is to install the +selected files. The main destination tree is found by expanding +\envname{\$TEXMFMAIN} with \cmdname{kpsewhich}. You can override it by +setting either the environment variable \envname{TEXMFMAIN} or +\envname{TEXMF}. + +\begin{ttdescription} +\item [-{}-listonly] List the files that would be installed, but don't +actually install anything. + +\item [-{}-archive=\var{tarfile}] Instead of installing the files into +the \TeX{} system, make a \cmdname{tar} archive. + +\end{ttdescription} + +Additional options: + +\begin{ttdescription} + +\item [-{}-config] After installation, run \code{texconfig init}. + +\item [-{}-nohash] After installation, don't run \cmdname{mktexlsr} to +rebuild the filename database. + +\item [-{}-verbose] Give more information as the script runs. + +\end{ttdescription} + +Here are some usage examples: + +\begin{enumerate} + +\item To see the files in the package \pkgname{fancyhdr} without +installing it: + +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=fancyhdr --listonly} +\else> \Ucom{sh install-pkg.sh --package=fancyhdr \bs} +> \Ucom{--listonly} +\fi{} +texmf/doc/latex/fancyhdr/README +texmf/doc/latex/fancyhdr/fancyhdr.dvi +texmf/doc/latex/fancyhdr/fancyhdr.pdf +... +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{natbib}: +\begin{alltt} +> \Ucom{sh install-pkg.sh --package=natbib} +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{alg} without source files or +documentation: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=alg --nosrc --nodoc} +\else> \Ucom{sh install-pkg.sh -{}-package=alg \bs} +> \Ucom{-{}-nosrc -{}-nodoc} +\fi\end{alltt} + +\item Install all the packages in the collection of additional +plain \TeX\ macros: +\begin{alltt} +> \Ucom{sh install-pkg.sh --collection=tex-plainextra} +\end{alltt} + +\item Write all files in the \pkgname{pstricks} package to a +\cmdname{tar} file in \path|/tmp|: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar} +\else +> \Ucom{sh install-pkg.sh -{}-package=pstricks \bs} +> \Ucom{-{}-archive=/tmp/pstricks.tar} +\fi\end{alltt} + +\end{enumerate} + +\textifindoubt + + +% +\section{Post-installation} +\label{sec:postinstall} + +After the main installation is done, for any operating system, the +remaining steps are to configure the system for your local needs, and +perform some basic tests. + +Another sort of post-installation is to acquire packages, fonts, or +programs that were not included in \TL{}. The basic idea is to +install such additions in the \envname{TEXMFLOCAL} tree (if you +installed to disk), or \envname{VARTEXMF} (if you are running live). +See the ``Installation directories'' option on \p.\pageref{text:instdir}. + +Unfortunately, the details can and do vary widely, and so we do not attempt to +address them here. Here are some external links to descriptions: +\begin{itemize*} +\item +\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages} +\item +\url{http://www.ctan.org/installationadvice} +\item +\url{http://www.ctan.org/tex-archive/info/beginlatex/html/chapter5.html#pkginst} +\item +\url{http://www.ctan.org/tex-archive/info/Type1fonts} for font creation +and installation information in particular. +\end{itemize*} + + +\subsection{The \protect\cmdname{texconfig} program} +\label{sec:texconfig} + +At any time after installation, you can and should use the program +\cmdname{texconfig} to configure the system to fit your local needs. It +is installed in the architecture-specific subdirectory +\texttt{TEXDIR/bin/\var{arch}} along with everything else. + +If you run it without arguments, it will enter full-screen mode and +allow you to view and change options interactively. + +You can also run it with various command-line options. Here are some of +the most common (a \TL{} installation is configured for the A4 paper +size by default): + +\begin{ttdescription} + +\item [texconfig paper letter] Set default paper size for +various programs and drivers (\cmdname{pdftex}, \cmdname{dvips}, +\cmdname{dvipdfm}, \cmdname{xdvi}) to be \acro{US} letter. The other +allowable size is \optname{a4}, which is the default. + +\item [texconfig localsetup] Verify that paths are set ok. + +\item [texconfig rehash] Update all the \TeX{} system filename databases. + +\item [texconfig faq] Show the \teTeX{} \acro{FAQ}. +(See also the main \TeX{} \acro{FAQ} in \OnCD{texmf-doc/doc/english/FAQ-en}.) + +\item [texconfig help] Output help information for \cmdname{texconfig}. + +\end{ttdescription} + +Of course, \cmdname{texconfig} can only support changing a few of the +many options and configuration parameters in a \TeX{} system. The main +configuration file for the base \Webc{} programs is named +\filename{texmf.cnf}. You can find its location by running +\samp{kpsewhich texmf.cnf}; it contains many comments explaining the +default settings and useful alternatives. + + +\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; 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.141592 (Web2C 7.5.3) +kpathsea version 3.5.3 +Copyright (C) 1997-2004 D.E. Knuth. +... +\end{alltt} +If this comes back with `command not found' instead of version and +copyright information, most likely you don't have the correct +\dirname{bin} subdirectory in your \envname{PATH}. See +the environment-setting information on \p.\pageref{text:path}. + +\item Process a basic \LaTeX{} file: +\begin{alltt} +> \Ucom{latex sample2e.tex} +This is pdfeTeXk, Version 3.141592... +... +Output written on sample2e.dvi (3 pages, 7496 bytes). +Transcript written on sample2e.log. +\end{alltt} +If this fails to find \filename{sample2e.tex} or other files, perhaps +you have interference from old environment variables or configuration +files. For a deep analysis, you can always ask \TeX{} to report on +exactly what it is searching for, and finding; see ``Debugging actions'' +on page~\pageref{Debugging}. + +\item Preview the result online: +\begin{alltt} +> \Ucom{xdvi sample2e.dvi} +\end{alltt} +(Under Windows, the analogous command is \cmdname{windvi}.) 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 the system.) +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} +Unfortunately neither \cmdname{gv} nor \cmdname{xpdf} are currently +included in \TL{}, so you must install them separately. See +\url{http://wwwthep.physik.uni-mainz.de/~plass/gv} and +\url{http://www.foolabs.com/xpdf}, respectively. + +\item Other standard test files you may find useful: + +\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} +You can process these in the same way as we did with +\filename{sample2e.tex}. + +\end{enumerate} + +If you are new to \TeX{}, or otherwise need help with actually +constructing \TeX{} or \LaTeX{} documents, please visit +\url{http://tug.org/begin.html}. We especially recommend the +\textsl{Formatting Information} manual by Peter Flynn, available at +\url{http://www.ctan.org/tex-archive/documentation/beginlatex}. + + +\section{\MacOSX{} installation} +\label{sec:mac-install} + +\TL{} supports \MacOSX, but no prior Macintosh versions. (If you +are running an older Mac version, you can view the files by installing +the Joliet system extension available from +\url{http://www.tempel.org/joliet}; however, the \TL{} binaries +will not run.) + +Installation of \TeX{} under \MacOSX{} can be done in two ways: + +\begin{enumerate} +\item With the \filename{install*} scripts, as with Unix. +\item With the \cmdname{i-Installer} included in +\filename{MacOSX/II2.dmg}. +\end{enumerate} + +\noindent Each of these is described in a following section. + +In addition, \TeX{} under \MacOSX\ typically uses a ``frontend''. This +is also described below. + + +\subsection{\protect\cmdname{i-Installer}: Internet installation} +\label{sec:i-Installer} + +The \cmdname{i-Installer} is included in the \TL{} distribution as +an alternative to normal installation. It does not use the contents of +the \TL{} distribution at all; instead, the system (approximately +70 megabytes) is downloaded over the Internet. + +One advantage of \cmdname{i-Installer} is that it makes updates +relatively painless. If you are interested, please see the +\cmdname{i-Installer} \TeX{} home page at \url{http://www.rna.nl/tex.html}. + +To use it, mount \filename{./MacOSX/II2.dmg}. Read the documentation, +launch it, and install at least \texttt{TeX Foundation} and \texttt{TeX +Programs}. The first will finish without configuration, as soon as the +second is installed you will be presented with a graphical interface to +setting up your \TeX{} system. + +The \cmdname{i-Installer} distribution uses the \teTeX{} \dirname{texmf} +tree with some additions. Due to differences between \TL{} and +\teTeX{} you cannot update a \TL{} installation with an +\cmdname{i-Installer} \texttt{TeX Programs} i-Package. + + +\subsection{\protect\cmdname{install*.sh}: \protect\TL{} installation} + +In order to run the installation scripts under \MacOSX, you need to have +the \cmdname{bash} shell installed. If you are running \MacOSX~10.2 +or later, you have \cmdname{bash}, and can proceed. If you're running +an earlier \MacOSX{} version, however, the default shell is +\cmdname{zsh}, which won't work; you'll need to get \cmdname{bash} from +the Internet, or more likely upgrade your system. + +Once you have \cmdname{bash}, the Unix installation documentation in the +previous section can be followed. See section~\ref{sec:unix-install} on +\p.\pageref{sec:unix-install}; \MacOSX-specific notes are included there +where needed. + + +\subsection{\MacOSX{} frontends} + +Using \TeX{} on a Macintosh typically goes through a front end program, +comprising an execution shell, editor, previewer, and other facilities, +with a graphical interface. Here are the principal frontends: + +\begin{cmddescription} +\item [TeXShop] Included in \TL{} as \filename{./MacOSX/texshop.dmg}. + \\See \url{http://www.uoregon.edu/~koch/texshop/texshop.html}. + +\item [ITeXMac] Included in \TL{} as \filename{./MacOSX/iTM-*.dmg}. + \\See \url{http://itexmac.sourceforge.net}. + +\item [Mac-emacs] A port of Emacs to \MacOSX{}, integrating \pkgname{AucTeX}. + \\See \url{http://www.cs.man.ac.uk/~franconi/mac-emacs}. + +\end{cmddescription} + +The frontends use \dirname{/usr/local/teTeX} as the default location; +therefore, you must either install \TL{} there, or change the +configuration of the frontend. + + +\section{Windows installation} +\label{sec:win-install} + +Unfortunately, this release of \TL{} does not include a Windows +installer, due to technical difficulties. We hope that an installer +will be available again in a few months. (It is being completely +rewritten to use standard Microsoft libraries, instead of the homegrown +\filename{TeXSetup.exe}.) + +A set of experimental Windows binaries is included, nevertheless. You +can install them with the Unix \filename{install-tl.sh} script: select +the \optname{win32} system from the \optname{S} option of the top-level +menu. The \pkgname{XEmacs} package is not included, however, due to +space. + +(Meanwhile, if you are an experienced Windows programmer and would like +to help with the project, email us!) + + +\begin{comment} +\TL{} can be installed on systems running Windows 9x, \acro{ME}, +\acro{NT}, \acro{2K} or \acro{XP}. Older versions of Windows (3.1x) +and \acro{MS-DOS} are not supported. + +It is necessary to have your Windows set up so that it uses the +Microsoft Joliet extensions for reading \CD{}s; simply look at the \CD{} +in Explorer and see whether it shows long, mixed-case, file names. If it +does not, you must install the Joliet extensions. + +The Windows \TeX{} system included in \TL{} is no more and no less +than the \fpTeX{} distribution. It includes a \texttt{dvi} previewer, +\textsf{Windvi}, which is similar in usage to the established Unix +\textsf{xdvi}. The documentation can be found in +\OnCD{texmf/doc/html/windvi/windvi.html}. + +\subsection{The \texttt{TeXLive.exe} program} + +\begin{figure*} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.7\textwidth]{pictures/Welcome-to-TeXLive} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 551 534]{pictures/Welcome-to-TeXLive.jpg} + \else + \includegraphics[width=.7\textwidth]{pictures/Welcome-to-TeXLive} + \fi + \fi + \end{center} + \caption{``Welcome to \TL'' window}\label{graph:welcome} +\end{figure*} + +If your computer is configured to let the \CD{} autostart, then a dialog +box with a menu bar will popup on the screen, and you will have several +choices from there: + +\begin{itemize*} +\item Install \TeX{} on your hard disk +\item Do maintenance on your \TeX{} system. +\item Remove the \TeX{} system. +\item Use \TeX{} off the \TL{} \CD{} or \DVD{}. +\item Browse documentation: \TL{} documentation, TUG web + pages, \fpTeX web pages. +\item Run the \cmdname{TeXdocTK} application to find specific documentation. +\end{itemize*} + +If your \CD{} does not autostart, you can explicitly run the program +by double clicking on \path|bin/win32/TeXLive.exe| on the \CD{} from +the explorer window. + +\subsection{Running \protect\TL{} directly from media (Windows)} + +\runlive + +To run live under Windows, from the menu, chose \verb|Explore CD-Rom|, then +\verb|Run TeX off CD-Rom|. This will launch the \cmdname{XEmacs} editor. + +XEmacs startup file will set the environment variables needed. XEmacs will also +setup a temporary \acro{TDS} compliant texmf tree in the temporary area of your +computer. It is needed to store files that may be built on the fly, such as +\path|pk| bitmap fonts, or format files. Configuration files are copied from +the \CD{} to this texmf tree, so that you can edit them if needed. The +\path|ls-R| database is computed for this texmf tree. The AUC-\TeX{} mode will +be entered Whenever you will visit or create a \TeX{} file, providing all the +bells and whistles for \TeX{} support XEmacs is capable of. + +If you run 'M-x shell' within XEmacs, then you will have access to all the TeXLive +tools from the command line provided by XEmacs. + +\smallskip {\small\noindent \textbf{[For advanced users:]} You can also + use the small batch file \path|mkloctex.bat| to be called in a + directory \path|bin\win32| of the \CD. From the Start menu select + `Run', then browse the \acro{CD} drive and select + \path|mkloctex.bat|. Before starting it, you should add two parameters + separated by a space: the letter of your \acro{CD} drive and the + letter of the drive where you want to install the \TeX\ directory. + The whole line should read, e.g., \verb+d:\bin\win32\mkloctex.bat d c+. + When installation is complete, please read carefully the information + on screen. If you are running Windows 9x/\acro{ME}, then you will have to + restart Windows.} + +\subsection{Support packages for Windows} +\label{sec:win-xemtex} + +To be complete, a \TL installation needs support packages that are not +commonly found on a Windows machine. +Many scripts are written using the Perl language. Some important tools require +the Ghostscript \PS{} interpreter to render or to convert files. A graphic +file toolbox is also needed in some cases. Last but not least, a \TeX-oriented +editor makes it easy to type in your \TeX{} files. + +All these tools are quite easy to find for Windows, but in order to try to make +your life even easier, we have put such a set of tools on \TL: +\begin{itemize*} +\item \cmdname{Ghostscript} 7.07 +\item a minimal \cmdname{Perl} 5.8, sufficient to run all the \TL{} +Perl scripts +\item a subset of \cmdname{ImageMagick} 5.5.6 +\item the \cmdname{ISpell} checker +\item \cmdname{XEmacs} 21.5.14 with a selection of packages to support +\TeX{} typesetting. +\end{itemize*} + +These packages should be installed only all at once. The bundle is +known as the \XEmTeX{} bundle. + +If you didn't install \XEmTeX{}, \cmdname{Perl} and \cmdname{Ghostscript} are +installed anyway if they are not detected on your machine. This is because they are +required by many important tools. The \envname{PERL5LIB} and \verb|GS_LIB| +environment variables will be set too. + +When you are under +\cmdname{XEmacs}, the tools provided shadow any other version you might +have installed previously. The point here is that \path|TeXSetup.exe| +will not install anything outside of the \TL location, neither will +it run foreign installers, nor will it try to autodetect installed +products using unreliable rules of thumb. The \XEmTeX{} bundle is +standalone and is meant to evolve in the future. The reference site is +\url{http://www.fptex.org/xemtex/}. + +If you don't want to install this bundle, then you are on your own to +install the required tools to complete your \TL{} system. Here is a +list of places to get those tools: + +\begin{description} +\item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} +\item[Perl] \url{http://www.activestate.com/} (but you might need some + supplementary packages from CPAN: \url{http://www.cpan.org/}) +\item[ImageMagick] \url{http://www.imagemagick.com} +\item[NetPBM] alternatively, you could use NetPBM instead of ImageMagick to + process or convert your graphic files. NetPBM home page is + \url{http://netpbm.sourceforge.net/} +\item[\TeX-oriented editors] There is a wide choice, and it is a matter of the + user's taste. Here is a selection: + \begin{itemize*} + \item \cmdname{GNU Emacs} is available natively under Windows, the + reference url is + \url{http://www.gnu.org/software/emacs/windows/ntemacs.html} + \item \cmdname{XEmacs} is available natively under Windows, the + reference url is \url{http://www.xemacs.org/} + \item \cmdname{WinShell} is available on \TL in the \path|support| + directory, the reference url is \url{http://www.winshell.de} + \item \cmdname{WinEdt} is shareware available from \url{http://www.winedt.com} + \item TeXnicCenter is available from\\ + \url{http://www.toolscenter.org} + \item \cmdname{Vim} is available on \TL{} in the + \path|support\vim| directory and the + reference site is \url{http://www.vim.org} + \item \cmdname{SciTE} is available from \url{http://www.scintilla.org/SciTE.html} + \end{itemize*} +\end{description} + +You might want to install other tools that are not free\footnote{Not +free, that is, in the sense of freedom to modify and redistribute, +following free software guidelines. This does not mean you can't acquire +them for no money.} and therefore not included on \TL{}, such as +\cmdname{GSView}, the \cmdname{Ghostscript} companion to more +conveniently view PS/PDF files. \cmdname{GSView} is available from +\url{http://www.cs.wisc.edu/~ghost/gsview/} or any \acro{CTAN} site. + +\subsection{Installing \protect\TeX\protect\ Live to disk} + +\textbf{Warning: Win9x users must ensure they have enough environment + space before undertaking installation. The \cmdname{TeXSetup.exe} + program won't change the environment size for them. A few environment + variables will be created and it is possible you run out of + environment space. Add \texttt{SHELL=<path>COMMAND.COM /E:4096 /P} in the + config.sys file in order to increase your environment size.} + +Installation is started by letting the media autostart. The program run +is \path|TeXSetup.exe| if you are using the inst disk. If you are using +the live or the demo disk, you will have to select the item +\path|TeXLive Software| from the menu, then the subitem \path|Install on +Hard Disk|. This will invoke \path|TeXSetup.exe|. You can also find it +in the \path|bin/win32| directory and run it, if the autostart fails for +any reason. \path|TeXSetup.exe| is a Windows wizard and it will display +several pages while running. + +\begin{description} +\item[Welcome Page] + You can choose a \emph{quick} installation from + here. In this case, the installation will run without any human + assistance from beginning to end, with all the default settings + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). If you have enough privileges (administrator or power user + rights) under a Windows version where this is applicable, then you can + decide to install the \TL{} for all users or for yourself only by + checking the appropriate box. + For installing the whole \XEmTeX{} bundle (XEmacs, Ghost\-script, + Perl, ImageMagick and Ispell) you can check \emph{Install XEmTeX + Support} box. + \begin{figure*}[!htb] + The \cmdname{TeXSetup} Wizard\hfill + Source directories for the \TL{} files + + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{pictures/setup-wizard.jpg}\hfill% + \includegraphics[width=.48\textwidth]{pictures/source-for-texlive.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{pictures/setup-wizard.jpg} +\includegraphics[bb=0 0 506 403]{pictures/source-for-texlive.jpg} + \else + \includegraphics[width=.48\textwidth]{pictures/setup-wizard}% + \hfill% + \includegraphics[width=.48\textwidth]{pictures/source-for-texlive} + \fi + \fi + \caption{The \TL{} setup wizard}\label{graph:setup-src} + \end{center} +\end{figure*} +\item[Source Page] + This page is a bit complex. It will allow you to select two source + directories for your \TL{} system + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). You will need a \emph{local + source directory} and possibly a \emph{remote source directory}. + +Why do we need both these directories? The files consisting of the +\TL{} system are on the \CD{}, of course, but some other useful +packages are not, either because of space lacking or because their +license was not compatible with \TL{}. You need to enable Internet +downloading if you want to install these packages that are marked with a +specific ``remote'' icon. + + However, don't panic: the default parameters of the setup will allow + you to install a full system using the \CD{} only. Simply, you won't + have \file{WinEdt} (for example), but you will be able to install it + later. + + So you can take your files from: + \begin{itemize} + \item the \CD{} or any similar flat tree of files, available through + some standard directory (this means the \CD{} can be mounted on + some remote machine and be made available through network + sharing), + \item a set of \file{.zip} files (this is the case when you are + installing from the demo \CD{} or the \fpTeX{} distribution), + \item the Internet; in this case, the program takes care of + downloading the \file{.zip} files it needs for you. + \end{itemize} + This option is available only if you enable Internet file + downloading in the right part of the page. You also need to + configure this Internet access by selecting to connect either using + Internet Explorer~5 \file{wininet.dll}, or using a direct connection (\texttt{ftp}, + \texttt{http}). +% or using a proxy server. +% Last, you can be assisted in defining the \emph{local source +% directory} and \emph{remote source directory} which will be used +% to copy the files onto your hard disk. The \texttt{browse} buttons +% allow to select a directory for the former, and an url among a list +% of mirrors for the latter. +\item[Root Page] + On this page, you will tell where you want the files to be + installed (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Only the root directory really matters, the other ones + are set according to the root one. You may want to make + \path|$TEXMFEXTRA| point to some TDS compliant directory with other + \TeX{} files or assign a different value to + \path|$HOMETEXMF|, which is set by default to whatever Windows think + is your `HOME' location. +\begin{figure*}[!htb] + Root and directories\hfill% + Scheme selection + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.46\textwidth]{pictures/root-of-installation.jpg}\hfill% + \includegraphics[width=.46\textwidth]{pictures/scheme-selection.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{pictures/root-of-installation.jpg} +\includegraphics[bb=0 0 506 403]{pictures/scheme-selection.jpg} + \else + \includegraphics[width=.46\textwidth]{pictures/root-of-installation}% + \hfill% + \includegraphics[width=.46\textwidth]{pictures/scheme-selection} + \fi + \fi + \caption{\TL-Setup: Root and directories / Schemes}\label{graph:root-schm} + \end{center} +\end{figure*} +\item[Get TPM Page] + This page does not require any manual intervention. The \file{.tpm} + files which describe collections and packages are retrieved + (possibly from the Internet), unzipped if needed and parsed. +\item[Schemes Page] + On this page, you will select the global scheme of your + installation (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). A scheme is a large set of files targeted at some kind + of usage. There are 3 generic schemes for basic, recommended and + full installation. The other ones are devoted to LUGs (what GUST or + GUTenberg propose for their members) or applications (XML and + \TeX{}). + When a scheme is selected, it is still possible to refine the + selection by checking the appropriate box. If doing so, you will be + presented the packages page to change your selection, else you will + jump to the review page. +\item[Packages Page] + Collections and packages are presented in a tree form + (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). The links + in the tree are dependency links. Collections \emph{depend on} + packages and maybe other collections, and it is the same for each + package. You can select any package or collection individually, but + your request will be granted only if the object is not requested by + another one which is selected. For example, you can't deselect + \texttt{tex-basic} without deselecting all the collections that + request it. + + The \texttt{tex-xemtex} collection displayed on the picture is Win32 specific. It + holds a number of bonus packages (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ) which can be installed + automatically and individually: Ghostscript (the \PS{} + interpreter), XEmacs editor preconfigured for \TeX{}, tools like Perl, + ImageMagick, Ispell. \emph{None of these packages are selected by + default}. + + On this page, you also have the information about disk space + needed, for each object, and for the set of those who are selected, + and also the disk space available on the partition selected for the + installation. Last, you can choose to install or not the + documentation files and source files associated with each package. +\item[Review Page] + You will find there a summary of your choices + (Figure~\ref{graph:review}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). It is still possible to + go back to change them. +\begin{figure*}[!htb] + Packages Page\hfill% + Win32 Support + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{pictures/package-selection}\hfill% + \includegraphics[width=.48\textwidth]{pictures/win32-support} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{pictures/package-selection.jpg}\hfill% +\includegraphics[bb=0 0 506 403]{pictures/win32-support.jpg} + \else + \includegraphics[width=.48\textwidth]{pictures/package-selection}% + \hfill% + \includegraphics[width=.48\textwidth]{pictures/win32-support} + \fi + \fi + \end{center} + \caption{Packages Page / Win32 goodies} + \label{graph:win32-support} +\end{figure*} +\item[Files Copy Page] + The selected files are copied on your hard disk (Figure~\ref{graph:file-copy}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). All the files not + yet available on your local disk are first downloaded from the + remote source directory on the Internet. Then every package is + unpacked (if \path|.zip| files), or copied from the \CD{}. +\item[Configuration Page] Several packages need some configuration + step to make them usable (Figure~\ref{graph:configuration}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Also the \TL{} system needs some post-processing step + (format files generation, ls-R databases generation, environment + variables, etc.). All these operations are done there, some of them + can be lengthy. +\begin{figure*}[!htb] + \textbf{Review Page}\hfill% + \textbf{File Copy Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{pictures/file-copy} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{pictures/review-settings.jpg}\hfill% + \includegraphics[bb=0 0 506 403]{pictures/file-copy.jpg} + \else + \includegraphics[width=.48\textwidth]{pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{pictures/file-copy}% + \fi + \fi + \end{center} + \caption{Review Page / File Copy Page} + \label{graph:review}\label{graph:file-copy} +\end{figure*} +\item[Final Page] The installation being over, you may want to display + the Windows specific documentation (HTML format) and / or the log + file of the setup process (Figure~\ref{graph:final} + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). If it is needed (Win9x/WinME), you will + be asked to reboot your computer. +\end{description} + +\begin{figure*}[!htb] + \textbf{Configuration Page}\hfill% + \textbf{Final Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{pictures/congratulations} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{pictures/configuration.jpg}\hfill% + \includegraphics[bb=0 0 506 403]{pictures/congratulations.jpg} + \else + \includegraphics[width=.48\textwidth]{pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{pictures/congratulations}% + \fi + \fi + \end{center} + \caption{Configuration Page / Final page} +\label{graph:configuration}\label{graph:final} +\end{figure*} + +Please be aware that the choice of cluster size on DOS disk +partitions can radically affect the size of your \TeX\ +installation. The support tree has hundreds of small files, and it is +not unusual for a complete installation to take up to four times the +amount of space used on the \CD. + +\end{comment} + + +\section{Windows maintenance and post-installation} + +Although this version of \TL{} cannot be installed on Windows, enough of +this section is relevant to existing installations or cross-mounted +installations that it seemed worth leaving in. + +It will be thoroughly updated when a complete \TL{} Windows distribution +is released. For now, please ignore references to +\filename{TeXSetup.exe}, etc. + + +\subsection{What's different in Windows?} + +The Windows version of \Webc{} has some specific features that should be +pointed out. + +\begin{description} +\item[\KPS{}] The hash-tables that \KPS{} builds are quite large for + the \TL{}. In order to cut down the starting time of any + \KPS{}-enabled program, these hash-tables have been put in shared + memory. This way, when you chain the execution of several such + programs, like \path|tex| calling \path|mpost| calling \path|tex|, + the overhead when starting each of the subprograms is + reduced. This change is hidden to the user, except if you set the + debug flag of kpathsea to the \path|-1| value: you will then trace + access to the shared memory, which is not what you want (it is + accessed very often!). What is useful in a log trace of the shared + memory access is still to be defined, so the situation might evolve + in the future. +\item[\cmdname{kpsecheck}] This command provides some options that did + not fit well into \cmdname{kpsewhich}. It will allow you to list all + the files that occur multiple times across your texmf trees. This + could be handy, but most of the time you will also get unwanted + output (like dozens of \path|README| files)\footnote{It is noticeable + that all these files result in clashes inside the \KPS{}-hashing + mechanism; fortunately, \KPS{} never looks for these files.}. For + this reason, you can combine the \path|-multiple-occurrences| with 2 + other options for including or excluding any filename that match + some pattern (you can request for several patterns). + + The \cmdname{kpsecheck} command will also report the status of shared + memory: in use or not used. That might be useful to know because if + the status reported is \samp{in use}, that means one or several + processes are working, and the effect of any \cmdname{mktexlsr} + command will be delayed until the next time where no \KPS{} linked + process will be running. + + Last, this same command will report about the location it thinks + Ghostscript can be found. Under Win32, for many programs, it is + easier to use the Ghostscript dll, and find it by using the + Ghostscript registry key than to change the \path|PATH|, which has a + limited length anyway. +\item[\Webc{}] The engines have a few more options than in Unix + \Webc{}, and one option with a different behavior: + \begin{itemize} + \item \path|-halt-on-error| stop the compilation at the first error. + \item \path|-job-time| set the job time to the same timestamp as the + file given in argument. +\item \path|-oem| use the DOS codepage for console output. + \item \path|-output-directory| allow to write all the output files in the + specified directory. + \item \path|-time-statistics| print statistics about the job run + time. It is to be noted that Win9x not being a true multitasking + operating system, it has no reliable timer for short periods, so + the value printed is an approximation. Under NT/2K/XP, the result + is quite accurate with user time and system time values allocated + for this run. For Unix + users: the \path|time| command is not usually available to Windows + users. + \end{itemize} +\end{description} + +\subsection{Adding packages to your installation} + +You will find an option in the \guiseq{TeXLive} menu (or go to +\guiseq{Start\arw Programs \arw TeXLive \arw Add TeX package} menu) to +run \file{TeXSetup.exe} in maintenance mode. The steps are almost the +same as in the initial installation. + +We'll discuss differences below, but first, whatever changes you make, +\textbf{do not forget to rebuild the ls-R database files}. Otherwise, +your new files will not be found. You can do this either via the +\acro{GUI} (\guiseq{Start \arw Programs \arw TeXLive \arw Maintenance +\arw Rebuild ls-R}), or manually running the \file{mktexlsr} command. + +The main difference is in the packages selection page. In maintenance +mode, the list of installed packages is compared to the list of packages +available from your source directories. Packages that are not installed +will be displayed in green, out of date packages will be displayed in +red and up-to-date, installed packages are displayed in black. + +This way, you can choose to add or upgrade components, either from +\TL{} or from the Internet, where you are likely to find some more +recent version of your packages. + +It is up to you to select which packages you want to install. The rest +of the process is similar to the first installation. + +If you want to add files that are not provided by the \TL{} (or +\fpTeX{}) distribution, it is recommended to put them in the +\path|$TEXMFLOCAL| directory. This way, you will be safe against +upgrades of the \TL{} software. + +The directory pointed to by \path|$TEXMFLOCAL| is initially empty. If, +for example, you want to add the support file for the Maple symbolic +computation program, you will have to put the style files in:\\ +\path|c:\Program Files\TeXLive\texmf-local\tex\latex\maple\|\\ and the +documentation files in:\\ \path|c:\Program +Files\TeXLive\texmf-local\doc\latex\maple\| + +\subsection{Uninstalling \protect\TL{}} + +The uninstall procedure is available either from the \file{TeXLive.exe} +program, from the \path|TeXLive| menu or from the control panel +(\guiseq{Start \arw Control Panel, Add/Remove Programs}). This procedure +will cleanup your hard disk of most of the \TL{} files. However, +\TeX{} is a system that is creating files and there is no mechanism to +keep track of all of them. Moreover, Win32 support packages have their +own uninstall procedure, which you will have to run separately (provided +you want to get rid of them). Last, the files you may have stored in +\path|$TEXMFLOCAL| won't be removed. So, even if the vast majority of +files are automatically removed by the uninstall procedure, you will +have to do some manual cleanup to actually remove all of them. + +\subsection{Running \texttt{TeXSetup.exe} from the command line} + +The \path|TeXSetup.exe| program has a number of other useful +options. You can get the list by running: +\begin{verbatim} +c:\>TeXSetup --help +\end{verbatim} + +Here is the description: +\begin{description} +\item[\path|--automatic-reboot|] reboot without waiting user + confirmation once installation is over; +\item[\path|--dry-run|] do nothing, just log everything that will be + done without this option; +\item[\path|--quick|] use the recommended installation and default + directories, ask nothing up to rebooting; +\item[\path|--with-xemtex|] selects the \XEmTeX{} bundle; +\item[\path|--net-method (=ie5/direct)|] enable to download components with + restricted licenses from the Internet (either using direct + connection of Internet Explorer 5 DLLs): you need to have an available + network connection and some of the packages are huge; +\item[\path|--remote-source-directory <url>|] this is the base url for the remote packages; +\item[\path|--local-source-directory <dir>|] by default, \path|TeXSetup.exe| + will guess the root directory of the set of files you want it to act on, if you ever + upgrade \path|TeXSetup.exe|, you won't be able to copy the new version + onto your \CD{}, so you will need to use this option to specify the + root of the \CD{}; +\item[\path|--installation-directory <dir>|] this is the root of your + installation, all files will be copied under this location. The + default value is \verb+c:\Program Files\TL+; +\item[\path|--texmfmain-directory <dir>|] +\item[\path|--texmflocal-directory <dir>|] +\item[\path|--texmfextra-directory <dir>|] +\item[\path|--texmfhome-directory <dir>|] +\item[\path|--vartexmf-directory <dir>|] +\item[\path|--vartexfonts-directory <dir>|] these are the directories + used to configure the location of your files. They map directly to + the \path|texmf.cnf| variables. +\item[\path|--with-source-files(=yes/no)|] copy the source files + for \TeX{} packages, default value is no; +\item[\path|--with-documentation-files(=yes/no)|] copy documentation files for \TeX{} + packages. Default value is yes. Beware: this is only documentation about specific + packages, general documentation will be installed anyway; +\item[\path|--program-folder <folder>|] the name of the folder under + which you will find the menus; +\item[\path|--add-package <pkg>|] this is used to add or update a specific + package after a first regular installation; +\item[\path|--scheme <pkg>|] install the named scheme instead of the + default \path|texlive-recommended| scheme; +\item[\path|--maintenance|] mostly the same as \path|--add-package| + without specifying a package to add; +\item[\path|--uninstall|] this option will remove anything \TeX{} related coming from + the \CD{}, which means there can be files left if you added style + files or format files, and also that supplementary tools will not be + removed. This option is still a bit crude in this release; +\item[\path|--help|] this option opens up a box with the list of options. +\end{description} + +\subsection{Network installation} + +\KPS{} knows about UNC names, so you can use them to get your TEXMF +tree from the network. But there is better than this. +All the support files and configuration files, everything except the files in the +\path|bin/win32| are shareable with a \teTeX{} or Unix \TL{} installation. That means +you can use Samba either to mount from an NT server to a Unix +workstation or the converse. Several strategies are possible: +\begin{itemize} +\item Put everything on the server. Just add each set of files for the os and +architecture you want to use in the \path|bin| directory. That means +for example \path|bin/win32| and \path|bin/i386-linux|. Next configure +your main variables. You can use UNC names to +point to the right directories under Win32. +\item Install a local copy for the binaries and format files. In this + case, assign \path|$TEXMFMAIN| to the main \path|texmf| tree that + will be accessed remotely. Set \path|$VARTEXMF| to be a local + directory which will hold local configuration files and on-the-fly + generated files. +\end{itemize} + +\subsection{Personal configurations} + +\subsubsection{Dvips} + +The configuration file for dvips can be found in\\ +\verb+C:\Program Files\TeXLive\texmf-var\dvips\config\config.ps+\\ +You may open it with any editor + %(\cmdname{WinShell} will do fine) + and change some parameters: + +\begin{description} +\item [fonts] you can change the default printer \MF{} mode or printer + resolution in case \cmdname{dvips} needs to generate PK fonts. By default it + is configured to use Type~1 versions of the CM fonts, so it should + not call \cmdname{mktexpk} too often; +\item[printer] you can tell dvips where you want to print by default. If + the \optname{o} option is not followed by a printer name, then a + \file{.ps} \PS{} file is written. You can give dvips a printer + name such as: +\begin{verbatim} +o lpt1: +% o | lpr -S server -P myprinter +% o \\server\myprinter +\end{verbatim} +\item[paper] Next, you might want + to change the paper size from European (A4) to US letter + by making the US letter the first paper size mentioned in the file. + Scroll to the group of lines beginning with \code{@}. Move + the appropriate lines so that this section begins with the lines:\\ +\hspace*{1em} @ letterSize 8.5in 11in\\ +\hspace*{1em} @ letter 8.5in 11in\\ +\hspace*{1em} @+ \%\%BeginPaperSize: Letter\\ +\hspace*{1em} @+ letter\\ +\hspace*{1em} @+ \%\%EndPaperSize +\end{description} + +The current \TL{} distribution implements the procedure of making +always up-to-date fontmaps files for Dvips and Pdftex. This is done by +the \cmdname{updmap} program during installation, as well as during any +font package addition. If you add new packages by hand, edit the file +\verb+updmap.cfg+ in \path|$VARTEXMF/web2c|. + +\subsubsection{Pdftex} + +If you use the program pdf{}latex to write \acro{PDF} format directly, +and you are using \acro{US} letter-size paper, edit the file +\verb+C:\Program Files\TeXLive\texmf-var\tex\generic\config\pdftexconfig.tex+ and +change \samp{\bs pdfpagewidth} and \samp{\bs pdfpageheight}. These entries should read: +\begin{alltt} +\bs{}pdfpagewidth=8.5 true in +\bs{}pdfpageheight=11 true in +\end{alltt} +Save the file and exit the editor. + +\subsubsection{GSView} +GSView is now distributed under the Aladdin License, and therefore is no longer included in +\TL{}. + +If you may want to change the page size to US letter size. If so, open +GSView from the \guiseq{Start} menu, and select \guiseq{Media\arw Letter}. + +Also, there are menu settings that are supposed to give you the most +readable screen image. On \guiseq{Media \arw Display Settings}, set both +\optname{Text Alpha} and \optname{Graphics Alpha} to 4~bits. + +Note that the installation process has set all \code{.ps} and +\code{.eps} files to automatically open with \cmdname{GSView}. + +For printing instructions, see section~\ref{printing} below. + +\subsubsection{WinDvi} +\label{sub:windvi} + +The \file{TeXSetup.exe} program takes care of associating the files +with the \file{.dvi} extension with \file{Windvi}. + +Open it with \guiseq{Start\arw Programs\arw TeXLive\arw DVI Viewer}. + +You can set it for US letter-size paper by going to \guiseq{View\arw +Options\arw Papertype} and selecting US (8.5\verb+"+ x 11\verb+"+) (and +then \optname{OK}. Exit \cmdname{windvi}. + +You can change other parameters from there as well, such as the ability +to execute system commands specified by the document (disabled by +default for security reasons). Also, the first time you view any .dvi +file, you may find the magnification too large. Zoom out until you get +an appropriate size. + +%There are two important parameters related to printing that can't yet +%be set from the dialog boxes, namely the resolution and the \MF{} mode +%for the printer. You can set them once for all by specifying them on +%the command line: +%\begin{verbatim} +%c:\>windvi -p 360 -mfmode canonbjc foo.dvi +%\end{verbatim} +%When you will exit Windvi, these parameters will be stored in the +%configuration file. The available modes are found in this file:\\ +%\path|c:\Program Files\TeXLive\texmf\metafont\misc\modes.mf| + +All configuration settings for \cmdname{Windvi} are stored in a file +named \path|windvi.cnf| file. You can find it by running this command at +the prompt: +\begin{verbatim} +c:\>kpsewhich --expand-var $HOME/windvi.cnf +\end{verbatim} + +Should you have problems with \cmdname{Windvi}, please remove the configuration +file and test your problem against a vanilla configuration. + +\subsection{Testing} + +For generic verification procedures, see section~\ref{sec:test-install} +(\p.\pageref{sec:test-install}). This section describes +Windows-specific tests. + +Open the file \verb+sample2e.tex+ in your editor (Xemacs, WinShell), +found in \path|C:\Local\TeX\texmf\tex\latex\base|. The \LaTeX\ source +should appear on the screen. Process it by clicking on the +\guiseq{Command\arw LaTeX} menu (XEmacs) or \LaTeX\ icon on the toolbar +(WinShell), then view it by clicking on the \guiseq{Command\arw View DVI} +menu (XEmacs) or Preview (Windvi) icon (WinShell). + +At first, when you preview files with Windvi, 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. + +\textbf{Hint for the future:} If a \LaTeX\ run stops because \LaTeX\ +cannot find a file, you can press Ctrl-z to quit. + + +\subsection{Printing} +\label{printing} + +It is possible to print from Windvi. In this case, printing will be done +using the Windows unified printer driver. By definition, it is +compatible with all printers. However, there is some drawback: it can +generate some huge spool files, and some (older) versions of Windows +just don't like them. The advantage is that you can use features like +embedding BMP or WMF images. You also need to make sure that the printer +parameters are correctly set (subsection~\ref{sub:windvi}), else you +will get scaled printing (printing at 600\dpi{} on a 300\dpi{} printer +will give you only one quadrant of your page). + + +Printing is faster and more reliable if you run \cmdname{dvips} to make +a \filename{.ps} file and then print from \cmdname{GSView}. In +\cmdname{GSview}, select \guiseq{File\arw Print\ldots}. A \guiseq{Print} +window will appear. + +If you are using a \PS{} printer, \textit{be sure to select +\guiseq{\PS{} Printer}}. This is done in the \guiseq{Print Method} box +at the bottom left of the \guiseq{Print} window. You can then select any +of the printers that you have previously installed. If you fail to +check the box for \optname{\PS{} Printer}, printing will not work. + +If you will be using your own non-\PS{} printer, select +\guiseq{Ghostscript device} in the \guiseq{Print Method} box, then click +on the button to the right labelled \guiseq{djet500} and select your +printer type from the list that pops up. (In the older version of +\cmdname{GSView}, make sure \optname{\PS{} Printer} is \textit{not} +selected, then select your printer type from the \guiseq{Device} list.) + +\subsection{Tips and tricks for Win32} + +\subsubsection{Different flavors of Win32} + +What we call Win32 is not an operating system by itself. It is a large +set of functions (around 12,000 in the header files of the Microsoft +\acro{SDK}) that you can use to write programs for different operating +systems of the Windows family. + +Windows comes in different flavors: +\begin{itemize} +\item Win95, Win98 and Win\acro{ME}, which \emph{are not true multitasking, + multithreading} environments. They are the latest\Dash and hopefully + last\Dash metamorphosis of \acro{DOS}. This can be more or less proven + by the fact that when booting, the PC will load the \path|command.com| + interpreter, and if you stop the boot process at this point, you can + ask for the current (\acro{DOS}) version and it will answer something + like \samp{MS-DOS 7.0} (at least for the old versions of Win9x). +\item Windows \acro{NT}, which is a new operating system written from + scratch, capable of true multitasking behavior, and including many + high level features. +\item Windows 2000, based on \acro{NT}, with all the bells and + whistles of Win98. +\item Windows \acro{XP}, which comes with Personal and Pro flavors. This is + the last step in merging both lines of products (Win9x based and + \acro{NT} based). \acro{XP} is based on \acro{NT}. +\end{itemize} + +Win9x are able to run 32~bits programs and 16~bits programs +concurrently. But the operating system by itself is not entirely +written in 32~bits mode, and does not support memory protection: 16bits +applications can overwrite parts of the operating system memory! Some +parts of the system like the \acro{GDI} (Graphical Device Interface) +manage limited resources like bitmaps, fonts, pens and so on for the set +of all programs that run concurrently. All the bitmaps headers available +at the same time can't amount for more than 64kB. This explains the +performance tool and the fact that you can put your system on his knees +by making intensive use of graphic objects for example. + +NT, 2K and XP do not suffer from these limitations, and neither from +other Win9x limitations. They are true multitasking environments, with +protected memory. They are much more responsive than Win9x because +of better memory management, better file system and so on. + +\subsubsection{Command line prompt} + +You may wonder, ``Why would I need to use a command line prompt when +I have Windows?'' + +Good question. The problem is of very general nature. Not all operations +can be done easily using only a \acro{GUI}. Command line gives you +programming power\Dash assuming a clever command interpreter. + +But the problem here is more fundamental: \TeX{} is \emph{a batch} +tool. Not an interactive one. \TeX{} needs to compute the best +layout for each page, resolve cross-references and so on. This can be +done only by a global processing of the document. It is not (yet) a +task that can be done interactively. + +This means that you should use \TeX{} from a command line. In fact the +situation is not so bad. There is an advantage to write command line +tools for complex processing: they are better debugged, because they are +independent of any \acro{GUI} problems, and \acro{GUI} tools can be +designed to interface to the command line tools. This is the case for +\TeX{}, where you will mostly interact with it through a \acro{GUI} text +editor. + +However, you may need to use the command line prompt in a number of +situations. One is when you are having difficulties and want to debug +your setup. + +\begin{description} + \item[Win9x] You can open a command line prompt by looking either for + the \acro{MS-DOS} icon in the \guiseq{Start\arw Programs} menu, + or by choosing \guiseq{Start\arw Run} menu typing in + \path|command.com| as the progrm name. + \item[NT, 2K, XP] You can open a command line prompt by looking for + \guiseq{Command Prompt} in the \guiseq{Start\arw Accessories} menu. + You can also choose \guiseq{Start\arw Run} and type in + \path|cmd.exe|, which is the name of the brand new command + interpreter for \acro{NT} (thus, it is untrue to call this a + \emph{DOS} box!). +\end{description} + +These locations may change across different Windows versions. + + +\subsubsection{Path separators} + +The Win32 API understands both \path|/| and \path|\| characters as PATH +separators. But the command interpreters do not! So whenever a path name +is used programmatically, you can use both separators, and even mix them +up in the same path name. But on the command line, you must type +\path|\| as path separator. The reason is compatibility: the command +processor used \samp{/} to introduce arguments to commands. + +All this to say: do not be surprised to read path names written using +the Unix convention; \fpTeX{} is a port of \Webc, and aims to be compatible +across platforms. For this reason, all the configuration files that +need to specify path names use the Unix convention. + +\subsubsection{File systems} +\label{sec:clusters} + +The worst feature of Win9x with regard to \TeX{} is probably the +so-called FAT file system. \TeX{} uses very many small files, with size +around 1--3kB. The \acro{FAT} file system is old, and predates by +decades the multi-gigabytes hard disks we have today. As a result, it +cannot manage efficiently the tens of thousands of \TeX{} files found in +\TL{}. The \acro{FAT} file system allocates a minimum of 32kB for +\emph{any} file on a huge partition. It means that \TeX{} will use much +more disk space than it actually needs. + +The other, more modern, file systems available, \acro{FAT32} and +\acro{NTFS}, do not have this drawback. They manage clusters of 4kB +only. (You can lower the limit to 512 bytes on \acro{NTFS}.) + +\subsubsection{How to add some directory to your PATH} + +There are pairs of variables and values which behave much like global +variables inside your programs. The set of those variables is called the +environment. Each program is initialized with a copy of the +environment when it is run. It can request and change the +value of any variable. The changes happen in the copy of the +environment, and is not at all propagated to the other running +programs. + +Your PATH is a special environment variable used to search for +programs you want to run. +There is a different procedure to change it for Win9x, WinME and NT/2K/XP: + +\begin{description} +\item[Windows 95/98] Edit your \path|autoexec.bat|. In this file should be a line + starting with \texttt{PATH=} and followed by a list of directories separated + by \path|;|. Please add the directory with the executables in this line. + After this, this line could look as follows: +\begin{verbatim} +PATH=c:\windows;c:\windows\system;c:\"Program Files"\TL\bin\win32 +\end{verbatim} +\item[Windows ME] You need to run the special program + \path|c:\windows\system\msconfig.exe| to be able to change any + environment variable. From this program, select the `Environment' + tab, and then add or modify the variable you want. You will be asked to reboot the + machine upon any change. +\item[Windows NT/2K/XP] + Click left on \guiseq{Start \arw Settings \arw Control Panel}. Now the + window with the control panel icons opens. Double click on System. The + System Properties window opens. Click on the tab \textsf{Environment} + or look for a button named \guiseq{Environment Variables} among the + dialog boxes. Now you can change the environment variables for your + user account. Note: There are also displayed the environment settings + for the system. Normally, you can't change the system variables + unless you have administrator rights on your machine. If you want to + change the \texttt{PATH} for all users, you will have to contact your + system administrator or be the system administrator yourself\Dash in + the latter case you should know what you are doing. + + If there is already a \texttt{PATH} setting for your user account, + left click on \texttt{PATH}. In the field \textsf{Variable} appears + \texttt{PATH} while the field Value shows the current setting of + \texttt{PATH} as a list of directories separated by \path|;|. Add + the directory where the executables are located (e.g. + \path|c:\Program Files\TeXLive\bin\win32|). If there isn't a \texttt{PATH} variable + for your user account, simply click in the field Variable and type + in \texttt{PATH}, click in the field \textsf{Value} + and type in the directory with the executables. Important: Click on + the \textsf{Apply} button before clicking \textsf{Ok}, otherwise the + changes to \texttt{PATH} won't apply to your system. Be careful when + changing the environment settings. +\end{description} + +The best way to be sure that a variable has been properly set is to +open a console and type: +\begin{verbatim} +set VARIABLE +\end{verbatim} +which should return the corresponding value. + +\subsubsection{\TeX{} engines} + +If you have a look at the \Webc{} documentation, you will read that all +the various \TeX{} derived programs use the same base engine. For +example, \path|tex.exe| and \path|latex.exe| are exact copies of the +same program, but each one will use a different format file, based on +its calling name. + +Under Unix, this feature is implemented through \emph{symbolic +links}. It saves up a bit of disk space, because some engines are +used with many different format files. + +The Win32 API does not know about file links. So to save up almost +the same amount of memory, all the \TeX{} base engines have been put +in DLLs (\emph{Dynamic Linked Library}). This means that you will have +the following layout: +\begin{alltt} +13/05/2002 17:06 3 584 latex.exe +13/05/2002 17:06 266 240 tex.dll +13/05/2002 17:06 3 584 tex.exe +\end{alltt} +and the \path|latex.exe| file is nothing but a rough copy of +\path|tex.exe| using the same core \path|tex.dll|. +The same trick has been used for the \path|mktex*.exe| family of programs which are +linked to the \path|mktex.dll| library. + +In fact, a generic tool called \path|lnexe.exe| is provided to build the +equivalent of Unix hard links for executable files only under Win32. + +\subsection{In case of problems} +\label{sec:troubleshooting} + +\subsubsection{What to do if \texttt{latex} does not find your files?} + +\begin{itemize} + +\item \cmdname{kpsewhich} is the tool of choice to debug any +problem. Unfortunately, \cmdname{kpsewhich} outputs debug information +to stderr, and the Windows console does not know how to redirect stderr +to a file\footnote{Well, NT and Win2k consoles know how to do that. But +the trick will work for any console.}. For diagnostic purposes you can +temporarily set an environment variable (in a \acro{DOS} box): + +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=err.log +\end{verbatim} +You can also set the debug level: +\begin{verbatim} +SET KPATHSEA_DEBUG=-1 +\end{verbatim} + +If you want to redirect stderr to stdout, which is not possible +Windows, then do: +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=con: +\end{verbatim} +This way you can capture both stdout and stderr in the same file. + +\item Assuming the installation has been done in \path|c:/Program Files/TeXLive|, check + the following values: \\ + {\small + \begin{tabular}{ll} + \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-path $TEXMF| & \path|c:/Program Files/TeXLive/texmf| \\ + \path|kpsewhich -expand-path $TEXMFCNF| & + \path|.;c:/Program Files/TeXLive/texmf/web2c;| \\ + & \path|c:/Program Files/TeXLive/bin/win32;| \\ + & \path|c:/Program Files/TeXLive/bin;| \\ + & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/Program Files/TeXLive/texmf/tex//| + \end{tabular} +} +\item If you have other \TeX{}-related values already set in your + environment, please, remove them. They are overriding the ones in + texmf.cnf. +\item Check the values from:\\ +{\small + \begin{tabular}{ll} + \texttt{kpsewhich cmr10.tfm} & \path|c:/Program Files/TeXLive/texmf/fonts/tfm/public/cm/cmr10.tfm|\\ + \texttt{kpsewhich latex.fmt}& \path|c:/Program Files/TeXLive/texmf/web2c/latex.fmt| + \end{tabular} +} +\item At this point, if everything is correct, \TeX{} and friends + should work. If it is not the case, you will need to play with + the \path|-debug=n| option from \path|kpsewhich|, and check back all + the values. Try to identify and report the problem. +\end{itemize} + +\subsubsection{What to do if your setup still does not work as expected?} + +Here are several questions to investigate: + +\begin{enumerate} +\item Is \file{tex.exe} in my \path|PATH|? + +\item Is the \path|TEXMFCNF| variable correctly set to +\path|c:/Program Files/TeXLive/texmf-var/web2c| (default value)? + +\item Are there any errors in the log file generated by the +\file{TeXSetup.exe} program? You can find this by searching for the +string \samp{Error}. + +\item Are there any relevant bug fixes at \url{http://tug.org/texlive/}? +(Unlikely, but it doesn't hurt to check.) + +\item Check the web pages at +\url{http://www.fptex.org/}, or consider subscribing to the \fpTeX{} +mailing list, via \url{http://tug.org/mailman/listinfo/fptex}. + +\end{enumerate} + + +The \TL{} software consists of hundreds of programs and tens of +thousands of files, all from varying sources. So it is quite difficult to +predict all possible causes for problems. Nevertheless, we will do our +best to help you. (See section~\ref{sec:help}, \p.\pageref{sec:help}.) + + +\subsection{Compiling the source files} + +The whole set of source files is available in the distribution as the +\path|source/source.tar.bz2| archive, together with a separate source +archive for Windows. To be able to compile the whole distribution for +Windows, you will need: + +\begin{itemize*} +\item Windows 2K/XP +\item Microsoft Visual Studio .Net 2003 +\item a set of Unix tools (\texttt{sed}, + \texttt{grep}, \texttt{gawk}, etc.) and also Perl, Flex and Bison, +\item to adjust the paths in the + \path|win32/make/common.mak| file according to your installation +\item to adjust the paths in the Perl script file + \path|win32/perl/build.pl|, +\item run the compilation from the \path|mswin32/| directory using this + command: +\begin{verbatim} +c:\texlive\source\mswin32>perl ./perl/build.pl --install --log=install.log +\end{verbatim} +\end{itemize*} + +There is a lot of work to do to make this process easier and cleaner. + +\subsection{Where to get more information} + +The Windows \TeX{} system included on \TL{} is also known as +\fpTeX. The packaging differs, but \fpTeX{} is no more no less than the +current \TL\ release for Windows. + +The \fpTeX{} home page is \url{http://www.fptex.org}. + +The current \fpTeX release is available from any \CTAN site in +\url{htp://www.ctan.org/tex-archive/systems/win32/fptex}. + +The main ftp site for \fpTeX\ is \url{ftp://ftp.dante.de/pub/fptex/} +from where beta versions of \fpTeX\ and additionnal tools are available. +This main site is (partially) mirrored daily by all \CTAN{} sites at +\path|systems/win32/fptex|. + +The \TeX{} Users Group is kindly hosting a mailing list dedicated to +\fpTeX. It is used for announcements, bug reports, enhancement requests, +and general discussion about \fpTeX. To subscribe, visit +\url{http://tug.org/mailman/listinfo/fptex}. The mailing list +address is \email{fptex@tug.org}. + + +% don't use \Webc so the \uppercase in the headline works. +\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{}. + +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. + +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 \web{} and translates them into C source +code. The core \TeX{} programs are: + +\begin{cmddescription} +\item[bibtex] Maintaining bibliographies. +\item[dmp] \cmdname{troff} to MPX (\MP{} pictures). +\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[makempx] \MP{} label typesetting. +\item[mf] Creating typeface families. +\item[mft] Prettyprinting \MF{} source. +\item[mpost] Creating technical diagrams. +\item[mpto] MetaPost label extraction. +\item[newer] Compare modification times. +\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 \acro{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{}. 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 more than one directory tree +simultaneously, which is useful in maintaining \TeX's standard +distribution and local extensions in two 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} + +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{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{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{Debugging}). + +\subsubsection{Config files} + +\begingroup\tolerance=3500 +\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} (by default such a file lives +in the \file{texmf/web2c} subdirectory). \emph{All} +\file{texmf.cnf} files in the search path will be read and definitions +in earlier files override those in later files. Thus, with a search +path of \verb|.:$TEXMF|, values from \file{./texmf.cnf} override those +from \verb|$TEXMF/texmf.cnf|. +\endgroup + +\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{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{Default-expansion} + +\tolerance=2500 +If the highest-priority search path (see ``Path sources'' on +page~\pageref{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 + +\tolerance=1500 + +\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 can be used to implement multiple \TeX{} hierarchies, by +assigning a brace list to \code{\$TEXMF}. +For example, in \file{texmf.cnf}, you find +the following definition: +\begin{verbatim} + TEXMF = {$HOMETEXMF,$TEXMFLOCAL,!!$VARTEXMF,!!$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{\$HOMETEXMF/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$VARTEXMF/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{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{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{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); most sites have only one hierarchy. \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 +(\acro{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{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 more important 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 + found in the first column of table~\ref{tab:kpathsea}, which lists + currently recognized names, a description, possible file extensions, + and associated environment variables. +\end{ttdescription} + + +\def\KpathKey#1#2#3#4#5{% name, number, description, variables, + % suffixes +\SetRowColor#1 & #3 & #4 & #5\\} +\def\HEAD#1{\multicolumn{1}{l}{\emph{#1}}} +% +\begin{small} +% a footnoterule immediately under a bottom-of-page rule looks dead +% silly, so we suppress it +\renewcommand\footnoterule{\relax} +% +\begin{longtable}{@{}% + >{\ttfamily}P{.16\textwidth}% Col.1 + P{.3\textwidth}% Col 2 + >{\ttfamily\footnotesize}P{.29\textwidth}% Col 3 + >{\ttfamily}P{.14\textwidth}% Col 4 +@{}} +\caption{Kpathsea file types.}\label{tab:kpathsea}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\endfirsthead +\multicolumn{3}{l}{Kpathsea file types \emph{continued}}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\noalign{\vspace{2pt}} +\endhead +\mbox{}\\ +\hline +\endfoot +\KpathKey + {afm} + {4} + {Adobe font metrics} + {AFMFONTS} + {.afm} +\KpathKey + {base} + {5} + {Metafont memory dump} + {MFBASES, TEXMFINI} + {.base} +\KpathKey + {bib} + {6} + {\BibTeX{} bibliography source} + {BIBINPUTS, TEXBIB} + {.bib} +\KpathKey + {} + {2} + {bitmap fonts} + {GLYPHFONTS, TEXFONTS} + {} +\KpathKey + {bst} + {7} + {\BibTeX{} style files} + {BSTINPUTS} + {.bst} +\KpathKey + {cnf} + {8} + {Runtime configuration files} + {TEXMFCNF} + {.cnf} +\KpathKey + {dvips config} + {34} + {\textsf{dvips} configuration files, e.g., \file{config.ps}} + {TEXCONFIG} + {} +\KpathKey + {enc} + {34} + {Font encoding files} + {ENCFONTS} + {.enc} +\KpathKey + {fmt} + {10} + {\TeX{} memory dump} + {TEXFORMATS, TEXMFINI} + {.fmt, .efmt, .efm} +\KpathKey + {gf} + {0} + {generic font bitmap} + {GFFONTS} + {.gf} +\KpathKey + {graphic/figure} + {25} + {Encapsulated \PS{} figures} + {TEXPICTS, TEXINPUTS} + {.eps, .epsi} +\KpathKey + {ist} + {35} + {\textsf{makeindex} style files} + {TEXINDEXSTYLE, INDEXSTYLE} + {.ist} +\KpathKey + {ls-R} + {9} + {Filename databases} + {TEXMFDBS} + {} +\KpathKey + {map} + {11} + {Fontmaps} + {TEXFONTMAPS} + {.map} +\KpathKey + {mem} + {12} + {MetaPost memory dump} + {MPMEMS, TEXMFINI} + {.mem} +\KpathKey + {mf} + {13} + {Metafont source} + {MFINPUTS} + {.mf} +\KpathKey + {mfpool} + {14} + {Metafont program strings} + {MFPOOL, TEXMFINI} + {.pool} +\KpathKey + {mft} + {15} + {MFT style file} + {MFTINPUTS} + {.mft} +\KpathKey + {} + {41} + {miscellaneous fonts} + {MISCFONTS} + {} +\KpathKey + {mp} + {16} + {MetaPost source} + {MPINPUTS} + {.mp} +\KpathKey + {mppool} + {17} + {MetaPost program strings} + {MPPOOL, TEXMFINI} + {.pool} +\KpathKey + {MetaPost support} + {18} + {MetaPost support files, used by DMP} + {MPSUPPORT} + {} +\KpathKey + {ocp} + {19} + {\OMEGA{} compiled process files} + {OCPINPUTS} + {.ocp} +\KpathKey + {ofm} + {20} + {\OMEGA{} font metrics} + {OFMFONTS, TEXFONTS} + {.ofm, .tfm} +\KpathKey + {opl} + {21} + {\OMEGA{} property lists} + {OPLFONTS, TEXFONTS} + {.opl} +\KpathKey + {otp} + {22} + {\OMEGA{} translation process files} + {OTPINPUTS} + {.otp} +\KpathKey + {ovf} + {23} + {\OMEGA{} virtual fonts} + {OVFFONTS, TEXFONTS} + {.ovf} +\KpathKey + {ovp} + {24} + {\OMEGA{} virtual property lists} + {OVPFONTS, TEXFONTS} + {.ovp} +\KpathKey + {pdftex config} + {18} + {\textsf{pdftex} configuration files} + {PDFTEXCONFIG} + {} +\KpathKey + {pk} + {1} + {packed bitmap fonts} + {\var{program}FONTS \textrm{(\texttt{\var{program}} being + \textsmaller{\cmdname{XDVI}}, + etc.)}, PKFONTS, TEXPKS, GLYPHFONTS, TEXFONTS} + {.pk} +\KpathKey + {\PS{} header} + {30} + {downloadable \PS{}} + {TEXPSHEADERS, PSHEADERS} + {.pro, .enc} +\KpathKey + {tex} + {26} + {\TeX{} source} + {TEXINPUTS} + {.tex, .cls, .sty, .clo, .def} +\KpathKey + {texmfscripts} + {20} + {Scripts distributed in the \file{texmf} tree} + {TEXMFSCRIPTS} + {} +\KpathKey + {TeX system documentation} + {27} + {Documentation files for the \TeX{} system} + {TEXDOCS} + {} +\KpathKey + {TeX system sources} + {29} + {Source files for the \TeX{} system} + {TEXSOURCES} + {} +\KpathKey + {texpool} + {28} + {\TeX{} program strings} + {TEXPOOL, TEXMFINI} + {.pool} +\KpathKey + {tfm} + {3} + {\TeX{} font metrics} + {TFMFONTS, TEXFONTS} + {.tfm} +\KpathKey + {Troff fonts} + {31} + {Troff fonts, used by DMP} + {TRFONTS} + {} +\KpathKey + {truetype fonts} + {36} + {TrueType outline fonts} + {TTFONTS} + {.ttf, .ttc} +\KpathKey + {Type~1 fonts} + {32} + {Type 1 \PS{} outline fonts} + {T1FONTS, T1INPUTS, TEXPSHEADERS, DVIPSHEADERS} + {.pfa, .pfb} +\KpathKey + {type42 fonts} + {37} + {Type 42 \PS{} outline fonts} + {T42FONTS} + {} +\KpathKey + {vf} + {33} + {virtual fonts} + {VFFONTS, TEXFONTS} + {.vf} +\KpathKey + {web2c files} + {38} + {\Webc{} support files} + {WEB2C} + {} +\KpathKey + {other text files} + {39} + {text files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\KpathKey + {other binary files} + {40} + {binary files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\end{longtable} +\end{small} + + +\begin{multicols}{2} + + The last two entries in table~\ref{tab:kpathsea} are special + cases, where the paths and environment variables depend on the name + of the program: the variable name is constructed by converting the + program name to upper case, and then appending \texttt{INPUTS}. + + The environment variables are set by default in the configuration + file \file{texmf.cnf}. It is only when you want to override one or + more of the values specified in that file that you might want to set + them explicitly in your execution environment. + + The \samp{-{}-format} and \samp{-{}-path} options are mutually + exclusive. + +\begin{ttdescription} + +\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{SExamplesofuse} + +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} + +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 +prolog \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{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. +\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 +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/html/dvips/dvips_toc.html}). +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{SExamplesofuse} 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 +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}. + etc.). +\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 TFM files read. +\item[\texttt{hash\_extra}] + Additional space for the hash table of control sequence names. + Approximately 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. + + +\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 \acro{GNU} version of these programs +(\cmdname{gcc}, \acro{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:unix-install-disk} on +\p.\pageref{sec:unix-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} & \acro{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: \acro{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. + + +\section{Acknowledgements} + +\TL{} is a joint effort by virtually all of the \TeX{} user groups. +This edition of \TL{} was overseen by Sebastian Rahtz and Karl Berry. +The other principal contributors are listed below. + +\begin{itemize*} + +\item The German-speaking \TeX{} Users (\acro{DANTE} e.V.), who provide +the hardware for the \TL{} source repository; and Rainer Sch\"opf and +Reinhard Zierke who look after it. \acro{DANTE} officers Volker Schaa +and Klaus Hoeppner coordinated production with the Lehmann's Bookstore +(\url{http://www.lob.de}). + +\item The Perforce corporation (\url{http://www.perforce.com}), for providing +a free copy of their excellent change management system, which we used +to manage the \TL{} sources. + +\item Peter Breitenlohner and the \eTeX\ team for the stable foundation +of future \TeX's. + +\item Thomas Esser, without whose marvelous \teTeX{} package \TL{} +would certainly not exist, and whose continual help makes it a better +product. + +\item Michel Goossens, who co-authored the original documentation. + +\item Eitan Gurari, whose \TeX4ht was used to create the \HTML{} +version of this documentation, and who worked tirelessly to improve +it at short notice. + +\item Hans Hagen, for major testing and making the \ConTeXt\ format +conform to \TL's needs. + +\item \Thanh, Martin Schr\"oder, and the pdf\TeX\ team for continuing +enhancements of \TeX's abilities. + +\item Petr Olsak, who coordinated and checked all the Czech and Slovak +material very carefully. + +\item Fabrice Popineau, for the Windows side of \TL{} and devising the +new directory layout. + +\item Staszek Wawrykiewicz, the principal tester for all of \TL{}, and +coordinator of the Polish contributions. + +\item Olaf Weber, for his patient assembly and maintenance of Web2C, +upon which all else depends. + +\item Gerben Wierda, for creating and maintaining the \MacOSX\ support, +and much integration and testing. + +\item Graham Williams, on whose work the catalogue of packages depends. + +\end{itemize*} + +Builders of the binaries: +Tigran Aivazian (\pkgname{x86\_64-linux}), +Manfred Lotz (\pkgname{i386-freebsd}), +Maksym Polyakov (\pkgname{sparc-solaris}), +Fabrice Popineau (\pkgname{win32}), +Norbert Preining (\pkgname{alpha-linux}), +Vladimir Volovich (\pkgname{powerpc-aix} and \pkgname{sparc64-linux}), +Staszek Wawrykiewicz (\pkgname{i386-linux}), +Olaf Weber (\pkgname{mips-irix}), +Gerben Wierda (\pkgname{powerpc-darwin}). + +Documentation and translation updates: +Karl Berry (English), +Daniel Flipo \& Fabrice Popineau (French), +G\"unter Partosch \& Hartmut Henkel (German), +Petr Sojka \& Jan Busa (Czech\slash Slovak), +Boris Veytsman (Russian), +Staszek Wawrykiewicz (Polish). + +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. + +In 2003, with the continuing flood of updates and additions, we found +that \TL{} had grown so large it could no longer be contained on a +single \CD, so we split it into three different distributions (see +section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). In +addition: + +\begin{itemize*} +\item At the request of the \LaTeX{} team, we changed the standard + \cmdname{latex} and \cmdname{pdflatex} commands to now use \eTeX{} (see + \p.\pageref{text:etex}). +\item The new Latin Modern fonts were included (and are recommended). +\item Support for Alpha \acro{OSF} was removed + (\acro{HPUX} support was removed previously), since no one had (or + volunteered) hardware available on which to compile new binaries. +\item Windows setup was substantially changed; for the first time + an integrated environment based on XEmacs was introduced. +\item Important supplementary programs for Windows + (Perl, Ghost\-script, Image\-Magick, Ispell) are now installed + in the \TL{} installation directory. +\item Font map files used by \cmdname{dvips}, \cmdname{dvipdfm} + and \cmdname{pdftex} are now generated by the new program + \cmdname{updmap} and installed into \dirname{texmf/fonts/map}. +\item \TeX{}, \MF{}, and \MP{} now, by default, output most input + characters (32 and above) as themselves in output (e.g., + \verb|\write|) files, + log files, and the terminal, i.e., \emph{not} translated using the + \verb|^^| notation. In \TL{}~7, this translation was + dependent on the system locale settings; now, locale settings do + not influence the \TeX{} programs' behavior. If for some reason + you need the \verb|^^| output, rename the file + \verb|texmf/web2c/cp8bit.tcx|. (Future releases will have cleaner + ways to control this.) +\item This documentation was substantially revised. +\item Finally, since the edition numbers had grown unwieldy, + the version is now simply identified by the year: \TL{} 2003. +\end{itemize*} + +\subsection{Present} +\label{tlcurrent} + +2004 saw the usual huge number of updates to packages and programs. +Here are the most notable changes, including one important backward +incompatibility: + +\begin{itemize} + +\item If you have locally-installed fonts which use their own +\filename{.map} or (much less likely) \filename{.enc} support files, you +may need to move those support files. + +\filename{.map} files are now searched for in subdirectories of +\dirname{fonts/map} only (in each \filename{texmf} tree), along the +\envname{TEXFONTMAPS} path. Similarly, \filename{.enc} files are now +searched for in subdirectories of \dirname{fonts/enc} only, along the +\envname{ENCFONTS} path. \cmdname{updmap} will attempt to warn about +problematic files. + +For methods of handling this and other information, please see +\url{http://tug.org/texlive/mapenc.html}. + +\item The \TK\ has been expanded with the addition of a \MIKTEX-based +installable \CD, for those who prefer that implementation to Web2C. +See section~\ref{sec:struct-tl} (\p.\pageref{sec:struct-tl}). + +\item Within \TL, the single large \dirname{texmf} tree of previous +releases has been replaced by three: \dirname{texmf}, +\dirname{texmf-dist}, and \dirname{texmf-doc}. See +section~\ref{sec:tld} (\p.\pageref{sec:tld}), and the \filename{README} +files for each. + +\item All \TeX-related input files are now collected in +the \dirname{tex} subdirectory of \dirname{texmf*} trees, rather than +having separate sibling directories \dirname{tex}, \dirname{etex}, +\dirname{pdftex}, \dirname{pdfetex}, etc. See +\CDref{texmf-doc/doc/english/tds/tds.html\#Extensions} +{\texttt{texmf-doc/doc/english/tds/tds.html\#Extensions}}. + +\item Helper scripts (not meant to be invoked by users) are now located +in a new \dirname{scripts} directory of \dirname{texmf*} trees, and +searched for via \verb|kpsewhich -format=texmfscripts|. So if you have +programs which call such scripts, they'll need to be adjusted. See +\CDref{texmf-doc/doc/english/tds/tds.html\#Scripts} +{\texttt{texmf-doc/doc/english/tds/tds.html\#Scripts}}. + +\item Almost all formats leave most characters printable as +themselves via the ``translation file'' \filename{cp227.tcx}, instead of +translating them with the \verb|^^| notation. Specifically, characters +at positions 32--256, plus tab, vertical tab, and form feed are +considered printable and not translated. The exceptions are plain \TeX\ +(only 32--126 printable), \ConTeXt\ (0--255 printable), and the +\OMEGA-related formats. This default behavior is almost the same as in +\TL\,2003, but it's implemented more cleanly, with more possibilities +for customization. See \CDref{texmf/doc/web2c/web2c.html\#TCX-files} +{\texttt{texmf/doc/web2c/web2c.html\#TCX-files}}. +(By the way, with Unicode input, \TeX\ may output partial character +sequences when showing error contexts, since it is byte-oriented.) + +\item \textsf{pdfetex} is now the default engine for all formats +except (plain) \textsf{tex} itself. (Of course it generates \acro{DVI} +when run as \textsf{latex}, etc.) This means, among other things, that +the microtypographic features of \textsf{pdftex} are available in +\LaTeX, \ConTeXt, etc., as well as the \eTeX\ features +(\OnCD{texmf-dist/doc/etex/base/}). + +It also means it's \emph{more important than ever} to use the +\pkgname{ifpdf} package (works with both plain and \LaTeX) or equivalent +code, because simply testing whether \cs{pdfoutput} or some other +primitive is defined is not a reliable way to determine if \acro{PDF} +output is being generated. We made this backward compatible as best we +could this year, but next year, \cs{pdfoutput} may be defined even when +\acro{DVI} is being written. + +\item pdf\TeX\ (\url{http://pdftex.org}) has many new features: + + \begin{itemize*} + + \item \cs{pdfmapfile} and \cs{pdfmapline} provide font map support + from within a document. + + \item Microtypographic font expansion can be used more easily.\\ + \url{http://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html} + + \item All parameters previously set through the special configuration + file \filename{pdftex.cfg} must now be set through primitives, + typically in \filename{pdftexconfig.tex}; \filename{pdftex.cfg} is no + longer supported. Any extant \filename{.fmt} files must be redumped + when \filename{pdftexconfig.tex} is changed. + + \item See the pdf\TeX\ manual for more: \OnCD{texmf/doc/pdftex/manual}. + + \end{itemize*} + +\item The \cs{input} primitive in \cmdname{tex} (and \cmdname{mf} and +\cmdname{mpost}) now accepts double quotes containing spaces and other +special characters. Typical examples: +\begin{verbatim} +\input "filename with spaces" % plain +\input{"filename with spaces"} % latex +\end{verbatim} +See the Web2C manual for more: \OnCD{texmf/doc/web2c}. + +\item enc\TeX\ support is now included within Web2C and consequently all +\TeX\ programs, via the \optname{-enc} option\Dash \emph{only when +formats are built}. enc\TeX\ supports general re-encoding of input and +output, enabling full support of Unicode (in \acro{UTF}-8). See +\OnCD{texmf-dist/doc/generic/enctex/} and +\url{http://www.olsak.net/enctex.html}. + +\item Aleph, a new engine combining \eTeX\ and \OMEGA, is available. +A little information is available in \OnCD{texmf-dist/doc/aleph/base} +and \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph}. The +\LaTeX-based format for Aleph is named \textsf{lamed}. + +\item The latest \LaTeX\ release has a new version of the +\acro{LPPL}\Dash now officially a Debian-approved license. Assorted +other updates, see the \filename{ltnews} files in +\OnCD{texmf-dist/doc/latex/base}. + +\item \cmdname{dvipng}, a new program for converting \acro{DVI} to +\acro{PNG} image files, is included. See \OnCD{texmf/doc/man/man1/dvipng.1}. + +\item We reduced the \pkgname{cbgreek} package to a ``medium'' sized set +of fonts, with the assent and advice of the author (Claudio Beccari). +The excised fonts are the invisible, outline, and transparency ones, +which are relatively rarely used, and we needed the space. The full set +is of course available from \acro{CTAN} +(\url{http://www.ctan.org/tex-archive/fonts/greek/cb}). + +\item \cmdname{oxdvi} has been removed; just use \cmdname{xdvi}. + +\item The \cmdname{ini} and \cmdname{vir} commands (links) for +\cmdname{tex}, \cmdname{mf}, and \cmdname{mpost} are no longer created, +such as \cmdname{initex}. The \cmdname{ini} functionality has been +available through the command-line option \optname{-ini} for years now. + +\item \textsf{i386-openbsd} platform support was removed. Since the +\pkgname{tetex} package in the \acro{BSD} Ports system is available, and +\acro{GNU/}Linux and Free\acro{BSD} binaries were available, it seemed +volunteer time could be better spent elsewhere. + +\item On \textsf{sparc-solaris} (at least), you may have to set the +\envname{LD\_LIBRARY\_PATH} environment variable to run the +\pkgname{t1utils} programs. This is because they are compiled with C++, +and there is no standard location for the runtime libraries. (This is +not new in 2004, but wasn't previously documented.) Similarly, on +\textsf{mips-irix}, the \acro{MIPS}pro 7.4 runtimes are required. + +\end{itemize} + + +\subsection{Future} + +\emph{\TL{} is not perfect!} (And never will be.) We intend to +continue to release new versions yearly, and would like to provide more +help material, more utilities, more installation programs, and (of +course) an ever-improved and checked tree of macros and fonts. This work +is all done by hard-pressed volunteers in their limited spare time, and +a great deal remains to be done. If you can help, don't hesitate to put +your name forward! + +Please send corrections, suggestions, and offers of help to:\hfill\null +\begin{quote} +Sebastian Rahtz \ / \ 7 Stratfield Road \ / \ Oxford OX2 7BG \ / \ UK \\ +\email{tex-live@tug.org} \\ +\url{http://tug.org/texlive} +\end{quote} + +\medskip +\noindent \textsl{Happy \TeX ing!} + +\end{multicols} +\end{document} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/live-tl7.tex b/Master/texmf-doc/source/english/texlive-en/archive/live-tl7.tex new file mode 100644 index 00000000000..1e8ee77312b --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/live-tl7.tex @@ -0,0 +1,3554 @@ +% +% change history (started May 13th 2002) +% 2002/05/13: added tex-langafrican to list of collections +% 2002/05/14: corrected example files, other small errors noted by Volker +% 2002/05/18: win32 updates, by Fabrice +% 2002/05/25: remove mention of sizes, and bsr-interpolated; add Gutenberg +\documentclass{article} +\advance\textwidth by 1in +\advance\oddsidemargin by -1in +\advance\evensidemargin by -1in +\newsavebox{\warnbox} +\def\Q#1{\par\vskip6pt\leftline{#1}\par} +\setcounter{tocdepth}{2} +\pretolerance=1000 +\tolerance=1500 +\hbadness=3000 +\vbadness=3000 +\hyphenpenalty=400 +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\setcounter{topnumber}{5} +\setcounter{totalnumber}{5} +\def\eTeX{$\varepsilon$-\TeX} +\def\Dash{---} +\def\hyph{-} +\def\OMEGA{$\Omega$} +\def\bs{{\protect\normalfont\ttfamily\char'134}} +\DeclareRobustCommand{\cs}[1]{{\normalfont\ttfamily\char`\\#1}} +\def\La{La} +\let\textsl\textit +\let\sl\it +\let\slfamily\itfamily +\def\ttdefault{cmtt} +\usepackage{tex-live} +\begin{document} +%\makeatletter\@ifundefined{HRestore}{}{\HRestore\noalign}\makeatother +\author{Sebastian Rahtz\\ +\texttt{sebastian.rahtz@oucs.ox.ac.uk} +%Michel Goossens\\ +%\texttt{m.goossens@cern.ch} +} +\title{The \protect\TeX\ Live Guide, 7th edition} +\date{May 2002} +\maketitle +\begin{multicols}{2} +\tableofcontents +\listoftables +\end{multicols} +\section{Introduction}\label{sec:intro} +This documentation describes the + main features of the \TeXLive{} 7 \CD{}\Dash a \TeX{}/\LaTeX{} + distribution for Unix, Linux, MacOSX, and Windows32 systems that includes + \TeX{}, \LaTeXe{}, \MF, \MP, \cmdname{Makeindex}, and \BibTeX{}; and + a wide-ranging set of macros, fonts and documentation conforming to + the \emph{\TeX{} Directory Standard} (\TDS{})\Dash which can be used + with nearly every \TeX{} setup. + + This \TeX{} package uses the \Webc{} version 7.3.7 + implementation of the programs, which tries to make \TeX{}ing as + easy as possible, and takes full advantage of the efficient and + highly customizable \KPS{} library from Karl Berry and Olaf Weber. + It can be run either directly from the \CD{} or installed on a hard + disk. + +Most of the runnable systems on the \CD{} include a large set of +drivers and support programs for \TeX, including \cmdname{dvips} +(PostScript driver), \cmdname{dvipdfm} (dvi to PDF), +\cmdname{xdvi} (X Windows previewer), +\cmdname{dvilj} (HP LaserJet driver), \cmdname{lacheck} (\LaTeX{} +syntax checker), \cmdname{tex4ht} (\TeX{} to HTML converter), +\cmdname{dviconcat} and \cmdname{dviselect}, \cmdname{dv2dt} and + \cmdname{dt2dv} (\texttt{dvi} to ASCII and vice versa), and Angus + Duggan's PostScript utilities. + +\subsection{Extensions to \TeX} + +The \TeXLive{} runnable systems contain three extended versions of +standard \TeX: +\begin{enumerate} +\item \eTeX, which adds a small but powerful set of new primitives, + and the \TeXXeT{} extensions for left to right typesetting; in + default mode, \eTeX{} is 100\% compatible with ordinary \TeX. See + \OnCD{texmf/doc/etex/base/etex_man.pdf} on the \CD{} for details. +\item pdf\TeX, which can optionally write Acrobat PDF format instead + of \dvi{}. You will find the user manual in + \OnCD{texmf/doc/pdftex/pdftex-l.pdf}. The + file \OnCD{texmf/doc/pdftex/samplepdf/samplepdf.tex} shows how it is + used. The \LaTeX{} \pkgname{hyperref} package has an option + `\optname{pdftex}', which turns on all the program features. +\item \OMEGA{} (Omega), which works internally with 16-bit characters, + using Unicode; this allows it to directly work with almost all the + world's scripts simultaneously. It also supports dynamically loaded + `\OMEGA{} Translation Processes' (\acro{OTP}s), which allow the user + to define complex transformations to be performed on arbitrary + streams of input. See \OnCD{texmf/doc/omega/base/doc-1.8.tex} for some + (not necessarily up to date) documentation. +\end{enumerate} +\eTeX{} (version 2.1) is stable, although subsequent releases will add +new functionality. pdf\TeX{} (version 1.00b) is also stable, +but is still being improved. +\OMEGA{} (version 1.23) is under development; the version +on this \CD{} is that current as of May 2002. + + +\section[Structure and contents of the CD-ROM]{Structure + and contents of the \protect\CD{}} +The important \CD{} top-level directories are listed below. +\begin{description} +\item[bin] The \TeX{} family programs, arranged in separate platform + directories. +\item[Books] Examples related to some books about \TeX. +\item[FAQ] Frequently Asked Questions, in English, French, and German. +\item[MacOSX] Support programs for MacOSX users +\item[info] Documentation in \acro{GNU} `info' format for the \TeX{} + system. +\item[man] Documentation in the form of Unix man pages for the \TeX{} + system. +\item[setupw32] directory contains material for installation and use + under Windows (see section \ref{sec:wintex} on p.~\pageref{sec:wintex}). +\item[source] The source of all programs, including the main \Webc{} + \TeX{} and \MF{} distributions. These are stored in a bzip2-compressed + tar archive. +\item[support] Various bits of \TeX-related software which are + \emph{not} installed by default, support programs, and a complete + distribution of \cmdname{Ghostscript} version 7.05. + You can find here some other programs (editors, \TeX\ shells), which + are usually absent from Windows installations, dedicated for beginners. + They can be installed with the \texttt{TeXSetup.exe} Windows installation + program. +\item[texmf] The main support tree of macros, fonts and documentation; +\item[usergrps] Material about \TeX\ User Groups. +\end{description} + +There are also two installation scripts for Unix systems, +\texttt{install-cd.sh} and \texttt{install-pkg.sh}; we discuss +them on in section \ref{sec:install} on p.~\pageref{sec:install}. + +\subsection[Packages and collections]{Packages and collections} +\label{packages} +The \TeXLive{} \texttt{texmf} tree consists of various `collections', +each of which refers to a set of `packages', of which there are over 700 +on the \CD{}. Normal installation allows the +user to copy all of a collection to a local hard disk from the \CD{}, but +it is also possible to install just one package of a collection. + +The collections add functionality to a \TeX\ system. One of them, named +`tex-basic', is necessary for almost all \TeX\ tasks, +and two others, called `tex-latex' and `tex-pdftex' are highly +recommended for most users. All others are optional. +The collections (defined by XML files in \texttt{texmf/tpm/collections}) +and their short descriptions are listed below. + +\begin{description} + \item[tex-basic] + These files are regarded as basic for any \TeX\ system, covering +plain \TeX\ macros, Computer Modern fonts, and configuration for common +drivers. + \item[tex-bibtexextra] + Additional, extensive libraries of BibTeX styles and bibliographies. + \item[tex-chemistry] + Essential chemistry + \item[tex-context] + Hans Hagen's powerful macro package, ConText + \item[tex-documentation] + Assorted useful documentation and guides + \item[tex-etex] + Support files for an extended \TeX\ + \item[tex-extrabin] + Various useful, but non-essential, support programs. Includes + programs and macros for texinfo system; programs for dvi file + manipulation, etc. + \item[tex-fontbin] + Programs for conversion between font formats, testing fonts + (virtual fonts stuff, .gf and .pk manipulation, + mft, fontinst, etc.) + \item[tex-fontsextra] + All sorts of extra fonts + \item[tex-formatsextra] + A collection of \TeX\ `formats', ie large-scale +macro packages designed to be dumped into .fmt file + \item[tex-games] + Setups for typesetting various board games, including chess + \item[tex-genericextra] + This is a mixed bag of macro packages and fonts which do not seem +to belong elsewhere + \item[tex-htmlxml] + Packages to convert \LaTeX\ to XML/HTML, and typeset XML/SGML + \item[tex-langafrican] + Support for some African scripts + \item[tex-langarmenian] + Essential armenian + \item[tex-langcjk] +Essential CJK (Chinese, Japanese, Korean) macros and fonts + \item[tex-langcroatian] + Essential croatian + \item[tex-langcyrillic] + Fonts and macro packages to typeset Cyrillic texts. + \item[tex-langczechslovak] + Pick this if you want Czech/Slovak fonts and other packages + \item[tex-langdanish] + Essential Danish + \item[tex-langdutch] + Essential Dutch + \item[tex-langfinnish] + Essential Finnish + \item[tex-langfrench] + Essential French + \item[tex-langgerman] + Essential German + \item[tex-langgreek] + Essential Greek + \item[tex-langhungarian] + Essential Hungarian + \item[tex-langindic] + Essential Indic + \item[tex-langitalian] + Essential Italian + \item[tex-langlatin] + Essential Latin + \item[tex-langmanju] + Essential Manju + \item[tex-langmongolian] + Essential mongolian + \item[tex-langnorwegian] + Essential Norwegian + \item[tex-langother] + Other languages + \item[tex-langpolish] + Pick this if you want Polish fonts and other packages + \item[tex-langportuguese] + Essential Portuguese + \item[tex-langspanish] + Essential Spanish + \item[tex-langswedish] + Essential Swedish + \item[tex-langtibetan] + Fonts and support for typesetting Tibetan + \item[tex-langukenglish] + Essential UK English + \item[tex-langvietnamese] + Essential Vietnamese + \item[tex-latex] + These packages are either mandated by the core \LaTeX\ team, +or very commonly recommended + \item[tex-latexextra] + A large collection of add-on packages for \LaTeX\ + \item[tex-mathextra] + Extra math + \item[tex-metapost] + MetaPost (and MetaFont) drawing packages + \item[tex-music] + Music typesetting packages + \item[tex-omega] + Omega, a 16-bit extended \TeX\ by John Plaice and Yannis Haralambous + \item[tex-pdftex] + Support files for Han The Thanh's variant of \TeX\ which can +generate PDF output + \item[tex-pictures] + Essential graphics + \item[tex-plainextra] + Plain \TeX\ extra macros + \item[tex-psfonts] + Essential psfonts + \item[tex-psutils] + Utilities to manipulate PostScript files + \item[tex-publishers] + Essential publishers + \item[tex-t1utils] + Utilities to manipulate Type1 fonts + \item[tex-texbooks] + Examples and other material from various books about TeX/LaTeX. + \item[tex-theses] + Macro packages from various Universities for their thesis styles + \item[tex-ttfutils] + Utilities to manipulate TrueType fonts + \item[win32-support] + You can choose individual tools from this collection. + There are many \TeX\ oriented editors, graphics files + toolsets, etc. +\end{description} + +The directory \texttt{texmf/tpm/packages} contains lists +of all files in each package (used by the installation programs). + +\section{Installation and use under Unix} +\label{sec:install} +You can use the \TeXLive{} \CD{} in three ways: +\begin{enumerate} +\item You can mount the \CD{} on your file system, run +the \texttt{install-cd.sh} script, and select the option \verb|<R>| + (`do not install files, set up to run off CD-ROM'), + and run everything off the \CD; this takes very + little disk space, and gives you immediate access to everything on + the \CD; although the performance will not be optimal, it is + perfectly acceptable on, for instance, PCs running Linux. You could + also copy the entire CD contents to your hard disk and work in this way. +\item You can install all or part of the system to your local hard + disk; this is the best method for many people, if they have enough + disk space to spare (a minimum of about 100 megabytes, or 300 + megabytes for a recommended good-sized system). +\item You can install selected packages to work either with your + existing \TeX{} system or a \TeXLive{} system you installed earlier. +\end{enumerate} +Each of these methods is described in more detail in the following +sections. + +\ifSingleColumn +\begin{figure*} + \begin{center} + \leavevmode +\fi +\begin{warningbox} +\textbf{Warning: } This \CD{} is in ISO 9660 (High Sierra) format, +with Rock Ridge and Joliet extensions. In order to take full advantage +of the \CD{} on a Unix system, your system needs to be able to use +the Rock Ridge extensions. Please consult the documentation for your +\cmdname{mount} command to see if it is possible. If you have several +different machines on a local network, see if you can mount the +\CD{} on one which \emph{does} support Rock Ridge, and use this with +the others. + +\leavevmode\quad +Linux, FreeBSD, Sun, SGI and DEC Alpha systems should be able to use +the \CD{} with no problems. We would appreciate receiving detailed advice +from other system users who also succeed, for future versions of this +documentation. + +\leavevmode\quad +The discussion below about installation assumes you have been able to mount +the \CD{} with full Rock Ridge compatibility. +\end{warningbox} +\ifSingleColumn + \end{center} +\end{figure*} +\fi + +%\begin{addbymb} +\subsection[Pre-installation procedure for MacOSX users] +{Pre-installation procedure for MacOSX users} +If you do not run MacOSX, you should skip this section. + +The \texttt{install-cd.sh} script is a \emph{sh} script (begins with +``\verb=#!/bin/sh=''), but +on MacOSX \cmdname{sh} is unable to run it because +\cmdname{sh} is +emulated. However, \cmdname{bash} will run it. Unfortunately (again) +\cmdname{bash} is not +installed by default on MacOSX\footnote{there are some suggestions this will +change in the future and even +that \cmdname{bash} will be used to emulate \cmdname{sh}, +in which case it might be true +that in future versions of MacOSX, the script will just work.}. +\begin{enumerate} +\item\label{test-bash} (optional) See if \path|bash| is already installed. +Launch \path|Terminal| +(\path|/Applications/utilities/Terminal|) and type in a window +\begin{alltt} +>> \Ucom{rehash; which bash} +\end{alltt} +the answer will be: +\begin{itemize} +\item the bash location (e.g. \path|/bin/bash| or \path|/usr/local/bin/bash|) if installed; +\item \texttt{bash: command not found} if not installed. +\end{itemize} + +If bash is already installed, skip to \ref{std-install} + +\item bash installation: +\begin{description} +\item[Mac friendly procedure] +Look in the \path|MacOSX| directory of the \CD{} +for an image disk named \path|bash.dmg|. mount that +file by double-clicking it. The disk image (volume) will be mounted. +Then start the \path|i-Installer| application on that volume. You will be asked +to authenticate, if you have never seen that before, you might not have +enough privileges to install. Just enter your own user name and +password. Hit install. \path|bash| will be installed on your system. +\item[Terminal procedure] +\begin{enumerate} +\item Log in as an admin user, at least a user with Admin privileges or +sudo user or as the System Administrator. +\item Open the \path|MacOSX| directory on the \CD{} and copy +\path|bash.tar.gz| +to your home directory (\texttt{\~{}/}) +\item Then launch \path|Terminal| and type or copy/paste the +line below in a Terminal window): +\begin{alltt} +>> \Ucom{(cd /usr/local/; sudo tar xvzf ~/bash.tar.gz)} +\end{alltt} +type a carriage-return: you will be asked for your password, and +\path|bash| will be +installed. +\item Quit \path|Terminal|. +\end{enumerate} +\end{description} +\item Now after using either install method, goto \ref{test-bash}: +you must obtain \path|/usr/local/bin/bash|\ldots{} (if not, try to log out and in). +\item\label{std-install} The installation procedure is the +same on MacOSX than on other UNIX platforms (as MacOSX is UNIX, +that's quite normal!). Nevertheless, you should read what follows: +\begin{itemize} + \item Note that in all commands of the following sections, +\cmdname{sh} must be replaced by \texttt{sudo bash}: +\begin{alltt} +>> \Ucom{sh install-cd.sh} +\end{alltt} +becomes +\begin{alltt} +>> \Ucom{sudo bash install-cd.sh} +\end{alltt} +etc. +\item On MacOSX, cd are auto-mounted: you \emph{don't} need to use +\texttt{mount}. The \CD{} will be mounted in the \path|/Volumes/| +directory: in order to make it the current directory, you just have to +type in \path|Terminal|: +\begin{alltt} +>> \Ucom{cd /Volumes/TeXLive-7...} +\end{alltt} +(complete this line with the real name of the \CD{}: using +``auto completion'' by pressing the \texttt{<tab>} +key will do it). +\end{itemize} +\end{enumerate} +%\end{addbymb} + +\subsection[Running \protect\TeXLive{} from the CD-ROM]{Running \protect\TeXLive{} from the \protect\CD} +The organisation of \Webc{} means that you can run programs simply by +adding the appropriate directory under \path|bin| on the \CD{} to +your \texttt{PATH}, and the support files will all be found with no further +ado. The following shows the list of available systems and the +corresponding directories. \textbf{Only x86 Linux, Mac OSX, and + Windows are available on the default CD. You need to ask +for the Unix CD if you need the other systems.} + +\begin{flushleft} +\begin{tabular}{@{}l>{\ttfamily}ll} +Compaq Alpha Linux & alpha-linux & CD2\\ +Compaq Alphaev5 OSF 4.0d & alphaev5-osf4.0d & CD2\\ +HP9000 HPUX 10.20 & hppa2.0-hpux10.20 & CD2\\ +IBM RS 6000 AIX 4.2.* & rs6000-aix4.2.1.0 & CD2\\ +Intel x86 Solaris 2.8 & i386-solaris2.8 & CD2\\ +Intel x86 with GNU/Linux & i386-linux & CD1\\ +Mac OSX & powerpc-darwin5.3 & CD1\\ +Sun Sparc Solaris 2.7 & sparc-solaris2.7 & CD2\\ +Windows 9X/ME/NT/2K/XP & win32 & CD1\\ +\end{tabular} +\end{flushleft} + +You may worry that when you subsequently make fonts or change +configuration, things will go wrong because you cannot change files on +the \CD{}. However, you can maintain a parallel, writeable, \TeX{} +tree on your hard disk; this is searched before the main tree on the +\CD{}. The default location is \path|texmf-var| on the CD +(which does not exist!), so you \emph{must} override this by setting +the \texttt{VARTEXMF} environment variable. + + +Thus \emph{sh} or \emph{bash} users on an Intel PC +running Linux can mount the \TeXLive{} \CD{} on +\file{/mnt/cdrom} by issuing the command: + +\begin{alltt} +>> \Ucom{mount -t iso9660 /dev/cdrom /mnt/cdrom} +\end{alltt} +Then they should change the current directory to \path|/mnt/cdrom|, run +\begin{alltt} +>> \Ucom{sh install-cd.sh} +\end{alltt} +and select the option \verb|<R>| (\emph{do not install files, set up to run +off CD-ROM}). After that, they should include the directory containing +the binaries for the given architecture into the search path +by updating the \texttt{PATH} variable. +\begin{verbatim} +PATH=/mnt/cdrom/bin/i386-linux:$PATH +export PATH +VARTEXMF=/usr/TeX/texmf-var +export VARTEXMF +\end{verbatim} +%\begin{addbymb} +\begin{description} + \item[MacOSX users] On MacOSX, the default shell is \texttt{tcsh}: +\begin{verbatim} +setenv PATH /Volumes/<cd-name>/bin/powerpc-darwin5.3:${PATH} +setenv VARTEXMF /usr/TeX/texmf-var +\end{verbatim} +\end{description} +%\end{addbymb} +For convenience, these statements can also be entered into the +\texttt{.profile} script. +%\begin{addbymb} +(for \texttt{tcsh} on MacOSX, +\verb=~/Library/init/tcsh/rc.mine=). +%\end{addbymb} + +If in doubt, ask your local system support guru to help you work out +how to mount your \CD{} or which directory to use for your system. + +Appropriate support files will be installed on your hard disk the +first time you need them. You can edit and change local configuration +files which are stored to the directory designated +by \texttt{\$VARTEXMF}. Any format file that is needed +will be generated and stored here. + +%------------------------------------------------ +\subsection{Installing \protect\TeXLive{} to a hard disk} +All of the necessary steps to install all or part of the distribution +on your hard disk are achieved by mounting the \CD{}, changing to the +top-level directory, and typing: +\begin{alltt} +>> \Ucom{sh install-cd.sh} +\end{alltt} +(On some Unix systems, you may need to use \cmdname{sh5} or +\cmdname{bash}.) This script works by accessing lists of collections +and packages from the \CD{}, and trying to guess what sort of computer +system you are on. It should start by displaying the following: +\verbatiminput{../examples/ex1.tex} +It will then show the main control screen +(Figure~\ref{ins1}), which lets you change five +things: +\begin{enumerate} +\item the type of system you are on, or want to install for; +\item the \emph{installation scheme} you want to use (eg full, + recommended, basic etc) +\item the collections you want to change from +the installation scheme (they are organised into two sets: +\emph{standard collections} and \emph{language collections}); +\item the location on your hard disk to put the files; +\item some runtime behaviour features. +\end{enumerate} + +\begin{figure*} +\begin{center} +\ifnum\Status=2 +\boxedverbatiminput{../examples/ex2.tex} +\else +\begin{minipage}{0.8\textwidth} +\boxedverbatiminput{../examples/ex2.tex} +\end{minipage} +\fi +\caption{Main control screen}\label{ins1} +\end{center} +\end{figure*} + +You choose options by typing a letter or number and pressing `return'. +In the example, a Linux GNU/Linux system has been detected, the +default set of collections will be installed, and +the default installation directory is \path|/usr/TeX|; note +that the disk space required for the current installation +configuration is also displayed. If you make a suggested setup, you +need about 60 megabytes of disk free; however, the basic setup will +only take about 30 megabytes, and you can enhance it with selected +packages as you need them. + +%\begin{addbymb} +\begin{description} + \item[MacOSX users] Most frontends (\emph{TeXShop}, + \emph{ITeXMac}\ldots) use the \teTeX{} default location + which is \path|/usr/local/teTeX|, so, Mac users could find interest + in installing \TeXLive{} in \path|/usr/local/teTeX| +rather than in \path|/usr/TeX|. +\end{description} +%\end{addbymb} + +Under the directory you choose for installation, the installation +script will put the binaries in a subdirectory of \path|bin|, and the +support tree in \path|texmf|. An additional tree \path|texmf-var| +will contain copies of configuration files (except the main +\path|texmf.cnf|), which are to be modified by \path|texconfig| program. +This tree will also store generated format files for \TeX, \MF, etc. + +\begin{figure*} +\begin{center} +\ifnum\Status=2 +\boxedverbatiminput{../examples/ex3.tex} +\else +\begin{minipage}{.80\linewidth} +\footnotesize +\boxedverbatiminput{../examples/ex3.tex} +\end{minipage} +\fi +\caption{Selecting standard collections}\label{ins2} +\end{center} +\end{figure*} + +\begin{figure*} +\begin{center} +\ifnum\Status=2 +\boxedverbatiminput{../examples/ex4.tex} +\else +\begin{minipage}{.80\linewidth} +\footnotesize +\boxedverbatiminput{../examples/ex4.tex} +\end{minipage} +\fi +\caption{Selecting language collections}\label{ins3} +\end{center} +\end{figure*} + +When you choose |<C>| for \emph{standard collections}, you will see +the display of available collections (Figure \ref{ins2}). Each +collection --- TeX macro files, Metafont font families, and so on --- +consists of several packages. You can toggle their inclusion on or +off by pressing the key. Note that the selection letter keys are case +sensitive. + +When you choose |<L>| for \emph{language collections}, you will see +the display of available language support collections (Figure +\ref{ins3}). Each collection consists of several packages, which +provide features like hyphenation files and fonts. + +The |<O>| for \emph{options} item lets you decide whether to make new fonts +be created in another location (if you want the main package mounted +read-only for most users), and whether to make symbolic links for the +binaries, \cmdname{man} and \acro{GNU} \cmdname{info} pages in the `standard' +locations; you'll need `root' permissions for tasks to do this, of course. + +When you are finished, return to the main screen, and ask the +installation to start. It will take each of the collections and +systems that you requested, consult the list of files on the \CD{}, +and build a master list of files to transfer. These will then be +copied to your hard disk. If you installed a system, +an initialization sequence is now run +(creating format files, etc.). When this has finished, all you need do +is add the correct subdirectory of \texttt{bin} in the \TeX{} +installation to your path, and start using \TeX. If you want, you can +move the binaries up one level, e.g.\ from +\path|/usr/local/bin/alpha-osf3.2| +to \path|/usr/local/bin|; if you do this, however, you must +edit \path|texmf/web2c/texmf.cnf| (see Appendix~\ref{app:texmf.cnf}) +and change the line near the start which reads +\begin{verbatim} + TEXMFMAIN = $SELFAUTOPARENT +\end{verbatim} +to +\begin{verbatim} + TEXMFMAIN = $SELFAUTODIR +\end{verbatim} + +If you move the whole installation to another directory tree entirely, you +need to edit \envname{TEXMFMAIN} to specify the support tree explicitly, and +set \envname{TEXMFCNF} in your environment to \path|$TEXMFMAIN/texmf/web2c|. + +%------------------------------------------------ + +\subsection{Installing individual packages from \protect\TeXLive{} to a hard + disk} You may want to use the \TeXLive{} \CD{} to either update an +existing setup, or add features to an earlier installation from the +\CD{}. The main installation program is intended for the first time +only, and subsequently you should use the \texttt{install-pkg.sh} +script on the \CD{}. Run this by mounting the \CD{}, changing to +the mounted directory, and typing + +\begin{alltt} +>> \Ucom{sh install-pkg.sh \emph{options}} +\end{alltt} + + +The script supports nine options; the first four let you set the +individual package you want to install, the whole collection (i.e., +\texttt{tex-mathextra}), the name of the mounted \CD{} directory, and +the name of the directory containing the list files (normally these +latter two will be set automatically): + +\begin{tabular}{ll} +\texttt{-{}-package=}\emph{name} & \\ +\texttt{-{}-collection=}\emph{name} & \\ +\texttt{-{}-cddir=}\emph{name} & \\ +\texttt{-{}-listdir=}\emph{name} & \\ +\end{tabular} + +What actually happens is controlled by four more switches; the first +two allow you to exclude documentation or source files from the +installation, the third stops the default action of running +\texttt{mktexlsr} on completion to rebuild the file database, and +the last does nothing but list the files that would be installed: + +\begin{tabular}{ll} +\texttt{-{}-nodoc} & \\ +\texttt{-{}-nosrc} & \\ +\texttt{-{}-nohash} & \\ +\texttt{-{}-listonly} & \\ +\end{tabular} + +Finally, you can specify that, instead of installing the files, the script +should make a \cmdname{tar} archive in a specified location: + +\begin{tabular}{ll} +\texttt{-{}-archive=}\emph{name} & \\ +\end{tabular} + +Thus, if we simply wanted to see the files that make up the package +\pkgname{fancyhdr} before we installed it, our command and output would be +as follows: + +\begin{alltt} +\ifSingleColumn>> \Ucom{sh install-pkg.sh --package=fancyhdr --listonly} +\else>> \Ucom{sh install-pkg.sh -{}-package=fancyhdr \bs} +>> \Ucom{-{}-listonly} +\fi{} +texmf/doc/latex/fancyhdr/fancyhdr.dvi +texmf/doc/latex/fancyhdr/fancyhdr.tex +texmf/lists/fancyhdr +texmf/source/latex/fancyhdr/README +texmf/source/latex/fancyhdr/fancyheadings.new +texmf/tex/latex/fancyhdr/extramarks.sty +texmf/tex/latex/fancyhdr/fancyhdr.sty +texmf/tex/latex/fancyhdr/fixmarks.sty +\end{alltt} +Other examples of usage are: +\begin{itemize} +\item Install the \LaTeX{} package \texttt{natbib}: +\begin{alltt} +>> \Ucom{sh install-pkg.sh --package=natbib} +\end{alltt} +\item Install the \LaTeX{} package \texttt{alg} with no source files and no +documentation: +\begin{alltt} +\ifSingleColumn>> \Ucom{sh install-pkg.sh --package=alg --nosrc --nodoc} +\else>> \Ucom{sh install-pkg.sh -{}-package=alg \bs} +>> \Ucom{-{}-nosrc -{}-nodoc} +\fi\end{alltt} +\item Install all the packages available in the collection containing additional +Plain \TeX\ macros: +\begin{alltt} +>> \Ucom{sh install-pkg.sh --collection=tex-plainextra} +\end{alltt} +\item Place all files which are needed for PSTricks +in a \cmdname{tar} file in \path|/tmp|: +\begin{alltt} +\ifSingleColumn>> \Ucom{sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar} +\else +>> \Ucom{sh install-pkg.sh -{}-package=pstricks \bs} +>> \Ucom{-{}-archive=/tmp/pstricks.tar} +\fi\end{alltt} +\end{itemize} + +\subsection{The texconfig program} +\label{ssec:tex} + +After the installation program has copied all files to their final +locations, you can use a program called \cmdname{texconfig} that +allows you to configure the system to fit your local needs. This can +be called at any other time to change your setup, with a full-screen +(which requires the \cmdname{dialog} program, included as part of the +binary packages) or command-line interface. +It should be used for all maintenance, such as changes of installed +printers, or rebuilding the file database. Both modes have help text +to guide you through the facilities. + +\section{Installation and use under Windows} +\label{sec:wintex} +This section only applies to systems running Windows 9x, \acro{ME}, +\acro{NT}, \acro{2K} or \acro{XP}. + +It is also necessary to have your Windows set up so that it uses the +Microsoft Joliet extensions for reading \CD s; simply look at the +\CD{} in Explorer and see whether it shows long, mixed-case, file +names. If it does not, you cannot use the ready-to-run system on the +\CD. + +This Win32 \TeX{} systems includes a \texttt{dvi} previewer, +\textsf{Windvi}, which is similar in usage to the established Unix +\textsf{xdvi}. The documentation can be found in +\OnCD{texmf/doc/html/windvi/windvi.html}. + +\subsection[The TeXLive.exe program]{The \texttt{TeXLive.exe} program} + +\begin{figure*} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.7\textwidth]{../pictures/Welcome-to-TeXLive} + \else + \ifnum \Status=2 +\includegraphics[bb=20 20 575 432]{../pictures/Welcome-to-TeXLive.gif} + \else + \includegraphics[width=.7\textwidth]{../pictures/Welcome-to-TeXLive} + \fi + \fi + \end{center} + \caption{``Welcome to \TeXLive'' window}\label{graph:welcome} +\end{figure*} + +If your computer is configured to let the \CD{} autostart, then a +dialog box with a menu bar will popup on the screen, and you will have several choices +from there: +\begin{itemize} +\item Install \TeX{} on your hard disk, +\item Install TeX-oriented editors on your hard disk, +\item Install support packages on your hard disk (Ghostscript, NetPBM, + \ldots) +\item Do some maintenance on you \TeX{} system, +\item Remove the \TeX{} system, +\item Use \TeX{} off the \CD{}, +\item Cleanup the temporary files created on your hard disk when using + \TeX{} off the \CD{}, +\item Update some of the DLLs on your system, +\item Browse some documentation: \TeXLive{} documentation, TUG web + pages, \fpTeX web pages, +\item Run the \cmdname{TeXdocTK} application to find specific documentation. +\end{itemize} + +If your \CD{} does not autostart, you can explicitly run the program +by double clicking on \path|bin/win32/TeXLive.exe| on the \CD{} from +the explorer window. + +\subsection[Running \protect\TeXLive{} from the CD-ROM]{Running from +the \protect\CD{}} +You can run all the \TeX{} programs directly off the \CD, and have +access to all the macros and fonts immediately, at the price of a +slower performance than if you install on the hard disk. +To work effectively, one needs to modify +environment variables and to create some small auxiliary directories on a +hard disk. These directories will contain necessary configuration files +allowing the user to modify programs settings and to generate a necessary +format file. Moreover, automatically generated font files will be stored +there too. + +Should you want to run \TeX{} this way, you will have to follow these +steps: +\begin{enumerate} +\item from the menu, chose \verb|Explore CD-Rom|, then + \verb|Select a text editor|, a dialog box will open to select some \path|.exe| + program. + + This program needs to be a \TeX{} oriented editor. It must be able + to run the \TeX{} compiler, previewer and any other needed tool. If + you don't have one already installed on your system, you can install + one from the \CD{}, details section~{\ref{sec:texlive-install}}. + + \emph{There is no way we can guess if the program you will + select is actually a text editor, so be careful}. + Here is a list of frequently used \TeX{} editors: +\begin{center} + \begin{tabular}[ht]{ll} + GNU Emacs & \path|c:\Program Files\NTEmacs\bin\runemacs.exe| \\ + XEmacs & \path|c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\xemacs.exe| \\ + WinShell & \path|c:\Program Files\WinShell\WinShell.exe| \\ + WinEdt & \path|c:\Program Files\WinEdt Team\WinEdt\WinEdt.exe|\\ + TeXnicCenter & \path|c:\Program Files\TeXnicCenter\TEXCNTR.exe| + \end{tabular} +\end{center} + The program + selected will be memorized as the editor to use for future runs. + +\item from the menu, chose \verb|Explore CD-Rom|, then + \verb|Run TeX off CD-Rom|. The environment will be modified, a small + temporary directory created and some configuration files copied + there. Then, the selected editor selected will be launched, and you + will be able to type in some text, let \TeX{} typeset it and the + view it or print it. + + If Ghostscript is not detected on your machine, you will be warned + that rendering your DVI files might fail. You can install it from + the \path|Install|, \path|Support| menu item. See + section~\ref{sec:texlive-install} for details. + +\item you can select a different text editor any time you want. + +\item if you chose \verb|Cleanup CD-Rom setup|, everything \TeX{} + needed will be removed, comprised the selection of your text + editor, but not the extra packages you may have downloaded and + installed. If you installed \cmdname{WinShell} or \cmdname{NTEmacs}, +they won't be removed. +\end{enumerate} + +The editor is run inside a modified environment. A temporary TDS +compliant texmf tree is build in the temporary area of your computer. +It is needed to store files that may be build on the fly like pk font +files or format files. Configuration files are copied from the \CD{} +to this texmf tree, so that you can edit them if needed. The \path|ls-R| +database is computed for this texmf tree. +Then the \texttt{PATH} and \texttt{TEXMFCNF} environment +variables are set locally, and the editor is run in +this local environment. From within your editor\footnote{Actually, you can + state any other program than a text editor, and select your command + processor for example. You will then get a console with the right + settings to use \TeX{} from the \CD{}.}, you have access to a full +\TeXLive{} environment, all files referenced on the \CD{}. + + +\smallskip {\small\noindent \textbf{[For advanced users:]} You can + also use the small batch file \path|mkloctex.bat| to be called in a + directory \path|setupw32| of the \CD. From the Start menu select + `Run', then browse CD drive and select \path|mkloctex.bat|. Before + starting it, you should add two parameters separated by a space: the + letter of your CD drive and the letter of the hard disk where you + want to install the \TeX\ directory. The whole line should read, + e.g., \verb+d:\setupw32\mkloctex.bat d c+. When installation is + complete, please read carefully the information on screen. If you + are running Windows 9x/ME, then you will have to restart Windows. } + +\subsection{Installing editors or support packages} +\label{sec:texlive-install} + +You can already use the \path|TeXSetup.exe| program to install a +single, not \TeX{} dependent package. This might be either an editor +like \cmdname{WinShell} or \cmdname{NTEmacs}, +or also a support package like \cmdname{NetPBM} +(graphics formats conversion) or \cmdname{Ghostscript}. + +Some of the packages are not free, or not with the same meaning as for +the rest of the \CD{}. These packages have been made available through +the Internet. You need to enable an Internet connection in order to +install them. Chosing the \path|Enable Internet access| subitem will +search your system for an active Internet connection, or start one if +possible. \emph{If your computer is not connected to the Internet, + then the timeout might be long, 30s or more}. So try to enable it +only if you know you have a connection. + +Only a few packages are available from the \CD{}, but the most +important of them: \cmdname{NTEmacs} and \cmdname{WinShell} for the +editors, \cmdname{Ghostscript} and \cmdname{NetPBM} for the other +support packages. \cmdname{NetPBM} is needed for running \TeX{}4ht. + +The downloadable packages are sometimes huge: \cmdname{Perl} is 10Mb, +\cmdname{XEmacs} is 50Mb, so be warned that it can take a lot of time +to install such things. \path|TeXSetup.exe| does not yet provide an +estimation of the time needed to complete the download. + +When installing these packages, \path|TeXSetup| is working in +unattended mode. However, the programs that have their own installer +like WinEdt or Ghostscript for example will require human interaction. + +Those packages who have no specific installer will be unpacked and configured +for your system. You will be required to select some directory where +they will be installed. The directory to select should be the root +directory of the whole installation. Assuming you want to install +NTEmacs and NetPBM, the archive files already contain the +\path|NTEmacs\| and \path|NetPBM\| part, so the directory you have to +select is something like \path|c:\Local| or \path|c:\Program Files|. + +\subsection{Installing to your hard disk} + +Installation is started by letting the CD autostart, and +selecting the item \verb|Install| from the menu, then the subitem +\verb|TeXLive|. This will invoke the \path|TeXSetup.exe|. You can also find +it in the \path|bin/win32| directory and run it. \path|TeXSetup.exe| +is a Windows wizard and it will display several pages while running. + +\begin{description} +\item[Welcome Page] + You can choose a \emph{quick} installation from + there, in this case, the installation will run without any human + assistance from beginning to end, with all the default settings + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). However, if you chose to install any support program that has its + own installer like WinEdt or Ghostscript, your intervention might be required. + If you have enough privileges (administrator or power user rights) + under a Windows version where it is applicable, then you can decide + to install the \TeXLive{} for all users or for yourself only by + checking the appropriate box. + + \begin{figure*}[!htb] + The \cmdname{TeXSetup} Wizard\hfill + Source directories for the \TeXLive{} files + + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/setup-wizard.jpg}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/source-for-texlive.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/setup-wizard.gif} +\includegraphics[bb=0 0 506 403]{../pictures/source-for-texlive.gif} + \else + \includegraphics[width=.48\textwidth]{../pictures/setup-wizard}% + \hfill% + \includegraphics[width=.48\textwidth]{../pictures/source-for-texlive} + \fi + \fi + \caption{The \TeXLive{} setup wizard}\label{graph:setup-src} + \end{center} +\end{figure*} +\item[Source Page] + This page is a bit complex. It will allow you to select two source + directories for your \TeXLive{} system + (Figure~\ref{graph:setup-src}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). You will need a \emph{local + source directory} and possibly a \emph{remote source directory}. + + Why do we need both these directories? The very files of the + \TeXLive{} system are on the \CD{}, but some other packages useful + under a Win32 system are not, either because of space lacking or + because their license was not compatible with the \TeXLive{}'s one. + You need to enable Internet downloading if you want to install these + support packages. + + However, don't panic: the default parameters of the setup will allow + you to install a full system using the \CD{} only. Simply, you won't + have \file{WinEdt} for example, but you will be able to install it + later. + + So you can take your files from: + \begin{itemize} + \item the \CD{} or any similar flat tree of files, available through + some standard directory (this means the \CD{} can be mounted on + some remote machine and be made available through network + sharing), + \item a set of \file{.zip} files (this is the case when you are + installing the + \fpTeX{} distribution), + \item the Internet, in this case, the program takes care of + downloading the \file{.zip} files it needs for you. + \end{itemize} + This option is available only if you enable Internet file + downloading in the right part of the page. You also need to + configure this Internet access by selecting to connect either using + Internet Explorer~5 \file{wininet.dll}, or using a direct connection (\texttt{ftp}, + \texttt{http}). +% or using a proxy server. +% Last, you can be assisted in defining the \emph{local source +% directory} and \emph{remote source directory} which will be used +% to copy the files onto your hard disk. The \texttt{browse} buttons +% allow to select a directory for the former, and an url among a list +% of mirrors for the latter. +\item[Root Page] + On this page, you will tell where you want the files to be + installed (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Only the root directory really matters, the other ones + are set according to the root one. You may want to make + \path|$TEXMFEXTRA| point to some TDS compliant directory with other + \TeX{} files or assign a different value to + \path|$HOMETEXMF|, which is set by default to whatever Windows think + is your `HOME' location. +\begin{figure*}[!htb] + Root and directories\hfill% + Scheme selection + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.46\textwidth]{../pictures/root-of-installation.jpg}\hfill% + \includegraphics[width=.46\textwidth]{../pictures/scheme-selection.jpg} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/root-of-installation.gif} +\includegraphics[bb=0 0 506 403]{../pictures/scheme-selection.gif} + \else + \includegraphics[width=.46\textwidth]{../pictures/root-of-installation}% + \hfill% + \includegraphics[width=.46\textwidth]{../pictures/scheme-selection} + \fi + \fi + \caption{\TeXLive-Setup: Root and directories / Schemes}\label{graph:root-schm} + \end{center} +\end{figure*} +\item[Get TPM Page] + This page does not require any manual intervention. The \file{.tpm} + files which describe collections and packages are retrieved + (possibly from the Internet), unzipped if needed and parsed. +\item[Schemes Page] + On this page, you will select the global scheme of your + installation (Figure~\ref{graph:root-schm}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). A scheme is a large set of files targeted at some kind + of usage. There are 3 generic schemes for basic, recommended and + full installation. The other ones are devoted to LUGs (what GUST or + GUTenberg propose for their members) or applications (XML and + \TeX{}). + When a scheme is selected, it is still possible to refine the + selection by checking the appropriate box. If doing so, you will be + presented the packages page to change your selection, else you will + jump to the review page. +\item[Packages Page] + Collections and packages are presented in a tree form + (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). The links + in the tree are dependency links. Collections \emph{depend on} + packages and maybe other collections, and it is the same for each + package. You can select any package or collection individually, but + your request will be granted only if the object is not requested by + another one which is selected. For example, you can't deselect + \texttt{tex-basic} without deselecting all the collections that + request it. + + The \texttt{win32-support} collection displayed on the picture is Win32 specific. It + holds a number of bonus packages (Figure~\ref{graph:win32-support}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ) which can be installed + automatically and individually: Ghostscript, the PostScript + interpreter, \TeX{} oriented editors, tools like Perl, + \LaTeX{}2HTML, etc. \emph{None of these packages are selected by + default}. Some of them have an Internet Explorer icon on their + right, this means that they are not on the \CD{} and they will be + available only if you previously enabled Internet + downloading. \emph{This collection cannot be selected entirely at + once: you need to select the packages individually}. This is to + avoid unwanted downloads of huge files. + + On this page, you also have the information about disk space + needed, for each object, and for the set of those who are selected, + and also the disk space available on the partition selected for the + installation. Last, you can choose to install or not the + documentation files and source files associated with each package. +\item[Review Page] + You will find there a summary of your choices + (Figure~\ref{graph:review}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). It is still time to + go back to change them. +\begin{figure*}[!htb] + Packages Page\hfill% + Win32 Support + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/package-selection}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/win32-support} + \else + \ifnum \Status=2 +\includegraphics[bb=0 0 506 403]{../pictures/package-selection.gif}\hfill% +\includegraphics[bb=0 0 506 403]{../pictures/win32-support.gif} + \else + \includegraphics[width=.48\textwidth]{../pictures/package-selection}% + \hfill% + \includegraphics[width=.48\textwidth]{../pictures/win32-support} + \fi + \fi + \end{center} + \caption{Packages Page / Win32 goodies} + \label{graph:win32-support} +\end{figure*} +\item[Files Copy Page] + The selected files are copied on your hard disk (Figure~\ref{graph:file-copy}, + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). All the files not + yet available on your local disk are first downloaded from the + remote source directory on the Internet. Then every package is + unpacked (if \path|.zip| files), or copied from the \CD{}. +\item[Configuration Page] Several packages need some configuration + step to make them usable (Figure~\ref{graph:configuration}, + \ifnum \Status = 1 + on the left% + \else\ifnum \Status=2 + at the top% + \else + on the left% + \fi\fi + ). Also the \TeXLive{} system needs some post-processing step + (format files generation, ls-R databases generation, environment + variables, etc.). All these operations are done there, some of them + can be lengthy. +\begin{figure*}[!htb] + \textbf{Review Page}\hfill% + \textbf{File Copy Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/file-copy} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{../pictures/review-settings.gif}\hfill% + \includegraphics[bb=0 0 506 403]{../pictures/file-copy.gif} + \else + \includegraphics[width=.48\textwidth]{../pictures/review-settings}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/file-copy}% + \fi + \fi + \end{center} + \caption{Review Page / File Copy Page} + \label{graph:review}\label{graph:file-copy} +\end{figure*} +\item[Final Page] The installation being over, you may want to display + the Windows specific documentation (HTML format) and / or the log + file of the setup process (Figure~\ref{graph:final} + \ifnum \Status = 1 + on the right% + \else\ifnum \Status=2 + at the bottom% + \else + on the right% + \fi\fi + ). If it is needed (Win9x/WinME), you will + be asked to reboot your computer. +\end{description} + +\begin{figure*}[!htb] + \textbf{Configuration Page}\hfill% + \textbf{Final Page} + \begin{center} + \ifnum \Status=1 + \includegraphics[width=.48\textwidth]{../pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/congratulations} + \else + \ifnum \Status=2 + \includegraphics[bb=0 0 506 403]{../pictures/configuration.gif}\hfill% + \includegraphics[bb=0 0 506 403]{../pictures/congratulations.gif} + \else + \includegraphics[width=.48\textwidth]{../pictures/configuration}\hfill% + \includegraphics[width=.48\textwidth]{../pictures/congratulations}% + \fi + \fi + \end{center} + \caption{Configuration Page / Final page} +\label{graph:configuration}\label{graph:final} +\end{figure*} + +Please be aware that the choice of cluster size on DOS disk +partitions can radically affect the size of your \TeX\ +installation. The support tree has hundreds of small files, and it is +not unusual for a complete installation to take up to 4 times the +amount of space used on the \CD. + + +\section[Maintenance and other aspects of the \protect\TeXLive{} +installation under Windows]{Maintenance and other aspects of the \protect\TeXLive{} +installation under Windows} + +\subsection{What's different under Win32 from the standard \Webc ?} +The Win32 version of \Webc{} has some specific features that need to +be noticed. + +\begin{description} +\item[\KPS{}] the hash-tables that \KPS{} builds are quite large for + the \TeXLive{}. In order to cut down the starting time of any + \KPS{}-enabled program, these hash-tables have been put in shared + memory. This way, when you chain the execution of several such + programs, like \path|tex| calling \path|mpost| calling \path|tex|, + the overhead when starting each of the programs but the first will + be reduced. This change is hidden to the user, except if you set the + debug flag of kpathsea to the \path|-1| value: you will then trace + access to the shared memory, which is not what you want (it is + accessed very often!). What is useful in a log trace of the shared + memory access is still to be defined, so the situation might evolve + in the future. +\item[\cmdname{kpsecheck}] this command provides some option that did + not fit well into \cmdname{kpsewhich}. It will allow you to list all + the files that occur multiple times across your texmf trees. This + could be handy, but most of the time you will also get unwanted + output (like dozens of \path|README| files)\footnote{It is noticeable + that all these files result in clashes inside the \KPS{}-hashing + mechanism, fortunately, \KPS{} never look for these files.}. For + this reason, you can combine the \path|-multiple-occurences| with 2 + other options for including or excluding any filename that match + some pattern (you can request for several patterns). + + The \cmdname{kpsecheck} command will also report the status of + shared memory: in use or not used. That might be useful to know + because if the status reported is ``in use'', that means one or + several processes are working, and the effect of any + \cmdname{mktexlsr} command will be delayed until the next time where + no \KPS{} linked process will be running. + + Last, this same command will report about the location it thinks + Ghostscript can be found. Under Win32, for many programs, it is + easier to use the Ghostscript dll, and find it by using the + Ghostscript registry key than to change the \path|PATH|, which has a + limited length anyway. +\item[\Webc{}] the engines have a few more options than the ones from regular + \Webc{}, and one option with a different behaviour: + \begin{itemize} + \item the \path|-fmt| option behaves differently. Previously and + with the regular \Webc{} distribution, this option has 2 different + meanings when you are in ``ini'' or ``vir'' mode. Under Win32, it + has the same meaning: preload the format file specified with the + argument. The meaning of building a format of such name in ``ini'' + mode is obtained by the new \path|-job-name| option. + \item \path|-job-name| option: allows to set the name of the file + resulting from the compilation process. In normal mode, it will + change the base name of all files produced (\path|.dvi|, + \path|.aux|, etc.), while in ``ini'' mode, it will set the name of + the format file written. + \item \path|-halt-on-error| stop the compilation at the first error. + \item \path|-job-time| set the job time to the same timestamp as the + file given in argument. + \item \path|-output-directory| allow to write all the output files in the + specified directory. + \item \path|-time-statistics| print statistics about the job run + time. It is to be noted that Win9x not being a true multitasking + operating system, it has no reliable timer for short periods, so + the value printed is an approximation. Under NT/2K/XP, the result + is quite accurate with user time and system time values allocated + for this run. For Unix + users: the \path|time| command is not usually available to Windows + users. + \end{itemize} +\end{description} + +\subsection{Adding packages to your installation} + +You will find an option in the \texttt{TeXLive} menu (or go to +\texttt{Start -> Programs -> TeXLive -> Add TeX package} menu) to run again +\file{TeXSetup.exe}, but in maintenance mode this time. The steps you +will go through are almost identical to the ones the first time you +run it. + +The only different step is about the packages selection page. In +maintenance mode, the list of installed packages is compared to the +list of packages available from your source directories. Packages that +are not installed will be displayed in green, out of date packages +will be displayed in red and up to date, installed packages are +displayed in black. + +This way, you can choose to add or upgrade components, either from +your \CD{} or from the +Internet, where you are likely to find some more recent version of +your packages. + +It is up to you to select which ones of the packages you want to +install. The rest of the process is similar to the first installation. + +If you want to add files that are not provided by the \TeXLive{} (or +\fpTeX{}) distribution, it is recommended to put them in the +\path|$TEXMFLOCAL| directory. This way, you will be safe against +upgrades of the \TeXLive{} software. + +The directory pointed to by \path|$TEXMFLOCAL| is initially empty. If +you want to add there the support file for Maple (symbolic computation +program) for example, you will have to put the style files in:\\ +\path|c:\Program Files\TeXLive\texmf-local\tex\latex\maple\|\\ +and the documentation files in:\\ +\path|c:\Program Files\TeXLive\texmf-local\doc\latex\maple\| + +Next, \textbf{do not forget to rebuild the ls-R databases files}, +either by using the right menu (Start -> Programs -> TeXLive + -> Maintenance), either by manually running the \file{mktexlsr} + command. + +\subsection[Removing \protect\TeXLive{} from your hard disk]{Removing + \protect\TeXLive{} from your hard disk} + +The uninstall procedure is available either from the +\file{TeXLive.exe} program, from the \path|TeXLive| menu or from the +control panel (Start menu -> Control Panel, Add/Remove Programs +option). This procedure will cleanup your hard disk of most of the +\TeXLive{} files. However, \TeX{} is a system that is creating files +and there is no mechanism to keep track of all of them. Moreover, +Win32 support packages have their own uninstall procedure, which you +will have to run separately (provided you want to get rid of them). Last, +the files you may have stored in \path|$TEXMFLOCAL| won't be +removed. So, even if the vast majority of files are automatically +removed by the uninstall procedure, you will have to do some manual +cleanup to actually remove all of them. + +\subsection{Running \texttt{TeXSetup.exe} from the command line} + +The \path|TeXSetup.exe| program has a number of other interesting +options. You can get the list by running: +\begin{verbatim} +c:\>TeXSetup --help +\end{verbatim} + +Here is the description: +\begin{description} +\item[\path|--automatic-reboot|] reboot without waiting user + confirmation once installation is over; +\item[\path|--dry-run|] do nothing, just log everything that will be + done without this option; +\item[\path|--quick|] use the recommended installation and default + directories, ask nothing up to rebooting; +\item[\path|--net-method (=ie5/direct)|] enable to download components with + restricted licenses from the Internet (either using direct + connection of Internet Explorer 5 DLLs): you need to have an available + network connection and some of the packages are huge; +\item[\path|--remote-source-directory <url>|] this is the base url for the remote packages; +\item[\path|--local-source-directory <dir>|] by default, \path|TeXSetup.exe| + will guess the root directory of the set of files you want it to act on, if you ever + upgrade \path|TeXSetup.exe|, you won't be able to copy the new version + onto your \CD{}, so you will need to use this option to specify the + root of the \CD{}; +\item[\path|--installation-directory <dir>|] this is the root of your + installation, all files will be copied under this location. The + default value is \verb+c:\Program Files\TeXLive+; +\item[\path|--texmfmain-directory <dir>|] +\item[\path|--texmflocal-directory <dir>|] +\item[\path|--texmfextra-directory <dir>|] +\item[\path|--texmfhome-directory <dir>|] +\item[\path|--vartexmf-directory <dir>|] +\item[\path|--vartexfonts-directory <dir>|] these are the directories + used to configure the location of your files. They map directly to + the \path|texmf.cnf| variables. +\item[\path|--with-source-files(=yes/no)|] copy the source files + for \TeX{} packages, default value is no; +\item[\path|--with-documentation-files(=yes/no)|] copy documentation files for \TeX{} + packages. Default value is yes. Beware: this is only documentation about specific + packages, general documentation will be installed anyway; +\item[\path|--program-folder <folder>|] the name of the folder under + which you will find the menus; +\item[\path|--add-package <pkg>|] this is used to add or update a specific + package after a first regular installation; +\item[\path|--scheme <pkg>|] install the named scheme instead of the + default \path|texlive-recommended| scheme; +\item[\path|--maintenance|] mostly the same as \path|--add-package| + without specifying a package to add; +\item[\path|--uninstall|] this option will remove anything \TeX{} related coming from + the \CD{}, which means there can be files left if you added style + files or format files, and also that supplementary tools will not be + removed\footnote{This option is still a bit crude as of \today}; +\item[\path|--help|] this option opens up a box with the list of options. +\end{description} + +\subsection{Network installation} + +\KPS{} knows about UNC names, so you can use them to get your TEXMF +tree from the network. But there is better than this. +All the support files and configuration files, everything except the files in the +\path|bin/win32| are shareable with a \teTeX{} or Unix \TeXLive{} installation. That means +you can use Samba either to mount from an NT server to a Unix +workstation or the converse. Several strategies are possible: +\begin{itemize} +\item Put everything on the server. Just add each set of files for the os and +architecture you want to use in the \path|bin| directory. That means +for example \path|bin/win32| and \path|bin/i386-linux|. Next configure +your main variables. You can use UNC names to +point to the right directories under Win32. +\item Install a local copy for the binaries and format files. In this + case, assign \path|$TEXMFMAIN| to the main \path|texmf| tree that + will be accessed remotely. Set \path|$VARTEXMF| to be a local + directory which will hold local configuration files and on-the-fly + generated files. +\end{itemize} + +\subsection{Personal Configurations} + +\subsubsection{\cmdname{WinShell}} +\label{sec:winshell} + +Start this program from the Start menu or from the Desktop shortcut. +Go to \textbf{Options} \verb+->+ \textbf{Program Calls}. + +\begin{itemize}\itemsep 0pt +\item In the DVIWin tab, if the filename is \textbf{yap}, replace it +with \textbf{windvi.exe}. +\item In Ghostview tab, make sure it gives the correct path for +gsview32.exe:\\ +\hspace*{1em} \verb+C:\ghostgum\gsview\gsview32.exe+ (for 3.6, the +current version)\\ +or \\ +\hspace*{1em} \verb+C:\gstools\gsview\gsview32.exe+ (for the older +version) + +\end{itemize} + +Click \textbf{OK}. + +Note that the install process sets all files with the \texttt{.tex} +extension to open with \cmdname{WinShell}. Unless you plan to use another editor +(such as WinEdt or Emacs), this is appropriate. + +Unfortunately, \cmdname{WinShell} does not have a spell-checking feature. +However, if you have installed the \path|tex-extrabin| collection, +your installation includes \textbf{Ispell} (a spell checking program +found on most Unix systems). The executable is in your PATH so +\verb+ispell.exe+ will be found if you invoke it from a DOS window. +If you installed documentation, look +at\\ +\verb+C:\Program Files\TeXLive\texmf\doc\html\manpages\ispell.html+\\ +for information on Ispell. (Otherwise, you can find +\verb+ispell.html+ on the CD.) If you rely on spell checking, you may +want to add an Ispell icon to \cmdname{WinShell}. See +subsection~\ref{winshell:ispell} of this document for how to do that. + +For an excellent commercial (but inexpensive) spelling checker, +see \url{http://www.microspell.com}. + +%Appendix B also contains other information about using \cmdname{WinShell}, such as: +% +%\begin{itemize} +%\item How to apply a bug fix you probably need +%\item How to print directly from \cmdname{WinShell} +%\item How to use the Project feature for multiple-file documents +%\end{itemize} + +\cmdname{WinShell} also has on-line help, which you can access via the +$\textbf{\underbar{?}}$ on the menu bar. + +Other information about using \cmdname{WinShell} can be found in +section \ref{winshell:more} on p.~\pageref{winshell:more}. + +\subsubsection{Dvips} + +The configuration file for dvips can be found in\\ +\verb+C:\Program Files\TeXLive\texmf-var\dvips\config\config.ps+\\ +You may open it with any editor (\cmdname{WinShell} will do fine) and change +some parameters: + +\begin{description} +\item [fonts] you can change the default printer \MF{} mode or printer + resolution in case dvips needs to generate PK fonts. By default it + is configured to use type1 versions of the CM fonts, so it should + not call \cmdname{mktexpk} too often; +\item[printer] you can tell dvips where you want to print by + default. If the `o' option is not followed by a printer name, then a + \file{.ps} PostScript file is written. You can give dvips a printer + name such as: +\begin{verbatim} +o lpt1: +% o | lpr -S server -P myprinter +% o \\server\myprinter +\end{verbatim} +\item[paper] Next, you might want + to change the paper size from European (A4) to US letter + by making the US letter the first paper size mentioned in the file. + Scroll to the group of lines beginning with ``@''. Move + the appropriate lines so that this section begins with the lines:\\ +\hspace*{1em} @ letterSize 8.5in 11in\\ +\hspace*{1em} @ letter 8.5in 11in\\ +\hspace*{1em} @+ \%\%BeginPaperSize: Letter\\ +\hspace*{1em} @+ letter\\ +\hspace*{1em} @+ \%\%EndPaperSize +\end{description} + +\textbf{Note:} The current \TeXLive{} distribution has implemented (for +the first time!) the procedure of making always up-to-date fontmaps files +for Dvips and Pdftex. This is done by \cmdname{updmap} program +during installation, as well as during any font package addition. +If you add new packages by hand, edit the file \verb+updmap.cfg+ +in \path|$VARTEXMF/web2c|. + +\subsubsection{Pdftex} +If you want to use the program pdf{}latex to convert directly to +pdf format, and you are using US letter file, edit the file\\ +\verb+C:\Program Files\TeXLive\texmf-var\pdftex\config\pdftex.cfg+\\ +and change ``page\_width'' and ``page\_height'' to specify letter-size paper. +These entries should read:\\ +\hspace*{1em} page\_width 8.5 true in\\ +\hspace*{1em} page\_height 11 true in\\[6pt] +Save the file and exit the editor. + +\subsubsection{GSView} +Starting from versions compatible with Ghostscript 6.50, GSView is not +free anymore, but shareware. So it is not on the \CD{} anymore. + +You may want to change the papersize to US letter size. If so, +open GSView from the Start menu. \\ +From the \textbf{Media} menu, select \textbf{Letter}. + +Also, there are menu settings that are supposed to give you the +most readable screen image:\\[4pt] + From \textbf{Media} \verb+->+ \textbf{Display Settings}, +set \textbf{Text Alpha} +and \textbf{Graphics Alpha} both to 4 bits. + +Note that the installation process has set all .ps and .eps files +to automatically open with GSView. + +For printing instructions, see section~\ref{printing} below. + +\subsubsection{WinDvi} +\label{sub:windvi} + +The \file{TeXSetup.exe} program takes care of associating the files +with the \file{.dvi} extension with \file{Windvi}. + +Open it from the Start menu (Programs \verb+->+ TeXLive \verb+->+ DVI Viewer). +You can set it for US letter paper by going to \textbf{View} \verb+->+ \textbf{Options} +and next to \textbf{Papertype}, +selecting US (8.5\verb+"+ x 11\verb+"+). +Click \textbf{OK}. +Exit Windvi. +You can change other parameters from there, like the ability to +execute commands included in path|\special{}|. +Also, the first time you +view any .dvi file, you may find the magnification too large. Zoom out +until you get an appropriate size. + +%There are two important parameters related to printing that can't yet +%be set from the dialog boxes, namely the resolution and the \MF{} mode +%for the printer. You can set them once for all by specifying them on +%the command line: +%\begin{verbatim} +%c:\>windvi -p 360 -mfmode canonbjc foo.dvi +%\end{verbatim} +%When you will exit Windvi, these parameters will be stored in the +%configuration file. The available modes are found in this file:\\ +%\path|c:\Program Files\TeXLive\texmf\metafont\misc\modes.mf| + +All the configuration for Windvi is stored in the +\path|$HOME/windvi.cnf| file. You can find it by running this command +at the prompt: +\begin{verbatim} +c:\>kpsewhich --expand-var $HOME/windvi.cnf +\end{verbatim} + +Should you have problems with Windvi, please remove the configuration +file and test your problem against a vanilla configuration. + +\subsection{Testing} + +You can test \cmdname{WinShell} by opening the file \verb+sample2e.tex+, found in +\path|C:\Local\TeX\texmf\tex\latex\base|. The \LaTeX\ source should appear +on the screen. Process it by clicking on the \LaTeX\ icon on the toolbar, +then view it by clicking on the Preview (Windvi) icon. + +At first, when you preview files with Windvi, 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. +Return to \cmdname{WinShell} and try dvips, then GSView. + +\textbf{Hint for the future:} If a \LaTeX\ run stops because \LaTeX\ +cannot find a file, you can press \textbf{Ctrl-z} to quit. + +\subsection{Printing}\label{printing} + +It is possible to print from Windvi. In this case, printing will +be done using the Windows unified printer driver. By definition, it +is compatible with all printers. However, there is some drawback: it +can generate some huge spool files, and some (older) versions of Windows just +don't like them. The advantage is that you can use features like +embedding BMP or WMF images. You also need to make sure that the +printer parameters are correctly set (subsection~\ref{sub:windvi}), +else you will get scaled printing (printing at 600dpi on a 300dpi +printer will give you only one quadrant of your page). + + +Printing is faster and more reliable if you run dvips to make a +.ps file and then print from GSView. To print from GSView, first select +\textbf{Print...} from the \textbf{File} menu. A Print window will appear. + +If you will be using a PostScript printer, \textit{be sure to select +\textbf{PostScript Printer}}. In the newer version this is done in +the ``Print Method'' box at the bottom left of the Print window. You +can then select any of the printers that you have previously installed +on your PC. If you fail to check the box for PostScript Printer, +printing will not work. + +If you will be using your own non-PostScript printer, select +\textbf{Ghostscript device} in the ``Print Method'' box, then click on +the button to the right labelled \textbf{djet500} and select your +printer type from the list that pops up. (In the older version of +GSView, make sure PostScript Printer is \textit{not} selected, then +select your printer type from the ``Device'' list.) + +If you use \cmdname{WinShell} and a PostScript printer, probably the most +convenient way to print is to add an icon to the \cmdname{WinShell} toolbar that +invokes dvips in a way that sends the output directly to a default +printer. For detailed instructions on how to do this, see +\ref{winshell:print} on p.~\pageref{winshell:print} +(\textit{More About \cmdname{WinShell}}). + +\subsection{More About \cmdname{WinShell}}\label{winshell:more} +\subsubsection{Installing Bug Fixes} + +\cmdname{WinShell}'s author (\href{mailto:idb@winshell.de}{Ingo de Boer}, +thanks to him) sometimes releases beta versions of the next \cmdname{WinShell} +version which are also bug fixes. You can grab them from +\url{http://www.winshell.de}. Usually they are \file{.zip} files that +only require to be unpacked in \cmdname{WinShell} directory (\path|c:\Program +Files\WinShell| by default), either using WinZip or a similar tool, or +by using \file{unzip} on the command line. If you got some +\file{winshellbugfix.zip} file and that you saved it in the \cmdname{WinShell} +directory, then you need to run: +\begin{verbatim} +c:\>cd c:\"Program Files"\WinShell +c:\>c:\local\bin\unzip winshellbugfix.zip +\end{verbatim} +Say `yes' if you are asked if some files should be overwritten. The +\path|unzip.exe| programme can be found in the +\path|support/gnu-utils| package. If you +do not have it on your machine, you can use any archiver tool like +WinZip to achieve the same effect. + +\subsubsection{Using the Project Feature} +If your document is split into several files +(for example a thesis), look into \cmdname{WinShell}'s ``Project'' feature. From the +\textbf{Project} menu, you give the project a name (e.g., Thesis), +supply the name of the main (or root) file, and then ``add'' other +files. These filenames display on the left of the screen where you can +double click the names to view and switch between them. Clicking +the \textbf{\LaTeX} icon always processes the main file. + +Note the icons on the toolbar for toggling the project space (on the left) +and the log space (at the bottom). If you are not using the Project +feature, you may want to toggle off the space on the left, using the full +screen width to display your file. + +\subsubsection{Printing from \cmdname{WinShell} to a PostScript Printer} +\label{winshell:print} + +The Dvips icon on the \cmdname{WinShell} toolbar puts the PostScript output in a file, +which you can then view with GSView and print from there if you choose. +However, it's convenient to add a \cmdname{WinShell} ``program call'' to dvips which +sends the output directly to a designated PostScript printer. The steps +below show how to do this for the printer \textbf{vclw}; you should +substitute the name of your most frequently-used printer for \textbf{vclw}. +\begin{enumerate} +\item Make the program aware of the printer: +\begin{itemize} + +\item Open \cmdname{WinShell}, go to \textbf{Options} \verb+->+ +\textbf{Program Calls} \verb+->+ \textbf{User defined}. + +\item Click on \textbf{Tool 1} in the list on the right and fill in the +fields to the left as follows:\vspace{-6pt} +\begin{quote} +Name: \verb+Print+\\ +exe file: \verb+dvips+\\ +cmd-line: \verb+ -D600 %m -o vclw+\\ +Uncheck the box for ``DVIPS first'' +\end{quote}%\vspace{-12pt} +\item Click \textbf{OK} +\end{itemize} +\item Add Print to the toolbar: +\begin{itemize} +\item Go to \textbf{Options} \verb+->+ \textbf{View} \verb+->+ \textbf{Customize}. +\item In the Category box, select \textbf{User-Programs}. +\item Select \textbf{Print} and drag it to the toolbar, placing it just to + the right of the GSView icon. +\item You then have a choice of ``Image only'', ``Text only'', or ``Image and +Text''. The easiest is to select ``Text only'' and click \textbf{OK}. +You should then see \textbf{Print} on the toolbar. (If you prefer, you can +select ``Image only'', then ``Edit'', and edit the displayed picture to your +satisfaction.) +\end{itemize} +\end{enumerate} +Now, to print a \LaTeX\ document, just click on the \textbf{Print} icon to +send to your selected printer. To use a different printer, you will need to +click on the \textbf{Dvips} icon to print to a file. Then click on the +GSView icon and use GSView to send to any printer you have installed on +your PC. + +\subsubsection{Adding Ispell to \cmdname{WinShell}} +\label{winshell:ispell} +\begin{enumerate} +\item Add Ispell to User Tools: +\begin{itemize} +\item Open \cmdname{WinShell}, go to \textbf{Options} \verb+->+ +\textbf{Program Calls} \verb+->+ \textbf{User defined}. +\item In the list on the right, click on \textbf{Tool 1} (or \textbf{Tool + 2} if you have already used \textbf{Tool 1}) and fill in the +fields to the left as follows:\vspace{-6pt} +\begin{quote} +Name: \verb+Ispell+\\ +exe file: \verb+ispell+\\ +cmd-line: \verb+ -t -d american %c.tex+\\ +Uncheck the boxes for ``LaTeX first'' and ``DVIPS first'' +\end{quote}%\vspace{-12pt} +\item Click \textbf{OK} +\end{itemize} + +\item Add Ispell to the toolbar: %\vspace{-14pt} +\begin{itemize}\itemsep 0pt +\item Go to \textbf{Options} \verb+->+ \textbf{View} \verb+->+ \textbf{Customize}. +\item In the Category box, select \textbf{User-Programs}. +\item Select \textbf{Ispell} and drag it to the toolbar, placing it just to + the right of the GSView icon (or the last icon you added). +\item You then have a choice of ``Image only'', ``Text only'', or ``Image and +Text''. The easiest is to select ``Text only'' and click \textbf{OK}. +You should then see \textbf{Ispell} on the toolbar. (If you prefer, you can +select ``Image only'', then ``Edit'', and edit the displayed picture to your +satisfaction.) +\end{itemize} +\end{enumerate} +Now, when you have a \LaTeX\ document open, you can click on +\textbf{Ispell} to perform spell checking. Ispell will open another window +and display the first misspelled word on the left with the filename on the +right. Below that you will see the context in which the misspelling appears; +often several suggestions for replacements are also displayed. To replace +the word, enter the number corresponding to the desired replacement. Other +possible responses are listed below; for example, you can press the space +bar to ignore the misspelled word. For more information on Ispell, read the +manual page: \verb+C:\Program Files\TeXLive\texmf\doc\html\manpages\ispell.html+. + +Note that when you replace a word, you will not see the correction in your +\cmdname{WinShell} window until you close the file (click the X in the upper right +corner) and then open it again (use the File menu). + +\subsection{Tips and tricks about the Win32 platform} + +\subsubsection{Different flavors of Win32} + +What we call Win32 is not an operating system by itself. It is a set +of functions -- and a large one\footnote{Around 12000 functions in the + header files of the Microsoft SDK} -- that you can use to write +programs for different operating systems of the Windows family. + +Windows comes in different flavors: +\begin{itemize} +\item Win95, Win98 and WinME, which \emph{are not true multitasking, + multithreading} environments. They are the latest -- and hopefully + last -- metamorphosis of DOS. This can be more or less proven by the + fact that when booting, the PC will load the \path|command.com| + interpreter, and if you stop the boot process at this point, you can + ask for the current (DOS) version and it will answer something like + 'MS-DOS 7.0' (at least for the old versions of Win9x); +\item Windows NT, which is a new operating system written from scratch, + capable of + true multitasking behaviour, and loaded with high level features; +\item Windows 2K, written on an NT basis, with all the bells and + whistles of Win98. +\item Windows XP, which comes with Personal and Pro flavors. This is + the last step in merging both lines of products (Win9x based and NT + based). XP is written on an NT basis. +\end{itemize} + +Win9x are able to run 32~bits programs and 16~bits programs +concurrently. But the operating system by itself is not entirely +written in 32~bits mode, and does not support memory protection: 16bits +applications can overwrite parts of the operating system memory! Some +parts of the system like the GDI (Graphical Device Interface) manage +limited resources like bitmaps, fonts, pens and so on for the set of +all programs that run concurrently. All the bitmaps headers available +at the same time can't amount for more than 64kb. This explains the +performance tool and the fact that you can put your system on his +knees by making intensive use of graphic objects for example. + +NT, 2K and XP do not suffer from these limitations, and neither from +other Win9x limitations. They are true multitasking environments, with +protected memory. They are much more responsive than Win9x because +of better memory management, better file system and so on. + +\subsubsection{Command line prompt} + +You will wonder: ``why would I need to use a command line prompt when +I have Windows?''. + +Good question. The problem is of very general nature. Not all +operations can be done easily using only a GUI. Command line gives you +programming power -- assuming a clever command interpreter. + +But the problem here is more fundamental: \TeX{} is \emph{a batch} +tool. Not an interactive one. \TeX{} needs to compute the best +layout for each page, resolve cross-references and so on. This can be +done only by a global processing of the document. It is not (yet) a +task that can be done interactively. + +This means that you should use \TeX{} from a command line. In fact the +situation is not so bad. There is an advantage to write command line +tools for complex processing: they are better debugged, because not +tied to GUI problems, and GUI tools can be designed to interface the +command line tools. This is the case for \TeX{} where you will +interact with it most of the time through a GUI text editor -- see +section~\ref{sec:winshell} for example. + +However, you may need to use the command line prompt in a number of +situations, by example in case of problems and you want to debug your +setup -- see + section~\ref{sec:troubleshooting}. + + \begin{description} + \item[Win9x] You will open a command line prompt by looking either + for the MS-DOS icon in the ``Start->Programs'' menu, either by + choosing ``Start->Run'' menu and typing in \path|command.com| + \item[NT, 2K, XP] You will open a command line prompt by looking + for the ``Command Prompt'' in the ``Start->Accessories'' + menu\footnote{These locations may change across different OS + versions.}. You can also choose the ``Start->Run'' menu and type + in \path|cmd.exe|, which is the name of the brand new command + interpreter for NT\footnote{Which explains why it is untrue to + call this a \emph{DOS} box under NT!}. +\end{description} + +\subsubsection{Path separators} + +The Win32 API understands both \path|/| and \path|\| characters as +PATH separators. But the command interpreters do not! So whenever a +path name is used programmatically, you can use both separators, and +even mix them up in the same path name. But on the command line, you +must type \path|\| as path separator. The reason is compatibility: +the command processor used the \path|/| to introduce arguments to +commands. + +All this to say: do not be surprised to read path names written using +the Unix convention; \fpTeX{} is a port of \Webc, and aims to be compatible +across platforms. For this reason, all the configuration files that +need to specify path names use the Unix convention. + +\subsubsection{File systems} +\label{sec:clusters} + +The worse feature of Win9x with regard to \TeX{} is probably the +so-called FAT file system. \TeX{} uses many many small files, with +size around 1kb -- 3kb. The FAT file system is old, and predates by +far the multi-gigabytes hard disks we have today. It means it can't +manage efficiently the 30000 \TeX{} files found on the \CD{}. The FAT +file system will allocate a minimum of 32kb for \emph{any} file on a +huge partition. It means that \TeX{} will use much more disk space +than it actually needs. + +The other, more modern, file systems available -- namely FAT32 and +NTFS -- do not have this drawback. They manage clusters of 4kb +only\footnote{You can lower the limit to 512 bytes on NTFS}. + +\subsubsection{How to add some directory to your PATH} + +There are pairs of variables and values which behave much like global +variables inside your programs. The set of those variables is called the +environment. Each program is initialized with a copy of the +environment when it is run. It can request and change the +value of any variable. The changes happen in the copy of the +environment, and is not at all propagated to the other running +programs. + +Your PATH is a special environment variable used to search for +programs you want to run. +There is a different procedure to change it for Win9x, WinME and NT/2K/XP: + +\begin{description} +\item[Windows 95/98] Edit your \path|autoexec.bat|. In this file should be a line + starting with \texttt{PATH=} and followed by a list of directories separated + by \path|;|. Please add the directory with the executables in this line. + After this, this line could look as follows: +\begin{verbatim} +PATH=c:\windows;c:\windows\system;c:\"Program Files"\TeXLive\bin\win32 +\end{verbatim} +\item[Windows ME] You need to run the special program + \path|c:\windows\system\msconfig.exe| to be able to change any + environment variable. From this program, select the `Environment' + tab, and then add or modify the variable you want. You will be asked to reboot the + machine upon any change. +\item[Windows NT/2K/XP] + Click left on \texttt{Start --> Settings --> Control Panel}. Now the window + with the control panel icons opens. Double click on System. The + System Properties window opens. Click on the tab + \textsf{Environment} or look for a button named `Environment + Variables' among the dialog boxes. Now + you can change the environment variables for your user account. Note: + There are also displayed the environment settings for the system. + Normally, you can't change the system variables unless you have + administrator rights on your machine. If you want to change the \texttt{PATH} + for all users, you will have to contact your system administrator or + be the system administrator yourself--in the later case you should + know what you are doing. + + If there is already a \texttt{PATH} setting for your user account, + left click on \texttt{PATH}. In the field \textsf{Variable} appears + \texttt{PATH} while the field Value shows the current setting of + \texttt{PATH} as a list of directories separated by \path|;|. Add + the directory where the executables are located (e.g. + \path|c:\Program Files\TeXLive\bin\win32|). If there isn't a \texttt{PATH} variable + for your user account, simply click in the field Variable and type + in \texttt{PATH}, click in the field \textsf{Value} + and type in the directory with the executables. Important: Click on + the \textsf{Apply} button before clicking \textsf{Ok}, otherwise the + changes to \texttt{PATH} won't apply to your system. Be careful when + changing the environment settings. +\end{description} + +The best way to be sure that a variable has been properly set is to +open a console and type: +\begin{verbatim} +set VARIABLE +\end{verbatim} +which should return the corresponding value. + +\subsubsection{\TeX{} engines} + +If you have a look at the \Webc{} documentation, you will read that all +the various \TeX{} derived programs use the same base engine. For +example, \path|tex.exe| and \path|latex.exe| are exact copies of the +same program, but each one will use a different format file, based on +its calling name. + +Under Unix, this feature is implemented through \emph{symbolic + links}. It saves up a bit of disk space, because some engines are +used with many different format files. + +The Win32 API does not know about file links. So to save up almost +the same amount of memory, all the \TeX{} base engines have been put +in DLLs (\emph{Dynamic Linked Library}). This means that you will have +the following layout: +\begin{alltt} +13/05/2002 17:06 3 584 latex.exe +13/05/2002 17:06 266 240 tex.dll +13/05/2002 17:06 3 584 tex.exe +\end{alltt} +and the \path|latex.exe| file is nothing but a rough copy of +\path|tex.exe| using the same core \path|tex.dll|. +The same trick has been used for the \path|mktex*.exe| family of programs which are +linked to the \path|mktex.dll| library. + +In fact, a generic tool called \path|lnexe.exe| is provided to build the +equivalent of Unix hard links for executable files only under Win32. + +\subsection{In case of problems} +\label{sec:troubleshooting} + +\subsubsection{What to do if \texttt{latex} does not + find your files?} + +\begin{itemize} +\item \cmdname{kpsewhich} is the tool of choice to debug any +problem. Unfortunately, kpsewhich outputs debug information to +stderr, and the Windows console does not know how to redirect stderr +to a file\footnote{Well, NT and Win2k consoles know how to do + that. But the trick will work for any console.}. +For diagnostic purposes you can temporarily set an +environment variable (in DOS box): +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=err.log +\end{verbatim} +You can also set the debug level: +\begin{verbatim} +SET KPATHSEA_DEBUG=-1 +\end{verbatim} + +If you want to redirect stderr to stdout, which is not possible under +either W9x or NT/2K/XP, then just do: +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=con: +\end{verbatim} +This way you can capture both stdout and stderr in the same file. + +\item Assuming the installation has been done in \path|c:/Program Files/TeXLive|, check + the following values: \\ + {\small + \begin{tabular}{ll} + \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-path $TEXMF| & \path|c:/Program Files/TeXLive/texmf| \\ + \path|kpsewhich -expand-path $TEXMFCNF| & + \path|.;c:/Program Files/TeXLive/texmf/web2c;| \\ + & \path|c:/Program Files/TeXLive/bin/win32;| \\ + & \path|c:/Program Files/TeXLive/bin;| \\ + & \path|c:/Program Files/TeXLive| \\ + \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/Program Files/TeXLive/texmf/tex//| + \end{tabular} +} +\item If you have other \TeX{}-related values already set in your + environment, please, remove them. They are overriding the ones in + texmf.cnf. +\item Check the values from:\\ +{\small + \begin{tabular}{ll} + \texttt{kpsewhich cmr10.tfm} & \path|c:/Program Files/TeXLive/texmf/fonts/tfm/public/cm/cmr10.tfm|\\ + \texttt{kpsewhich latex.fmt}& \path|c:/Program Files/TeXLive/texmf/web2c/latex.fmt| + \end{tabular} +} +\item At this point, if everything is correct, \path|tex.exe| and + co. should work. If it is not the case, you will need to play with + the \path|-debug=n| option from \path|kpsewhich|, and check back all + the values. Try to identify and report the problem. +\end{itemize} + +\subsubsection{What to do if your setup still does not work as expected?} + +There are several questions to ask about: +\begin{enumerate} +\item Is \file{tex.exe} on my \path|PATH|? +\item Is the \path|TEXMFCNF| variable correctly set to + \path|c:/Program Files/TeXLive/texmf-var/web2c| (default value)? +\item Are there any errors in the log file generated by the + \file{TeXSetup.exe} program? Errors are flagged with the sequence + \path|Error|. +% \item If everything seems correct up there, then you need to read the +% documentation in \path|texmf/doc/fptex/fptex.pdf| or +% \path|texmf/doc/html/fptex/fptex.html| for a more detailed procedure +% (available on your hard disk or on the \CD{}). +\item One can also go to \url{http://www.tug.org/tex-live.html} and + check for any bug fix. +\item The Windows distribution on the \CD{} is no more no less than + the \fpTeX{} distribution, so you can also go to the Web pages at + \url{http://www.fptex.org}, or consider subscribing to the \fpTeX{} + mailing-list by consulting + \url{http://www.tug.org/mailman/listinfo/fptex} . +\end{enumerate} + + +The \TeXLive{} software is complex and made of more than 250 programs +and around 40000 files from various sources. It is quite difficult to +predict all possible causes for problems. Nevertheless, we will do our +best to help you in every case. + + +\subsection{Compiling the source files} + +You have the whole set of source files, comprised for +Windows in the \path|source/source.tar.bz2| archive available on the +\CD{}. To be able to compile the whole distribution for Windows, you +will need: +\begin{itemize} +\item Windows 2K/XP +\item Microsoft Visual Studio .Net +\item a set of Unix tools (\texttt{sed}, + \texttt{grep}, \texttt{gawk}, etc.) and also Perl, Flex and Bison, +\item to adjust the paths in the + \path|win32/make/common.mak| file according to your installation +\item adjust the paths in the Perl script file + \path|win32/perl/build.pl|, +\item run the compilation from the \path|win32/| directory using this + command: +\begin{verbatim} +c:\texlive\source\win32>perl ./perl/build.pl --install --log=install.log +\end{verbatim} +\end{itemize} + +There is a lot of work to do to make this process easier and cleaner. + +\subsection{Where to get more information?} + +The Win32 \TeX{} distribution on the \CD{} is also known as +\fpTeX. Only the packaging differs, but \fpTeX{} is no more no less +than the current \TeXLive\ release for Windows. + +The \fpTeX home on the Web is at:\\ +\url{http://www.fptex.org/} + +The current \fpTeX release is available from any +\href{http://www.ctan.org}{CTAN} %(see also the section +%\ref{sec:ctan}) +site in the directory~:\\ +\noindent\url{ftp://ctan.tug.org/tex-archive/systems/win32/fptex/}. + +The main ftp site for \fpTeX\ is \url{ftp://ftp.dante.de/pub/fptex/} from +where beta versions of \fpTeX\ and additionnal tools are available. +This main site is (partially) mirrored daily by the CTAN backbones in their +\path|systems/win32/fptex| directory. + +% You can reach me at my email address: +% \url{mailto:Fabrice.Popineau@supelec.fr}. + +The \TeX{} Users Group is kindly hosting a mailing-list dedicated to +\fpTeX. This is a very low volume one. It is used for announcements, +bugs reports or as well to discuss about improvements or various users +problems. To subscribe, read the page at +\url{http://www.tug.org/mailman/listinfo/fptex}. The mailing list +address is \EmailURL{fptex@tug.org}. + +\section{Building on a new Unix platform} +If you have a platform for which we have not provided binary sources, +you will need to compile \TeX{} and friends from scratch. This is not +as hard as it sounds. What you need is all in the directory +\texttt{source} on the \CD{}. + +You should first install the support tree from the \TeXLive{} \CD{} (do +a basic install, with no system binaries chosen). + +\subsection{Prerequisites} +You will need about 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. The \acro{GNU} utilities (\cmdname{gcc}, \acro{GNU} +\cmdname{make}, \cmdname{m4}, \cmdname{flex}, \cmdname{bison}) are the +most widely tested on different platforms. \cmdname{gcc}-2.7.* +\cmdname{flex}-2.4.7 and \acro{GNU}\,\cmdname{make}-3.72.1 or newer +should work well. 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. The command +\texttt{uname} must return a sensible value. + + + +\subsection{Configuration} +First, 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. Decide where the `root' of the +installation will be, e.g.\ \path|/usr/local| or +\path|/usr/local/TeX|. Obviously you should use the same location +that you specified when you installed the support tree. + +Now, start the build process by running \textsf{configure} with +a command-line like +\begin{alltt} +>> \Ucom{./configure -prefix=/usr/local/TeX} +\end{alltt} + +The `prefix' directory is the one where you installed the support +tree; the directory layout that will be used is as follows (where +\$TEXDIR stands for the directory you chose): + +\noindent +\begin{tabular}{>{\ttfamily}ll@{}} + \dirname{$TEXDIR/man} & Unix manual pages\\ + \dirname{$TEXDIR/share/texmf} & main tree with fonts,\\ + & \qquad macros, etc\\ + \dirname{$TEXDIR/info} & \acro{GNU} style info manuals\\ + \dirname{$TEXDIR/bin/$PLATFORM} & binaries\\ +\end{tabular} +%$ + +You can omit the use of `\dirname{share/}' part for the +\dirname{texmf} directory if you want, as +\dirname{$TEXDIR/share/texmf} and \dirname{$TEXDIR/texmf} are +auto-detected by configure. If you choose something different, you +have to specify that directory with the \verb|--datadir| option of +\textsf{configure}. + + +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 for \textsf{configure}. + + +Have a look at the output of \texttt{./configure --help} for more +options you can use (such as omitting optional packages such as \OMEGA\ +or \eTeX). + +\subsection{Running \textsf{make}} +Make sure the shell variable \texttt{noclobber} is not set, and +then type +\begin{alltt} +>> \Ucom{make world} +\end{alltt} +and relax\ldots. + +It could also be useful to log all the output, e.g.\ by +typing +\begin{alltt} +>> \Ucom{sh -c "make world >world.log 2>\&1" \&} +\end{alltt} +Before you think that everything is ok, please check the log file for +errors (\acro{GNU} \cmdname{make} always uses the string +``\texttt{Error:}'' whenever a command returns an error code) and +check if all binaries are built: +\begin{alltt} +>> \Ucom{cd /usr/local/TeX/bin/i686-pc-linux-gnu} +>> \Ucom{ls | wc} +\end{alltt} +The result should be 209. + +If you need special privileges for \texttt{make install}, you can +run two \cmdname{make} jobs in separate runs: +\begin{alltt} +>> \Ucom{make all} +>> \Ucom{su} +>> \Ucom{make install strip} +\end{alltt} + +\subsection{Final configuration steps} +Set up your \envname{PATH} to include the directory containing the +just-installed binaries (e.g.\ +\dirname{/usr/local/TeX/bin/mips-sgi-irix6.5}); similarly, +\envname{MANPATH} and \envname{INFOPATH} to include the relevant newly +installed subdirectories, i.e.\ \dirname{$TEXDIR/man} and +\dirname{$TEXDIR/info}. + +The program \textsf{texconfig} allows you to set the defaults for +hyphenation, paper size, print command, \MF{} mode, etc. You can +run this command interactively and see what options it offers, or type +\begin{alltt} +>> \Ucom{texconfig help} +\end{alltt} + +For example, if you are not using A4 format paper, you can make +`lettersize' the default using: +\begin{alltt} +>> \Ucom{texconfig dvips paper letter} +>> \Ucom{texconfig xdvi paper us} +\end{alltt} + +\section{A user's guide to the \protect\Webc{} system} + +%-------------------------------------------------------- + +\Webc{} contains a set of \TeX-related programs, i.e., \TeX{} itself, +\MF{}, \MP, \BibTeX{}, etc. The original implementation was by Tomas +Rokicki who, in 1987, developed a first \TeX{}-to-C system adapting +change files under Unix, which were primarily the 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. The +latest result is \Webc{} Version 7.3, which was released in March +1999. Our version has some updates for the forthcoming new release, +and identifies itself as 7.3.7 + +The \Webc{} 7.3 system runs on Unix, Windows 3.1, 9x/ME/\acro{NT}/\acro{2K}/\acro{XP}, +\acro{DOS}, and other operating systems. It uses Knuth's +original sources for \TeX{} and other basic programs written in \web{} +and translates them into C source code. Moreover, the system offers a +large set of macros and functions developed to augment the original +\TeX{} software. The core \TeX{} family components are: + +\begin{description} +\renewcommand{\makelabel}[1]{\descriptionlabel{\mdseries\cmdname{#1}}} +\item[bibtex] Maintaining bibliographies. +\item[dmp] \cmdname{troff} to MPX (\MP{} pictures). +\item[dvicopy] Produces modified copy of \dvi{} file. +\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[makempx] \MP{} label typesetting. +\item[mf] Creating typeface families. +\item[mft] Prettyprinting \MF{} source. +\item[mpost] Creating technical diagrams. +\item[mpto] MetaPost label extraction. +\item[newer] Compare modification times. +\item[patgen] Creating hyphenation patterns. +\item[pktogf] Packed to generic fonts. +\item[pktype] PK to human-readable text. +\item[pltotf] Property list to TFM. +\item[pooltype] Display \web{} pool files. +\item[tangle] \web{} to Pascal. +\item[tex] Typesetting. +\item[tftopl] TFM to property list. +\item[vftovp] Virtual font to virtual property list +\item[vptovf] Virtual property list to virtual font. +\item[weave] \web{} to \TeX. +\end{description} +\noindent The precise functions and syntax of these programs are described in +the documentation of the individual packages or of \Webc{} itself. +However, knowing a few principles governing the whole family of +programs will help you to benefit optimally from your \Webc{} +installation. + +All programs honor the standard \acro{GNU} options: +\begin{description} +\item[\texttt{-{}-help\ \ \ }] print basic usage summary. +\item[\texttt{-{}-verbose}] print detailed progress report. +\item[\texttt{-{}-version}] print version information, then exit. +\end{description} + +For locating files the \Webc{} programs use the path searching library +\KPS{}. This library uses a combination of environment variables and a +few configuration files to optimize searching the \TeX{} directory +tree. \Webc{} can handle more than one directory tree +simultaneously, which is useful if one wants to maintain \TeX's +standard distribution and local extensions in two 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 ``hanging'' under that root. + +\subsection{\protect\KPS\ path searching} + +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{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{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 + ``\texttt{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{Debugging}). + +\subsubsection{Config files} + +\tolerance=3500 +\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} (by default such a file lives +in the \file{texmf/web2c} subdirectory). \emph{All} +\file{texmf.cnf} files in the search path will be read and definitions +in earlier files override those in later files. Thus, with a search +path of \verb|.:$TEXMF|, values from \file{./texmf.cnf} override those +from \verb|$TEXMF/texmf.cnf|. + +\tolerance=1500 + +While reading the description of the format of the file +\file{texmf.cnf} below, please also refer to +appendix~\ref{app:texmf.cnf}, starting on +page~\pageref{app:texmf.cnf}, which lists the \file{texmf.cnf} file on +the \CD. + +\begin{itemize} +\item + Comments start with ``\texttt{\%}'' 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} + \emph{variable}[.\emph{progname}] [=] \emph{value} +\end{alltt}% + where the \samp{=} and surrounding whitespace are optional. +\item + The ``\texttt{\var{variable}}'' name may contain any character other + than whitespace, \samp{=}, or \samp{.}, but sticking to + \samp{A-Za-z\_} is safest. +\item + If ``\texttt{.\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 ``\texttt{\var{value}}'' may contain any characters except + ``\texttt{\%}'' and \samp{@}. The + ``\texttt{\$\var{var}.\var{prog}}'' feature is not available on the + right-hand side; instead, you must use an additional variable. A + \samp{;}\ in ``\texttt{\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, MSDOS 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{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{Default-expansion} + +\tolerance=2500 +If the highest-priority search path (see ``Path sources'' on +page~\pageref{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 + +\tolerance=1500 + +\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 can be used to implement multiple \TeX{} hierarchies, by +assigning a brace list to \code{\$TEXMF}. +For example, in \file{texmf.cnf}, you find +the following definition: +\begin{verbatim} + TEXMF = {$HOMETEXMF,$TEXMFLOCAL,!!$VARTEXMF,!!$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{\$HOMETEXMF/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$VARTEXMF/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{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 summarises the meaning of special characters +in \KPS{} configuration files. + +\newcommand{\CODE}[1]{\makebox[2.2em][l]{\code{#1}}} +\begin{description} +\item[\CODE{:}] Separator in path specification; at the beginning or + the end of a path it substitutes the default path expansion. +\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`\{\dots\char`\}}] Brace expansion, e.g., + \verb+a{1,2}b+ will become \verb+a1b:a2b+. +\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{description} + + +\subsection{Filename databases} +\label{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 +``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 +adapt to DOS-like ``8.3'' filename conventions in source files. + +\subsubsection{The filename database} +\label{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); most sites have only one hierarchy. \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} && ls -LAR ./ >ls-R +\end{alltt} +presuming your system's \code{ls} produces the right output format +(\acro{GNU}'s \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 for changes in the installed files\Dash perhaps after installing or +updating a \LaTeX{} package\Dash the file \file{ls-R} is automatically +updated. + +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{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 ``\texttt{\var{option}}'' can 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 more important options are described next. + +\begin{description} +\item[\texttt{-{}-dpi=\var{num}}]\mbox{} + Set the resolution to ``\texttt{\var{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 ``\texttt{\var{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 + found in the first column of Table~\ref{TABKpathsea}, which lists + currently recognized names, a description, + associated environment variables%, + \footnote{You can find definitions for these environment variables + in the file \file{texmf.cnf} (page~\pageref{app:texmf.cnf})}, and + possible file extensions. +\end{description} + + +\def\KpathKey#1#2#3#4#5{% name, number, description, variables, + % suffixes +\SetRowColor#1 & #3 & #4 & #5\\} +\def\HEAD#1{\multicolumn{1}{l}{\emph{#1}}} +% +\begin{small} +% a footnoterule immediately under a bottom-of-page rule looks dead +% silly, so we suppress it +\renewcommand\footnoterule{\relax} +% +\begin{longtable}{@{}% + >{\ttfamily}P{.16\textwidth}% Col.1 + P{.3\textwidth}% Col 2 + >{\ttfamily\footnotesize}P{.29\textwidth}% Col 3 + >{\ttfamily}P{.14\textwidth}% Col 4 +@{}} +\caption{Kpathsea file types}\label{TABKpathsea}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\endfirsthead +\multicolumn{3}{l}{Kpathsea file types \emph{continued}}\\ +\emph{Name} & \HEAD{Description} & \HEAD{Variables} +& \HEAD{Suffixes}\\ +\hline +\noalign{\vspace{2pt}} +\endhead +\mbox{}\\ +\hline +\endfoot +\KpathKey + {afm} + {4} + {Adobe font metrics} + {AFMFONTS} + {.afm} +\KpathKey + {base} + {5} + {Metafont memory dump} + {MFBASES, TEXMFINI} + {.base} +\KpathKey + {bib} + {6} + {\BibTeX{} bibliography source} + {BIBINPUTS, TEXBIB} + {.bib} +\KpathKey + {} + {2} + {bitmap fonts} + {GLYPHFONTS, TEXFONTS} + {} +\KpathKey + {bst} + {7} + {\BibTeX{} style files} + {BSTINPUTS} + {.bst} +\KpathKey + {cnf} + {8} + {Runtime configuration files} + {TEXMFCNF} + {.cnf} +\KpathKey + {dvips config} + {34} + {\textsf{dvips} configuration files, e.g., \file{config.ps} + and \file{psfonts.map}} + {TEXCONFIG} + {.map} +\KpathKey + {fmt} + {10} + {\TeX{} memory dump} + {TEXFORMATS, TEXMFINI} + {.fmt, .efmt, .efm} +\KpathKey + {gf} + {0} + {generic font bitmap} + {GFFONTS} + {.gf} +\KpathKey + {graphic/figure} + {25} + {Encapsulated PostScript figures} + {TEXPICTS, TEXINPUTS} + {.eps, .epsi} +\KpathKey + {ist} + {35} + {\textsf{makeindex} style files} + {TEXINDEXSTYLE, INDEXSTYLE} + {.ist} +\KpathKey + {ls-R} + {9} + {Filename databases} + {TEXMFDBS} + {} +\KpathKey + {map} + {11} + {Fontmaps} + {TEXFONTMAPS} + {.map} +\KpathKey + {mem} + {12} + {MetaPost memory dump} + {MPMEMS, TEXMFINI} + {.mem} +\KpathKey + {mf} + {13} + {Metafont source} + {MFINPUTS} + {.mf} +\KpathKey + {mfpool} + {14} + {Metafont program strings} + {MFPOOL, TEXMFINI} + {.pool} +\KpathKey + {mft} + {15} + {MFT style file} + {MFTINPUTS} + {.mft} +\KpathKey + {} + {41} + {miscellaneous fonts} + {MISCFONTS} + {} +\KpathKey + {mp} + {16} + {MetaPost source} + {MPINPUTS} + {.mp} +\KpathKey + {mppool} + {17} + {MetaPost program strings} + {MPPOOL, TEXMFINI} + {.pool} +\KpathKey + {MetaPost support} + {18} + {MetaPost support files, used by DMP} + {MPSUPPORT} + {} +\KpathKey + {ocp} + {19} + {\OMEGA{} compiled process files} + {OCPINPUTS} + {.ocp} +\KpathKey + {ofm} + {20} + {\OMEGA{} font metrics} + {OFMFONTS, TEXFONTS} + {.ofm, .tfm} +\KpathKey + {opl} + {21} + {\OMEGA{} property lists} + {OPLFONTS, TEXFONTS} + {.opl} +\KpathKey + {otp} + {22} + {\OMEGA{} translation process files} + {OTPINPUTS} + {.otp} +\KpathKey + {ovf} + {23} + {\OMEGA{} virtual fonts} + {OVFFONTS, TEXFONTS} + {.ovf} +\KpathKey + {ovp} + {24} + {\OMEGA{} virtual property lists} + {OVPFONTS, TEXFONTS} + {.ovp} +\KpathKey + {pk} + {1} + {packed bitmap fonts} + {\emph{program}FONTS \textrm{(\texttt{\emph{program}} being + \textsmaller{\cmdname{XDVI}}, + etc.)}, PKFONTS, TEXPKS, GLYPHFONTS, TEXFONTS} + {.pk} +\KpathKey + {PostScript header} + {30} + {downloadable PostScript} + {TEXPSHEADERS, PSHEADERS} + {.pro, .enc} +\KpathKey + {tex} + {26} + {\TeX{} source} + {TEXINPUTS} + {.tex, .cls, .sty, .clo, .def} +\KpathKey + {TeX system documentation} + {27} + {Documentation files for the \TeX{} system} + {TEXDOCS} + {} +\KpathKey + {TeX system sources} + {29} + {Source files for the \TeX{} system} + {TEXSOURCES} + {} +\KpathKey + {texpool} + {28} + {\TeX{} program strings} + {TEXPOOL, TEXMFINI} + {.pool} +\KpathKey + {tfm} + {3} + {\TeX{} font metrics} + {TFMFONTS, TEXFONTS} + {.tfm} +\KpathKey + {Troff fonts} + {31} + {Troff fonts, used by DMP} + {TRFONTS} + {} +\KpathKey + {truetype fonts} + {36} + {TrueType outline fonts} + {TTFONTS} + {.ttf, .ttc} +\KpathKey + {type1 fonts} + {32} + {Type 1 PostScript outline fonts} + {T1FONTS, T1INPUTS, TEXPSHEADERS, DVIPSHEADERS} + {.pfa, .pfb} +\KpathKey + {type42 fonts} + {37} + {Type 42 PostScript outline fonts} + {T42FONTS} + {} +\KpathKey + {vf} + {33} + {virtual fonts} + {VFFONTS, TEXFONTS} + {.vf} +\KpathKey + {web2c files} + {38} + {\Webc{} support files} + {WEB2C} + {} +\KpathKey + {other text files} + {39} + {text files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\KpathKey + {other binary files} + {40} + {binary files used by `\textsf{foo}'} + {FOOINPUTS} + {} +\end{longtable} +\end{small} + + +\begin{multicols}{2} + +\begin{description} +\item[] The last two entries in Table~\ref{TABKpathsea} are special + cases, where the paths and environment variables depend on the name + of the program: the variable name is constructed by converting the + program name to upper case, and then appending \texttt{INPUTS}. + + The environment variables are set by default in the configuration + file \file{texmf.cnf}. It is only when you want to override one or + more of the values specified in that file that you might want to set + them explicitly in your execution environment. + + Note that the \samp{-{}-format} and \samp{-{}-path} options are mutually + exclusive. +\item[\texttt{-{}-mode=\var{string}}]\mbox{}\\ + Set the mode name to ``\texttt{\var{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 ``\texttt{\var{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{prognam}}'' + feature in configuration files. + The default is \samp{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 (\samp{.pk}, \samp{.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{description} + + +\subsubsection{Examples of use} +\label{SExamplesofuse} + +Let us now have a look at \KPS{} in action. + +\begin{alltt} +>> \Ucom{kpsewhich article.cls} +/usr/local/texmf/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 ``tex'' (\TeX{} source file directories). We find it in +the subdirectory \file{tex/latex/base} below the \samp{TEXMF} root +directory. Similarly, all of the following are found without problems +thanks to their unambiguous suffix. +\begin{alltt} +>> \Ucom{kpsewhich array.sty} + /usr/local/texmf/tex/latex/tools/array.sty +>> \Ucom{kpsewhich latin1.def} + /usr/local/texmf/tex/latex/base/latin1.def +>> \Ucom{kpsewhich size10.clo} + /usr/local/texmf/tex/latex/base/size10.clo +>> \Ucom{kpsewhich small2e.tex} + /usr/local/texmf/tex/latex/base/small2e.tex +>> \Ucom{kpsewhich tugboat.bib} + /usr/local/texmf/bibtex/bib/beebe/tugboat.bib +\end{alltt} + +The latter 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 on our system (since we use the Type1 versions on the \CD{}). +\begin{alltt} +>> \Ucom{kpsewhich ecrm1000.pk} +\ifSingleColumn /usr/local/texmf/fonts/pk/ljfour/jknappen/ec/ecrm1000.600pk +\else +/usr/local/texmf/fonts/pk/ljfour/jknappen/ +... ec/ecrm1000.600pk +\fi\end{alltt} +For the extended Computer Modern files 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 ecrm1000.pk} +\end{alltt} +In this case, when specifying that we are interested in a resolution +of 300dpi (\texttt{-dpi=300}) we see that no such font is available on +the system. In fact, a program like \cmdname{dvips} or \cmdname{xdvi} would +go off and actually build the \texttt{.pk} files at the required +resolution 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 +prolog \file{tex.pro} for \TeX{} support, before turning our attention +to the generic configuration file (\file{config.ps}) and the +PostScript font map \file{psfonts.map}. As the \samp{.ps} suffix is +ambiguous we have to specify explicitly which type we are considering +(``\texttt{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/config/config.ps +>> \Ucom{kpsewhich psfonts.map} + /usr/local/texmf/dvips/base/psfonts.map +\end{alltt} + +We now take a closer look at the URW Times PostScript support files. +The name for these in Berry's font naming scheme is ``\texttt{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/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 --format="dvips config" utm.map} + /usr/local/texmf/dvips/psnfss/utm.map +\end{alltt} +This map file defines the file names of the Type1 PostScript 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 Regular instance +\file{utmr8a.pfb} and find its position in the \file{texmf} directory +tree by using a search for Type1 font files: +\begin{alltt} +>> \Ucom{kpsewhich utmr8a.pfb} +\ifSingleColumn /usr/local/texmf/fonts/type1/urw/utm/utmr8a.pfb +\else /usr/local/texmf/fonts/type1/ +... urw/utm/utmr8a.pfb +\fi\end{alltt} + +It should be evident from these few 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{Debugging} + +Sometimes it is necessary to investigate how a program resolves +file references. To make this feasible in a convenient way \KPS{} +offers various debug levels: +\begin{itemize} +\item[\texttt{\ 1}] \texttt{stat} calls (file tests). When running + with an up-to-date \file{ls-R} database this should almost give no + output. +\item[\texttt{\ 2}] References to hash tables (like \file{ls-R} + database, 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. +\end{itemize} +A value of \texttt{-1} will set all the above options; in practice you +will probably always use these levels if you need any debugging. + +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 +how \cmdname{dvips} prepares the PostScript file (we want to use the Type1 +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/html/dvips/dvips_toc.html}). +%\ifSingleColumn +%We get something +%like the following (we have rearranged the output for easier display): +%\begin{alltt}\small +%\input{../examples/ex6.tex} +%\end{alltt} +%\else +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 PostScript 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{}, PostScript 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 PostScript fonts; see the last part of +Section \ref{SExamplesofuse} for more details about PostScript map +file handling). + +At this point \cmdname{dvips} identifies itself to the user\ldots +\begin{alltt}\ifSingleColumn +This is dvips 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) +\else\small{}This is dvips 5.78 Copyright 1998 Radical Eye... +\fi\end{alltt}% decided to accept slight overrun in tub case +\ifSingleColumn +\ldots and then 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 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 +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'': +\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 Type1 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 of the nice features 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 listing of +\file{texmf.cnf} is shown in Appendix~\ref{app:texmf.cnf}, starting on +page~\pageref{app:texmf.cnf}; the settings of all parameters can be +found in Part 3 of that file. The more important control variables are: +\begin{description} +\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} (compare the generic value + and the ``huge'' one instantiated by \texttt{hugetex}, + etc.). +\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 TFM files read. +\item[\texttt{hash\_extra}] + Additional space for the hash table of control sequence names. + Approximately 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. You can see that both the + \cmdname{hugetex} and \cmdname{pdflatex} program invocations ask for + an extra 15,000 control sequences (the default value of + \texttt{hash\_extra} is zero). +\end{description} +Of course, this facility is no substitute for truly dynamic arrays and +memory allocation, but since this is extremely difficult to implement +in present \TeX, these runtime parameters provide a practical compromise +allowing some flexibility. + +%-------------------------------------------------------- + + +\section{Acknowledgements}\label{sec:acknowl} +This edition of TeXLive is edited by Sebastian Rahtz, with the +major contributors being Fabrice Popineau, who has worked away +unceasingly at the Win32 part of the package (especially the setup!) +and contributed in many different ways with ideas, advice and code; +and Staszek Wawrykiewicz, who provided great checking feedback, and +co-ordinated the Polish contributions. Kaja Christiansen performed a +vital role in endless recompilations on assorted Unix platforms, and +Robin Laakso coordinated production for TUG. Vladimir Volovich +did great work on cleaning the source and making other improvements, +while Gerben Wierda did all the work for MacOSX. + +We are very grateful for past and present help from +\begin{itemize} +\item The German-speaking \TeX{} Users (DANTE e.V.), who provided a machine + on which the master of the CD-ROM is developed and maintained; and Rainer +Sch\"opf and Reinhard Zierke who look after it; +\item The Perforce company, for providing a free copy of their +excellent change management system, which we have used to + manage the CD-ROM +contents; +\item Karl Berry, who provided the original \Webc{} distribution, and + has continued to give invaluable advice, encouragement, and help; +\item Mimi Burbank, who arranged access + at the Florida State University School of Computational Science + and Information Technology + to a slew of different + computers to compile \TeX{} on, and acted as an essential guinea-pig + whenever asked; +\item Kaja Christiansen, who provided essential feedback, compilation, and + documentation preparation; +\item Thomas Esser, without whose marvellous \teTeX{} package this + \CD{} would certainly not exist, and whose continual help makes it a + better product; +\item Michel Goossens, who co-authored the documentation; +\item Eitan Gurari, whose \TeX4ht was used to create the \HTML{} + version of this documentation, and who worked tirelessly to improve + it at short notice; +\item Art Ogawa and Pat Monohon, who coordinated releases for TUG; +\item Petr Olsak, who coordinated and checked all the Czech/Slovak + material very carefully; +\item Olaf Weber, for his patient assembly and maintenance of Web2c; +\item Graham Williams, on whose work the catalogue of packages depends. +\end{itemize} + +Gerhard Wilhelms, Volker Schaa, Fabrice Popineau, Janka +Chleb\'\i{}kov\'a, Staszek Wawrykiewicz, Erik Frambach, and Ulrik +Vieth kindly translated documentation at various times into their +respective languages, checked other documentation, and provided very +welcome feedback. + + +\section{History} + +This \CD{} distribution is a joint effort by many \TeX{} Users +Groups, including those from Germany, the Netherlands, the UK, France, +the Czech Republic/Slovakia, India, Poland and Russia, as well as +the international TUG. +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 far too ambitious a target, 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}, which specified how to create consistent and manageable +collections of \TeX{} support files. The final 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 \CD{} 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 \TeXLive. + +We 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 his \Webc{} package, 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 \TeXLive{} shares almost all of its features. The 4th edition +followed the same pattern, using a new version of te\TeX, 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 on this \CD{} should 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 a lot 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 as a major addition a setup +for MacOSX, 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. + +\section{Future versions} + +\emph{This \CD{} is not a perfect product!} We plan to re-issue it +once a year, and would like to provide more help material, more +utilities, more installation programs, and (of course) an +ever-improved and checked tree of macros and fonts. This work is all +done by hard-pressed volunteers in their limited spare time, and a +great deal remains to be done. If you can help, don't hesitate to put +your name forward! + +Corrections, suggestions and additions for future revisions +should be sent to:\hfill\null +\begin{quote} +Sebastian Rahtz\\ +{}7 Stratfield Road\\ +Oxford OX2 7BG\\ +United Kingdom\\ +\EmailURL{rahtz@tug.org} +\end{quote} + + +Updates, notes, and suggestions will be made available on \CTAN{} +in \path|info/texlive|. A \acro{WWW} page for +information and ordering details is at +\url{http://www.tug.org/tex-live.html}. + +\end{multicols} + +\Section{The texmf.cnf file} +\label{app:texmf.cnf} +\begin{small} +\listinginput{1}{../examples/texmf.cnf} +\end{small} + +\end{document} + + + +Notes on Nicolle Zellner's problems: +------------------------------------ +- autoexec.bat gave error, ``too many parameters''. +fix: in setvars.bat file, put "" around %PATH% to take care of spaces. + +- ``out of environment space'' when rebooting meant that autoexec.bat was +not executing properly-- path and texmfhome variable were not being set. +fix: put in config.sys file the line: shell=c:\command.com /e:1024 /p +(and reboot probably) + +[Note: alternative advice written by Pat: + The environment space is an area of memory in which the OS stores + variables such as path. To increase the memory size do the following: + + Open a MS-DOS window. Click on the Properties icon (looks like a hand + holding a sheet of paper). Click on the Memory tab in the Properties + window. Change the value under Initial Environment: to 4096. Apply the + properties. Click OK on the warning about needing to restart your computer. + The new environment memory will be in effect after the reboot.] + +- windvi did not retain settings. +fix: in setvars.bat file, add command: set Home=c:\Home and also create +the directory c:\Home. +copy windvi.cnf to c:\Home\ +reboot + +-ispell doesn't work (can't write to c:\tmp, can't create dictionary) +In addition to the the c:\Home addition above, create the folder: +d:\tmp\ (d: is where the files are that she is using.) +Now ispell should work from the command line. +Still can't get it to work from within \cmdname{WinShell}. (change cmd line to %c.tex, +it was reading the project main file) + + + +Notes on installing WinEdt: +--------------------------- +If you choose to install WinEdt, you will be asked for a folder name: any +folder name will do, as this is for temporary storage. An acceptable +choice is \verb+C:\Winedt+. Click \textbf{unzip}, then \textbf{OK}, +and finally \textbf{Close}. +--- + +later, to complete WinEdt installation: + +Run "winedt5.exe" and complete the setup procedure. + +Get from ftp://ftp.dante.de/pub/fptex/supplementary/ +30/08/2000 20:17 70 844 winedt5-cnf.zip +10/09/2000 10:43 839 086 winedt5-patch4.zip + +then unpack (use unzip or winzip with subdir creation enabled, NOT pkunzkip) + "winedt5-patch4.zip" inside the "c:\program files\winedt" directory +then at last unpack "winedt5-cnf.zip". + +When this is done, go inside the 'Options->Configurations' menu, +choose the "fpTeX Direct" option. + +If windvi previewer doesn't work, go to options->menu setup-> accessories +and change the Menu Setup so the call for DVI Preview is analogous to +the call for Dvips-- i.e., don't use "DVIVIEW" in the command line, +but rather fptex-bin and dviwin.exe. + + diff --git a/Master/texmf-doc/source/english/texlive-en/archive/live4ht.cfg-2004 b/Master/texmf-doc/source/english/texlive-en/archive/live4ht.cfg-2004 new file mode 100644 index 00000000000..555db7a13d8 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/live4ht.cfg-2004 @@ -0,0 +1,36 @@ +% $Id: //depot/Master/texmf-doc/source/english/texlive-en/live4ht.cfg#6 $ $Date: 2004/11/24 $ $Author: karl $ +% tex4ht configuration file for the TeX Live documentation. +% +% The 2 means to separate output files for only the top sectioning levels. +% xhtml specifies the main output format. +% info for extra debugging info in the log files. +% Without the \begin{document}, LaTeX complains that it is missing. +% +\Preamble{2,xhtml,info} \begin{document} \EndPreamble + +% simplify output for HTML. We leave TeX and LaTeX alone, since tex4ht +% actually does the lowered E (and raised A) in CSS. +\def\OMEGA{Omega} +\def\LaTeXe{LaTeX2e} +\def\eTeX{e-\TeX} +\def\acro#1{#1} +\def\MF{Metafont} +\def\BibTeX{BibTeX} +\def\warningbox{} +\def\endwarningbox{} + +\newif\ifhackliterals +\ifx\tldocenglish\undefined \else \hackliteralstrue \fi +\ifx\tldocrussian\undefined \else \hackliteralstrue \fi +\ifx\tldocgerman\undefined \else \hackliteralstrue \fi +% +\ifhackliterals + % these definitions cause "missing } inserted" at \end{tabularx} in + % French and Czech. don't know why. + % + % don't make these into links, as happens with \path. We only have a couple + % special characters that actually occur. + \def\dirname{\texttt\bgroup\catcode`\$=12 \catcode`\_=12 \finishliteral} + \def\finishliteral#1{#1\egroup} + \let\filename=\dirname +\fi diff --git a/Master/texmf-doc/source/english/texlive-en/archive/mod.pl b/Master/texmf-doc/source/english/texlive-en/archive/mod.pl new file mode 100644 index 00000000000..4f8df5df762 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/mod.pl @@ -0,0 +1,976 @@ + +$M{"a0poster"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"a4"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"a4wide"}="18 May 1996 11:33:54 Graham.Williams\@cmis.csiro.au"; +$M{"a5"}="19 Apr 1998 15:19:21 Graham.Williams\@cmis.csiro.au"; +$M{"a5comb"}="19 Apr 1998 15:19:21 Graham.Williams\@cmis.csiro.au"; +$M{"aaai"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"abc2mtex"}="27 Nov 1996 13:50:01 Graham.Williams\@cmis.csiro.au"; +$M{"abstbook"}="5 Mar 1997 16:28:20 Graham.Williams\@cmis.csiro.au"; +$M{"abstyles"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"accents"}="25 Feb 1999 09:06:12 Graham.Williams\@cmis.csiro.au"; +$M{"accfonts"}="30 Jan 1999 06:16:19 Graham.Williams\@cmis.csiro.au"; +$M{"achemso"}="8 Jul 1998 08:11:28 Graham.Williams\@cmis.csiro.au"; +$M{"acronym"}="17 Nov 1997 09:21:35 Graham.Williams\@cmis.csiro.au"; +$M{"acroread"}="20 May 1997 18:04:58 Graham.Williams\@cmis.csiro.au"; +$M{"acrotex"}="2 Dec 1998 09:52:54 Graham.Williams\@cmis.csiro.au"; +$M{"adfathesis"}="23 Feb 1999 16:11:03 Graham.Williams\@cmis.csiro.au"; +$M{"adobe"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"adobeother"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"adobestd"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"adrlist"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"advdate"}="5 Mar 1997 11:25:37 Graham.Williams\@cmis.csiro.au"; +$M{"ae"}="5 Dec 1998 08:56:53 Graham.Williams\@cmis.csiro.au"; +$M{"afterpage"}="13 Aug 1998 05:36:56 Graham.Williams\@cmis.csiro.au"; +$M{"afthesis"}="15 Dec 1996 19:08:54 Graham.Williams\@cmis.csiro.au"; +$M{"aguplus"}="16 Sep 1998 06:02:47 Graham.Williams\@cmis.csiro.au"; +$M{"aiaa"}="24 Feb 1999 09:15:44 Graham.Williams\@cmis.csiro.au"; +$M{"akletter"}="1 Jun 1998 12:04:46 Graham.Williams\@cmis.csiro.au"; +$M{"alatex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"alg"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"algorithms"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"alltt"}="28 May 1996 16:23:49 Graham.Williams\@cmis.csiro.au"; +$M{"alphanum"}="10 Mar 1998 06:11:22 Graham.Williams\@cmis.csiro.au"; +$M{"altfont"}="1 Jul 1996 21:06:06 Graham.Williams\@cmis.csiro.au"; +$M{"altfont"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"amiweb2c"}="25 Mar 1998 09:12:31 Graham.Williams\@cmis.csiro.au"; +$M{"amsbsy"}="18 Jun 1997 19:16:14 Graham.Williams\@cmis.csiro.au"; +$M{"amscd"}="1 Nov 1996 08:34:08 Graham.Williams\@cmis.csiro.au"; +$M{"amsfonts"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"amsfonts"}="9 Nov 1996 15:43:40 Graham.Williams\@cmis.csiro.au"; +$M{"amslatex"}="9 Nov 1996 15:40:28 Graham.Williams\@cmis.csiro.au"; +$M{"amslatex"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"amsltx11"}="9 Nov 1996 15:46:01 Graham.Williams\@cmis.csiro.au"; +$M{"amsmath"}="9 Nov 1996 16:15:32 Graham.Williams\@cmis.csiro.au"; +$M{"amsppt"}="24 Sep 1996 08:42:35 Graham.Williams\@cmis.csiro.au"; +$M{"amsppt1"}="25 Sep 1996 09:41:18 Graham.Williams\@cmis.csiro.au"; +$M{"amssym"}="25 Sep 1996 09:44:00 Graham.Williams\@cmis.csiro.au"; +$M{"amssymb"}="11 Nov 1996 20:19:40 Graham.Williams\@cmis.csiro.au"; +$M{"amstex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"amstex"}="9 Nov 1996 15:47:35 Graham.Williams\@cmis.csiro.au"; +$M{"amstext"}="11 Nov 1996 20:24:24 Graham.Williams\@cmis.csiro.au"; +$M{"answers"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"answers"}="29 May 1996 13:08:24 Graham.Williams\@cmis.csiro.au"; +$M{"anttvf"}="5 Feb 1998 09:27:21 Graham.Williams\@cmis.csiro.au"; +$M{"anttvf"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"antyktor"}="18 Jun 1998 10:23:35 Graham.Williams\@cmis.csiro.au"; +$M{"apa"}="12 Nov 1998 11:38:01 Graham.Williams\@cmis.csiro.au"; +$M{"apacite"}="12 Jul 1996 10:10:07 Graham.Williams\@cmis.csiro.au"; +$M{"apasoft"}="15 Sep 1998 06:39:47 Graham.Williams\@cmis.csiro.au"; +$M{"apl"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"appendix"}="11 Dec 1998 05:36:39 Graham.Williams\@cmis.csiro.au"; +$M{"ar"}="24 Apr 1998 16:02:22 Graham.Williams\@cmis.csiro.au"; +$M{"arabtex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"arabtex"}="13 May 1997 16:45:22 Graham.Williams\@cmis.csiro.au"; +$M{"armenian"}="3 Jul 1997 08:23:26 Graham.Williams\@cmis.csiro.au"; +$M{"arosgn"}="21 Oct 1996 10:32:18 Graham.Williams\@cmis.csiro.au"; +$M{"arrow"}="7 Nov 1996 19:31:04 Graham.Williams\@cmis.csiro.au"; +$M{"asaetr"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"ascii"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"astro"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"at"}="12 Nov 1996 09:27:11 Graham.Williams\@cmis.csiro.au"; +$M{"auctex"}="19 Oct 1998 06:10:29 Graham.Williams\@cmis.csiro.au"; +$M{"aurora"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"authorindex"}="16 Feb 1998 17:29:41 Graham.Williams\@cmis.csiro.au"; +$M{"autotab"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"babel"}="12 Jan 1997 11:26:33 Graham.Williams\@cmis.csiro.au"; +$M{"backgammon"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"bakoma-fonts"}="13 Dec 1996 08:26:36 Graham.Williams\@cmis.csiro.au"; +$M{"bakoma"}="22 Jan 1999 07:17:26 Graham.Williams\@cmis.csiro.au"; +$M{"barcode2"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"barcodes"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"barcodes"}="7 Jun 1996 13:43:47 Graham.Williams\@cmis.csiro.au"; +$M{"barr"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"bayer"}="10 Feb 1998 09:30:02 Graham.Williams\@cmis.csiro.au"; +$M{"bbding"}="13 May 1996 06:15:45 Graham.Williams\@cmis.csiro.au"; +$M{"bbding"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"bbm"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"beebe"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"belleek"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"beton"}="28 May 1996 16:24:30 Graham.Williams\@cmis.csiro.au"; +$M{"bez123"}="21 Oct 1998 09:36:53 Graham.Williams\@cmis.csiro.au"; +$M{"bezos"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"bibarts"}="19 Apr 1998 15:55:19 Graham.Williams\@cmis.csiro.au"; +$M{"bibindex"}="12 Jan 1997 14:53:39 Graham.Williams\@cmis.csiro.au"; +$M{"biblio"}="4 Oct 1996 08:44:47 Graham.Williams\@cmis.csiro.au"; +$M{"biblios"}="16 Aug 1996 14:40:47 Graham.Williams\@cmis.csiro.au"; +$M{"biblist"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"biblook"}="12 Jan 1997 14:53:39 Graham.Williams\@cmis.csiro.au"; +$M{"bibsort"}="12 Nov 1996 10:28:11 Graham.Williams\@cmis.csiro.au"; +$M{"bibtex8bit"}="19 Aug 1996 22:05:26 Graham.Williams\@cmis.csiro.au"; +$M{"bibtool"}="24 Feb 1998 13:38:41 Graham.Williams\@cmis.csiro.au"; +$M{"bibunits"}="29 May 1997 12:15:06 Graham.Williams\@cmis.csiro.au"; +$M{"bibweb"}="28 Nov 1997 09:12:23 Graham.Williams\@cmis.csiro.au"; +$M{"bidstobibtex"}="21 Oct 1996 13:54:10 Graham.Williams\@cmis.csiro.au"; +$M{"bitstrea"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"blackboard"}="9 Jul 1998 05:37:01 Graham.Williams\@cmis.csiro.au"; +$M{"blue"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"bluesky"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"bm"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"booktabs"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"borceux"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"bosisio"}="1 May 1998 16:53:18 Graham.Williams\@cmis.csiro.au"; +$M{"boxedminipage"}="19 Apr 1998 15:20:55 Graham.Williams\@cmis.csiro.au"; +$M{"breqn"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"bridge"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"brief"}="30 May 1996 11:22:14 Graham.Williams\@cmis.csiro.au"; +$M{"brushscr"}="24 Jun 1998 12:56:02 Graham.Williams\@cmis.csiro.au"; +$M{"btparse"}="20 Feb 1998 14:21:13 Graham.Williams\@cmis.csiro.au"; +$M{"c-pascal"}="3 Mar 1998 15:29:06 Graham.Williams\@cmis.csiro.au"; +$M{"c2cweb"}="29 Nov 1996 15:27:19 Graham.Williams\@cmis.csiro.au"; +$M{"calc"}="12 Aug 1998 06:27:04 Graham.Williams\@cmis.csiro.au"; +$M{"calendar"}="18 Mar 1997 13:07:53 Graham.Williams\@cmis.csiro.au"; +$M{"calendar"}="4 Feb 1998 13:36:58 Graham.Williams\@cmis.csiro.au"; +$M{"calligra"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"calrsfs"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"calrsfs"}="12 Jun 1996 09:16:09 Graham.Williams\@cmis.csiro.au"; +$M{"camel"}="5 Mar 1997 16:31:57 Graham.Williams\@cmis.csiro.au"; +$M{"cancel"}="26 May 1997 12:53:21 Graham.Williams\@cmis.csiro.au"; +$M{"capt-of"}="15 Dec 1996 19:04:36 Graham.Williams\@cmis.csiro.au"; +$M{"caption"}="12 Nov 1996 20:23:42 Graham.Williams\@cmis.csiro.au"; +$M{"carlisle"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cases"}="15 Dec 1996 19:14:30 Graham.Williams\@cmis.csiro.au"; +$M{"casyl"}="24 Feb 1999 09:19:05 Graham.Williams\@cmis.csiro.au"; +$M{"catalogue"}="22 May 1996 16:49:04 Graham.Williams\@cmis.csiro.au"; +$M{"catdoc"}="5 Nov 1998 11:47:57 Graham.Williams\@cmis.csiro.au"; +$M{"cbgreek"}="24 Oct 1998 07:42:16 Graham.Williams\@cmis.csiro.au"; +$M{"cc-pl"}="09 Jun 1998 staw\@gust.org.pl"; +$M{"ccaption"}="27 Jan 1999 09:40:41 Graham.Williams\@cmis.csiro.au"; +$M{"ccfonts"}="23 Jun 1998 15:52:05 Graham.Williams\@cmis.csiro.au"; +$M{"cchess"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"cd-cover"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"cdcover"}="10 Feb 1998 09:31:30 Graham.Williams\@cmis.csiro.au"; +$M{"cdlabeler"}="2 Jan 1999 21:57:44 Graham.Williams\@cmis.csiro.au"; +$M{"cellular"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cep"}="27 Jan 1998 16:53:11 Graham.Williams\@cmis.csiro.au"; +$M{"cep"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"changebar"}="7 Oct 1997 09:02:24 Graham.Williams\@cmis.csiro.au"; +$M{"chapterbib"}="15 Dec 1996 19:13:07 Graham.Williams\@cmis.csiro.au"; +$M{"chemcono"}="21 Oct 1996 14:28:23 Graham.Williams\@cmis.csiro.au"; +$M{"chemcono"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"chemsym"}="8 Jul 1998 08:11:58 Graham.Williams\@cmis.csiro.au"; +$M{"cheq"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"cherokee"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"chess"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"china2e"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"china2e"}="26 Feb 1998 08:51:49 Graham.Williams\@cmis.csiro.au"; +$M{"chktex"}="21 Oct 1996 13:51:58 Graham.Williams\@cmis.csiro.au"; +$M{"circ"}="18 Mar 1998 09:29:16 Graham.Williams\@cmis.csiro.au"; +$M{"circle"}="13 Oct 1998 09:09:47 Graham.Williams\@cmis.csiro.au"; +$M{"circuit-macro"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"circuit-macros"}="6 Sep 1998 05:00:37 Graham.Williams\@cmis.csiro.au"; +$M{"cirth"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cite"}="15 Dec 1996 19:10:42 Graham.Williams\@cmis.csiro.au"; +$M{"cjk-fonts"}="8 Jan 1999 08:02:11 Graham.Williams\@cmis.csiro.au"; +$M{"cjk"}="8 Jan 1999 08:01:13 Graham.Williams\@cmis.csiro.au"; +$M{"cm"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cmactex"}="9 Aug 1998 06:47:00 Graham.Williams\@cmis.csiro.au"; +$M{"cmbright"}="28 Dec 1998 09:33:43 Graham.Williams\@cmis.csiro.au"; +$M{"cmcyr"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"cmcyralt"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cmdtrack"}="22 Feb 1999 16:17:02 Graham.Williams\@cmis.csiro.au"; +$M{"cmextra"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cmpica"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"cmps"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"cmsd"}="19 Feb 1998 09:45:20 Graham.Williams\@cmis.csiro.au"; +$M{"cmtt"}="1 Jun 1996 15:43:59 Graham.Williams\@cmis.csiro.au"; +$M{"cmyk-hax"}="12 May 1997 10:23:51 Graham.Williams\@cmis.csiro.au"; +$M{"cmyk-hax"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"code128"}="7 Jun 1996 13:42:22 Graham.Williams\@cmis.csiro.au"; +$M{"codepage"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"color"}="24 Sep 1996 08:56:07 Graham.Williams\@cmis.csiro.au"; +$M{"colorsep"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"colortbl"}="24 Jun 1998 13:01:21 Graham.Williams\@cmis.csiro.au"; +$M{"comma"}="11 Feb 1998 07:46:23 Graham.Williams\@cmis.csiro.au"; +$M{"comment"}="8 Sep 1998 06:29:57 Graham.Williams\@cmis.csiro.au"; +$M{"compsci"}="21 Oct 1996 14:11:57 Graham.Williams\@cmis.csiro.au"; +$M{"concmath"}="25 Dec 1996 UV"; +$M{"concprog"}="22 Oct 1996 09:37:54 Graham.Williams\@cmis.csiro.au"; +$M{"concrete-wrap"}="27 Nov 1996 13:57:24 Graham.Williams\@cmis.csiro.au"; +$M{"concrete"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"consdiag"}="21 Jan 1999 19:26:28 Graham.Williams\@cmis.csiro.au"; +$M{"context"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"corelpak"}="21 Jan 1999 14:00:25 Graham.Williams\@cmis.csiro.au"; +$M{"count1to"}="24 Oct 1998 09:04:16 Graham.Williams\@cmis.csiro.au"; +$M{"covington"}="22 Apr 1997 14:32:07 Graham.Williams\@cmis.csiro.au"; +$M{"croatian"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"crop"}="8 Dec 1998 09:21:42 Graham.Williams\@cmis.csiro.au"; +$M{"crossword"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"crosswrd"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"csfonts"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"cslatex"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"csplain"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"cspsfonts"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"cstug"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"csx"}="12 Jul 1998 05:30:19 Graham.Williams\@cmis.csiro.au"; +$M{"cursor"}="20 Jan 1999 14:56:10 Graham.Williams\@cmis.csiro.au"; +$M{"custom-bib"}="18 Aug 1998 18:00:42 Graham.Williams\@cmis.csiro.au"; +$M{"cwebbin"}="16 Oct 1998 06:27:49 Graham.Williams\@cmis.csiro.au"; +$M{"cwebx"}="17 Feb 1999 16:44:14 Graham.Williams\@cmis.csiro.au"; +$M{"cwpuzzle"}="28 Nov 1996 10:09:18 Graham.Williams\@cmis.csiro.au"; +$M{"cyrtug"}="8 Oct 1998 11:51:48 Graham.Williams\@cmis.csiro.au"; +$M{"dancers"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dante-src"}="11 Feb 1998 07:50:55 Graham.Williams\@cmis.csiro.au"; +$M{"dates"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"dblfont"}="1 May 1998 16:53:44 Graham.Williams\@cmis.csiro.au"; +$M{"dbprocess"}="2 Jan 1999 21:55:59 Graham.Williams\@cmis.csiro.au"; +$M{"dc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dc"}="2 Jun 1996 11:09:21 Graham.Williams\@cmis.csiro.au"; +$M{"dco"}="16 Aug 1996 14:14:54 Graham.Williams\@cmis.csiro.au"; +$M{"dcounter"}="28 Dec 1998 09:21:00 Graham.Williams\@cmis.csiro.au"; +$M{"default"}="18 Jul 1998 06:43:35 Graham.Williams\@cmis.csiro.au"; +$M{"deleq"}="8 Jul 1998 08:12:25 Graham.Williams\@cmis.csiro.au"; +$M{"devanagari"}="7 Dec 1998 05:46:30 Graham.Williams\@cmis.csiro.au"; +$M{"dialogl"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dinbrief"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dinbrief"}="4 Nov 1996 09:56:05 Graham.Williams\@cmis.csiro.au"; +$M{"directory"}="10 Mar 1998 05:30:54 Graham.Williams\@cmis.csiro.au"; +$M{"dn2"}="13 Mar 1998 09:10:15 Graham.Williams\@cmis.csiro.au"; +$M{"doc"}="19 Aug 1996 22:19:13 Graham.Williams\@cmis.csiro.au"; +$M{"dotseqn"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"doublestroke"}="21 Oct 1996 13:56:41 Graham.Williams\@cmis.csiro.au"; +$M{"draftcopy"}="21 May 1996 12:52:54 Graham.Williams\@cmis.csiro.au"; +$M{"dratex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dropcaps"}="19 Jun 1996 13:38:04 Graham.Williams\@cmis.csiro.au"; +$M{"dropping"}="9 Jul 1998 06:27:48 Graham.Williams\@cmis.csiro.au"; +$M{"duerer"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"dvgtk"}="29 Apr 1997 14:45:04 Graham.Williams\@cmis.csiro.au"; +$M{"dvi2tty"}="7 Jun 1996 20:12:43 Graham.Williams\@cmis.csiro.au"; +$M{"dviconcat"}="1 Nov 1996 08:10:15 Graham.Williams\@cmis.csiro.au"; +$M{"dvicopy"}="= {1 Nov 1996 08:30:05 Graham.Williams\@cmis.csiro.au"; +$M{"dviljk"}="6 Apr 1998 06:10:01 Graham.Williams\@cmis.csiro.au"; +$M{"dvipaste"}="23 Feb 1998 15:46:09 Graham.Williams\@cmis.csiro.au"; +$M{"dvipdfm"}="2 Dec 1998 05:56:54 Graham.Williams\@cmis.csiro.au"; +$M{"dvips-os2"}="21 Jan 1999 13:57:52 Graham.Williams\@cmis.csiro.au"; +$M{"dvips-shell"}="5 Mar 1998 22:29:41 Graham.Williams\@cmis.csiro.au"; +$M{"dvips"}="13 May 1997 09:51:53 Graham.Williams\@cmis.csiro.au"; +$M{"dvipsdoc"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"dvipsk"}="6 Apr 1998 05:56:12 Graham.Williams\@cmis.csiro.au"; +$M{"ean"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ean"}="7 Jun 1996 13:44:26 Graham.Williams\@cmis.csiro.au"; +$M{"easy"}="18 Aug 1998 18:24:49 Graham.Williams\@cmis.csiro.au"; +$M{"easybib"}="7 Mar 1997 16:54:36 Graham.Williams\@cmis.csiro.au"; +$M{"easybmat"}="18 Aug 1998 18:27:38 Graham.Williams\@cmis.csiro.au"; +$M{"easyeqn"}="18 Nov 1997 15:21:55 Graham.Williams\@cmis.csiro.au"; +$M{"easymat"}="18 Aug 1998 18:28:31 Graham.Williams\@cmis.csiro.au"; +$M{"easytable"}="18 Aug 1998 18:28:50 Graham.Williams\@cmis.csiro.au"; +$M{"easyvector"}="18 Nov 1997 15:22:16 Graham.Williams\@cmis.csiro.au"; +$M{"ec-plain"}="21 Apr 1998 08:38:32 Graham.Williams\@cmis.csiro.au"; +$M{"ec"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"ecc"}="11 Dec 1998 08:59:53 Graham.Williams\@cmis.csiro.au"; +$M{"ecltree"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"eco"}="22 Jul 1998 09:13:53 Graham.Williams\@cmis.csiro.au"; +$M{"ecpk"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"edmac"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"eepic"}="28 Dec 1998 09:32:41 Graham.Williams\@cmis.csiro.au"; +$M{"egplot"}="9 Jul 1998 06:27:09 Graham.Williams\@cmis.csiro.au"; +$M{"eiad"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"eijkhout"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"elsevier"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"elvish"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"emp"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"emp"}="26 Feb 1998 08:53:14 Graham.Williams\@cmis.csiro.au"; +$M{"emtex-os2"}="31 Jul 1998 10:16:40 Graham.Williams\@cmis.csiro.au"; +$M{"emtex"}="31 Jul 1998 10:16:40 Graham.Williams\@cmis.csiro.au"; +$M{"emtexgi"}="12 Jan 1997 11:32:36 Graham.Williams\@cmis.csiro.au"; +$M{"emtextds"}="30 Sep 1998 07:58:58 Graham.Williams\@cmis.csiro.au"; +$M{"emulateapj"}="27 Nov 1997 17:06:10 Graham.Williams\@cmis.csiro.au"; +$M{"encodings"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"endfloat"}="21 Jun 1996 14:52:55 Graham.Williams\@cmis.csiro.au"; +$M{"endnotes"}="3 Sep 1996 09:20:05 Graham.Williams\@cmis.csiro.au"; +$M{"endnotes"}="4 Feb 1998 13:33:16 Graham.Williams\@cmis.csiro.au"; +$M{"engwar"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"enumerate"}="22 Jul 1998 05:47:30 Graham.Williams\@cmis.csiro.au"; +$M{"envbig"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"envlab"}="17 Jul 1997 14:37:23 Graham.Williams\@cmis.csiro.au"; +$M{"epic"}="24 Jul 1998 06:18:39 Graham.Williams\@cmis.csiro.au"; +$M{"epigraph"}="1 Dec 1998 12:42:01 Graham.Williams\@cmis.csiro.au"; +$M{"eplain"}="19 Aug 1996 22:10:25 Graham.Williams\@cmis.csiro.au"; +$M{"epmtfe"}="23 Feb 1999 15:01:08 Graham.Williams\@cmis.csiro.au"; +$M{"epsfx"}="09 Jun 1998 staw\@gust.org.pl"; +$M{"epslatex"}="9 Feb 1998 09:22:51 Graham.Williams\@cmis.csiro.au"; +$M{"eqname"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"esieecv"}="26 Feb 1998 08:54:52 Graham.Williams\@cmis.csiro.au"; +$M{"esieecv"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"esindex"}="10 Nov 1998 10:40:44 Graham.Williams\@cmis.csiro.au"; +$M{"eso-pic"}="22 Jul 1998 06:17:37 Graham.Williams\@cmis.csiro.au"; +$M{"et"}="24 Feb 1998 13:45:45 Graham.Williams\@cmis.csiro.au"; +$M{"etexbase"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"ethiop"}="13 Dec 1998 15:02:18 Graham.Williams\@cmis.csiro.au"; +$M{"euler"}="5 Jun 1996 10:03:48 Graham.Williams\@cmis.csiro.au"; +$M{"euro"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"eurofont"}="31 Jan 1999 07:41:02 Graham.Williams\@cmis.csiro.au"; +$M{"europs"}="21 Jan 1999 13:04:27 Graham.Williams\@cmis.csiro.au"; +$M{"eurosans"}="27 Jan 1999 08:25:26 Graham.Williams\@cmis.csiro.au"; +$M{"eurosym"}="6 Jan 1999 07:26:11 Graham.Williams\@cmis.csiro.au"; +$M{"everysel"}="10 Aug 1998 09:05:43 Graham.Williams\@cmis.csiro.au"; +$M{"everyshi"}="10 Aug 1998 09:20:24 Graham.Williams\@cmis.csiro.au"; +$M{"exam"}="16 Dec 1998 08:31:47 Graham.Williams\@cmis.csiro.au"; +$M{"examdesign"}="20 Jan 1998 22:03:03 Graham.Williams\@cmis.csiro.au"; +$M{"exams"}="29 May 1996 13:09:04 Graham.Williams\@cmis.csiro.au"; +$M{"excalibur"}="8 Nov 1998 07:01:25 Graham.Williams\@cmis.csiro.au"; +$M{"expdlist"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"expl3"}="1 Jun 1998 12:09:40 Graham.Williams\@cmis.csiro.au"; +$M{"export"}="12 Jan 1997 11:45:06 Graham.Williams\@cmis.csiro.au"; +$M{"export"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"exscale"}="12 Jun 1996 06:53:11 Graham.Williams\@cmis.csiro.au"; +$M{"extdash"}="28 Dec 1998 09:21:00 Graham.Williams\@cmis.csiro.au"; +$M{"fancybox"}="2 Mar 1998 09:20:57 Graham.Williams\@cmis.csiro.au"; +$M{"fancyhdr"}="9 Sep 1998 06:51:16 Graham.Williams\@cmis.csiro.au"; +$M{"fancyref"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"fancyvrb"}="1 Apr 1998 06:01:31 Graham.Williams\@cmis.csiro.au"; +$M{"faq"}="1 Jul 1998 10:31:39 Graham.Williams\@cmis.csiro.au"; +$M{"fax"}="13 Dec 1996 09:32:37 Graham.Williams\@cmis.csiro.au"; +$M{"fc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"fc"}="5 Mar 1998 22:19:31 Graham.Williams\@cmis.csiro.au"; +$M{"fepslatex"}="6 Nov 1998 05:54:05 Graham.Williams\@cmis.csiro.au"; +$M{"feynmf"}="30 May 1996 06:34:12 Graham.Williams\@cmis.csiro.au"; +$M{"fihyph"}=" from fihyph.tex to make the Finnish accented"; +$M{"fihyph"}="6 Nov 1998 06:34:36 Graham.Williams\@cmis.csiro.au"; +$M{"finbib"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"finplain"}="29 Jun 1998 10:04:25 Graham.Williams\@cmis.csiro.au"; +$M{"fix2col"}="19 Aug 1998 16:52:30 Graham.Williams\@cmis.csiro.au"; +$M{"fixfloat"}="23 May 1997 09:28:11 Graham.Williams\@cmis.csiro.au"; +$M{"flabels"}="21 Jul 1997 09:34:31 Graham.Williams\@cmis.csiro.au"; +$M{"flatex"}="24 Sep 1996 08:59:43 Graham.Williams\@cmis.csiro.au"; +$M{"flatten"}="18 Jun 1996 09:36:48 Graham.Williams\@cmis.csiro.au"; +$M{"float"}="25 May 1996 07:26:32 Graham.Williams\@cmis.csiro.au"; +$M{"floatflt"}="8 Jul 1998 08:16:33 Graham.Williams\@cmis.csiro.au"; +$M{"fltpage"}="19 Nov 1998 05:29:33 Graham.Williams\@cmis.csiro.au"; +$M{"fncychap"}=" Each can be using a set of simple commands."; +$M{"fncychap"}="13 Dec 1996 08:41:01 Graham.Williams\@cmis.csiro.au"; +$M{"fnpara"}="10 Sep 1996 09:23:00 Graham.Williams\@cmis.csiro.au"; +$M{"foilhtml"}="19 Feb 1998 09:39:43 Graham.Williams\@cmis.csiro.au"; +$M{"foiltex"}="15 Aug 1998 07:01:05 Graham.Williams\@cmis.csiro.au"; +$M{"fontinst"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"fontmisc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"fontname"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"fonts"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"footbib"}="19 Jun 1997 11:31:23 Graham.Williams\@cmis.csiro.au"; +$M{"footmisc"}="22 Jun 1998 16:47:47 Graham.Williams\@cmis.csiro.au"; +$M{"footnpag"}="10 Sep 1996 09:26:38 Graham.Williams\@cmis.csiro.au"; +$M{"formats"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"formlett"}="27 May 1997 09:39:35 Graham.Williams\@cmis.csiro.au"; +$M{"formula"}="18 Jun 1998 10:24:39 Graham.Williams\@cmis.csiro.au"; +$M{"fourtex"}="21 Nov 1998 05:32:50 Graham.Williams\@cmis.csiro.au"; +$M{"fp"}="4 Nov 1996 09:45:28 Graham.Williams\@cmis.csiro.au"; +$M{"freefonts"}="10 Sep 1998 18:50:47 Graham.Williams\@cmis.csiro.au"; +$M{"freetype"}="2 Jan 1999 22:37:14 Graham.Williams\@cmis.csiro.au"; +$M{"french"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"fribrief"}="20 Jan 1998 21:50:51 Graham.Williams\@cmis.csiro.au"; +$M{"ftetx"}="24 Feb 1998 13:52:42 Graham.Williams\@cmis.csiro.au"; +$M{"ftn"}="10 Sep 1996 09:43:47 Graham.Williams\@cmis.csiro.au"; +$M{"ftnright"}="19 Aug 1996 22:20:55 Graham.Williams\@cmis.csiro.au"; +$M{"fullblck"}="18 Nov 1998 09:21:36 Graham.Williams\@cmis.csiro.au"; +$M{"fullpict"}="18 Feb 1999 10:39:07 Graham.Williams\@cmis.csiro.au"; +$M{"fundus"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"funnelweb"}="25 Jun 1996 12:38:19 Graham.Williams\@cmis.csiro.au"; +$M{"futhark"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"g-brief"}="20 Feb 1998 14:17:49 Graham.Williams\@cmis.csiro.au"; +$M{"gb4e"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"genealogy"}="31 May 1996 14:10:08 Graham.Williams\@cmis.csiro.au"; +$M{"genmisc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"gentl-gr"}="29 Jan 1999 09:40:36 Graham.Williams\@cmis.csiro.au"; +$M{"geometry"}="8 Apr 1998 14:26:57 Graham.Williams\@cmis.csiro.au"; +$M{"geomsty"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"geomsty"}="26 Feb 1998 08:58:15 Graham.Williams\@cmis.csiro.au"; +$M{"german"}="15 Jul 1998 07:33:39 Graham.Williams\@cmis.csiro.au"; +$M{"germbib"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"germdoc"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"getrefs"}="12 Nov 1998 20:22:10 Graham.Williams\@cmis.csiro.au"; +$M{"ghostscript"}="20 May 1997 14:12:34 Graham.Williams\@cmis.csiro.au"; +$M{"ghostview-mac"}="27 Mar 1998 05:51:48 Graham.Williams\@cmis.csiro.au"; +$M{"ghyphen"}="8 Jul 1998 08:55:23 Graham.Williams\@cmis.csiro.au"; +$M{"gleitobjekte"}="17 Feb 1998 09:09:23 Graham.Williams\@cmis.csiro.au"; +$M{"gloss"}="19 Apr 1998 15:58:24 Graham.Williams\@cmis.csiro.au"; +$M{"glosstex"}="25 Feb 1998 09:12:56 Graham.Williams\@cmis.csiro.au"; +$M{"gn-logic"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"gnhyph"}="16 Sep 1998 09:18:43 Graham.Williams\@cmis.csiro.au"; +$M{"gnuplot-ps"}="30 May 1996 11:22:14 Graham.Williams\@cmis.csiro.au"; +$M{"go"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"gothic"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"graphfig"}="1 May 1998 16:54:18 Graham.Williams\@cmis.csiro.au"; +$M{"graphics"}="1 Nov 1996 08:16:13 Graham.Williams\@cmis.csiro.au"; +$M{"graphicx"}="12 Jun 1996 06:47:22 Graham.Williams\@cmis.csiro.au"; +$M{"gray"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"grfguide"}="11 Jun 1997 16:17:05 Graham.Williams\@cmis.csiro.au"; +$M{"grfpaste"}="23 Feb 1998 15:39:11 Graham.Williams\@cmis.csiro.au"; +$M{"grnumalt"}="23 Feb 1998 15:49:56 Graham.Williams\@cmis.csiro.au"; +$M{"gsftopk"}="12 Nov 1996 09:08:05 Graham.Williams\@cmis.csiro.au"; +$M{"gustlib"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"gustlib"}="March 1998, s.rahtz\@elsevier.co.uk"; +$M{"hands"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"hanging"}="11 Dec 1998 05:38:02 Graham.Williams\@cmis.csiro.au"; +$M{"harpoon"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"harvmac"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"hellas"}="10 Mar 1998 06:00:34 Graham.Williams\@cmis.csiro.au"; +$M{"here"}="25 May 1996 07:24:51 Graham.Williams\@cmis.csiro.au"; +$M{"hh"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"hilowres"}="21 Jan 1999 19:31:07 Graham.Williams\@cmis.csiro.au"; +$M{"histogr"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"hlatex"}="28 May 1997 16:04:14 Graham.Williams\@cmis.csiro.au"; +$M{"hoekwater"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"html"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"html2latex"}="30 Sep 1998 07:55:02 Graham.Williams\@cmis.csiro.au"; +$M{"huhyph"}="5 Nov 1998 05:50:17 Graham.Williams\@cmis.csiro.au"; +$M{"hvdashln"}="13 May 1997 09:36:00 Graham.Williams\@cmis.csiro.au"; +$M{"hyper"}="30 Aug 1997 12:04:32 Graham.Williams\@cmis.csiro.au"; +$M{"hyperlatex"}="27 Dec 1998 20:25:24 Graham.Williams\@cmis.csiro.au"; +$M{"hyperref"}="17 Feb 1999 16:41:40 Graham.Williams\@cmis.csiro.au"; +$M{"hyphenat"}="22 Feb 1999 16:42:36 Graham.Williams\@cmis.csiro.au"; +$M{"hypht1"}="3 May 1997 20:57:53 Graham.Williams\@cmis.csiro.au"; +$M{"ibm"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"idealfonts"}="20 Feb 1998 14:34:54 Graham.Williams\@cmis.csiro.au"; +$M{"ifacmtg"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"imac"}="24 Sep 1998 05:27:35 Graham.Williams\@cmis.csiro.au"; +$M{"indxcite"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"indxcite"}="24 Jun 1996 15:17:51 Graham.Williams\@cmis.csiro.au"; +$M{"info"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"inhyph"}="7 Oct 1997 08:54:26 Graham.Williams\@cmis.csiro.au"; +$M{"inputenc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"insbox"}="25 Feb 1998 09:20:32 Graham.Williams\@cmis.csiro.au"; +$M{"ipa"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"isostds"}="21 Oct 1998 09:38:15 Graham.Williams\@cmis.csiro.au"; +$M{"ithyph"}="4 Aug 1998 05:39:19 Graham.Williams\@cmis.csiro.au"; +$M{"izhitsa"}="30 Jan 1999 06:34:27 Graham.Williams\@cmis.csiro.au"; +$M{"jadetex"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"javatex"}="8 Oct 1998 12:03:35 Graham.Williams\@cmis.csiro.au"; +$M{"jknappen"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"jknappen"}="10 Mar 1998 09:10:20 Graham.Williams\@cmis.csiro.au"; +$M{"jsmisc"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"jspell"}="= {5 Nov 1998 15:43:30 Graham.Williams\@cmis.csiro.au"; +$M{"jura"}="11 Jul 1998 17:22:01 Graham.Williams\@cmis.csiro.au"; +$M{"kalendar"}="27 Mar 1998 05:44:58 Graham.Williams\@cmis.csiro.au"; +$M{"kalender"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"karnaugh"}="24 Sep 1998 05:26:10 Graham.Williams\@cmis.csiro.au"; +$M{"kdgreek"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"kix"}="19 Sep 1998 08:58:56 Graham.Williams\@cmis.csiro.au"; +$M{"kluwer"}="31 May 1997 20:08:21 Graham.Williams\@cmis.csiro.au"; +$M{"knst"}="21 Oct 1996 13:44:44 Graham.Williams\@cmis.csiro.au"; +$M{"knuth"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"koi8"}="21 Oct 1996 13:48:21 Graham.Williams\@cmis.csiro.au"; +$M{"koma-script"}="30 Nov 1998 09:41:00 Graham.Williams\@cmis.csiro.au"; +$M{"kpathsea"}="3 Feb 1999 10:29:24 Graham.Williams\@cmis.csiro.au"; +$M{"kuvio"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"lamstex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"lated"}="11 Feb 1998 07:41:10 Graham.Williams\@cmis.csiro.au"; +$M{"latex"}="2 Jul 1998 12:56:15 Graham.Williams\@cmis.csiro.au"; +$M{"latex209"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"latex209"}="4 Jul 1996 10:07:05 Graham.Williams\@cmis.csiro.au"; +$M{"latex2e"}="4 Jul 1996 09:53:38 Graham.Williams\@cmis.csiro.au"; +$M{"latex2html"}="8 Jul 1996 23:00:59 Graham.Williams\@cmis.csiro.au"; +$M{"latex2man"}="9 Sep 1998 05:33:13 Graham.Williams\@cmis.csiro.au"; +$M{"latex2rtf"}="17 Nov 1998 08:56:23 Graham.Williams\@cmis.csiro.au"; +$M{"latexcad"}="20 Mar 1998 09:32:43 Graham.Williams\@cmis.csiro.au"; +$M{"latexfonts"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"latexmk"}="12 Jan 1997 11:30:28 Graham.Williams\@cmis.csiro.au"; +$M{"latexn"}="27 Nov 1997 17:04:03 Graham.Williams\@cmis.csiro.au"; +$M{"latin2jk"}="7 Oct 1997 08:56:04 Graham.Williams\@cmis.csiro.au"; +$M{"layout"}="13 Aug 1998 05:42:38 Graham.Williams\@cmis.csiro.au"; +$M{"layouts"}="31 Jan 1999 06:43:57 Graham.Williams\@cmis.csiro.au"; +$M{"leaflet"}="30 Sep 1998 08:20:21 Graham.Williams\@cmis.csiro.au"; +$M{"leftidx"}="4 Feb 1998 13:16:00 Graham.Williams\@cmis.csiro.au"; +$M{"letter"}="6 Nov 1998 13:26:58 Graham.Williams\@cmis.csiro.au"; +$M{"lettrine"}="25 Mar 1998 09:11:24 Graham.Williams\@cmis.csiro.au"; +$M{"levy"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"lexikon"}="1 Apr 1998 06:05:45 Graham.Williams\@cmis.csiro.au"; +$M{"lgreek"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"lgrind-win32"}="24 Mar 1998 11:41:55 Graham.Williams\@cmis.csiro.au"; +$M{"lgrind"}="5 Aug 1998 06:33:28 Graham.Williams\@cmis.csiro.au"; +$M{"lh"}="2 Oct 1998 07:20:00 Graham.Williams\@cmis.csiro.au"; +$M{"lhcyr"}="21 Jan 1999 19:44:44 Graham.Williams\@cmis.csiro.au"; +$M{"lilypond"}="21 Oct 1998 09:41:28 Graham.Williams\@cmis.csiro.au"; +$M{"lineno"}="20 Jan 1999 14:57:13 Graham.Williams\@cmis.csiro.au"; +$M{"linguex"}="1 Jun 1998 11:57:34 Graham.Williams\@cmis.csiro.au"; +$M{"lintex"}="16 Jun 1998 10:19:01 Graham.Williams\@cmis.csiro.au"; +$M{"lips"}="21 Oct 1996 10:30:25 Graham.Williams\@cmis.csiro.au"; +$M{"listings"}="11 Nov 1998 05:44:14 Graham.Williams\@cmis.csiro.au"; +$M{"lkort"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"llncs"}="4 Oct 1996 08:48:06 Graham.Williams\@cmis.csiro.au"; +$M{"localloc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"logic"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"logo-ps"}="25 Jul 1998 06:24:28 Graham.Williams\@cmis.csiro.au"; +$M{"lollipop"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"longtable"}="21 Jun 1996 08:12:11 Graham.Williams\@cmis.csiro.au"; +$M{"lscape"}="7 Nov 1996 19:36:31 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-english"}="21 Jan 1999 19:27:28 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-finnish"}="21 Jan 1999 19:12:55 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-french"}="5 Feb 1998 09:10:02 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-german"}="30 Jan 1999 07:28:37 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-mongolian"}="30 Jan 1999 07:28:04 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-polish"}="25 Feb 1999 14:09:31 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-russian"}="13 Oct 1998 09:11:31 Graham.Williams\@cmis.csiro.au"; +$M{"lshort-spanish"}="21 Jan 1999 19:12:55 Graham.Williams\@cmis.csiro.au"; +$M{"ltoh"}="8 Apr 1998 09:41:19 Graham.Williams\@cmis.csiro.au"; +$M{"ltx2rtf"}="28 Dec 1998 09:11:53 Graham.Williams\@cmis.csiro.au"; +$M{"ltx2x"}="26 Jan 1997 10:24:09 Graham.Williams\@cmis.csiro.au"; +$M{"ltxbase"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ltxinput"}="26 Nov 1996 16:30:38 Graham.Williams\@cmis.csiro.au"; +$M{"ltxmisc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ltxsrc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"lucida"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"lucold"}="4 Feb 1998 13:23:16 Graham.Williams\@cmis.csiro.au"; +$M{"lw35nfsx"}="28 Jul 1998 05:36:21 Graham.Williams\@cmis.csiro.au"; +$M{"ly1"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"m-pictex"}="24 Feb 1998 13:55:54 Graham.Williams\@cmis.csiro.au"; +$M{"macbibtex"}="7 Nov 1996 13:35:35 Graham.Williams\@cmis.csiro.au"; +$M{"magaz"}="17 Feb 1999 17:33:54 Graham.Williams\@cmis.csiro.au"; +$M{"mailing"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"makeindex"}="23 May 1997 13:18:35 Graham.Williams\@cmis.csiro.au"; +$M{"malayalam"}="23 Jun 1998 15:49:27 Graham.Williams\@cmis.csiro.au"; +$M{"malvern"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"manyfoot"}="28 Dec 1998 09:24:33 Graham.Williams\@cmis.csiro.au"; +$M{"mapcodes"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"maple"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"margbib"}="24 Feb 1998 13:20:27 Graham.Williams\@cmis.csiro.au"; +$M{"marvosym-mac"}="5 Nov 1998 15:47:46 Graham.Williams\@cmis.csiro.au"; +$M{"marvosym"}="21 Jul 1998 05:27:14 Graham.Williams\@cmis.csiro.auy"; +$M{"mathcmd"}="abstract Provides a slightly version of the commands for"; +$M{"mathcmd"}="1 May 1998 16:54:49 Graham.Williams\@cmis.csiro.au"; +$M{"mathcomp"}="10 Sep 1998 18:44:41 Graham.Williams\@cmis.csiro.au"; +$M{"mathematica"}="20 Jan 1998 22:00:24 Graham.Williams\@cmis.csiro.au"; +$M{"mathenv"}="1 May 1998 16:55:25 Graham.Williams\@cmis.csiro.au"; +$M{"mathinst"}="10 Sep 1998 18:54:03 Graham.Williams\@cmis.csiro.au"; +$M{"mathkit"}="4 Feb 1998 13:20:21 Graham.Williams\@cmis.csiro.au"; +$M{"mathpple"}="21 Jan 1999 19:34:23 Graham.Williams\@cmis.csiro.au"; +$M{"mathrsfs"}="27 Mar 1998 05:58:42 Graham.Williams\@cmis.csiro.au"; +$M{"mathtime"}="29 May 1996 10:39:52 Graham.Williams\@cmis.csiro.au"; +$M{"mcite"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"mdwtools"}="16 Jun 1998 10:36:35 Graham.Williams\@cmis.csiro.au"; +$M{"meta-mode"}="1 May 1997 10:10:22 Graham.Williams\@cmis.csiro.au"; +$M{"metapost"}="25 Jun 1996 10:58:40 Graham.Williams\@cmis.csiro.au"; +$M{"method"}="21 Jan 1999 07:58:21 Graham.Williams\@cmis.csiro.au"; +$M{"mex"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"mf-ps"}="4 Feb 1998 13:18:00 Graham.Williams\@cmis.csiro.au"; +$M{"mf-ps"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"mf2pt3"}="2 Jan 1999 21:45:21 Graham.Williams\@cmis.csiro.au"; +$M{"mf2tex"}="3 May 1997 21:09:52 Graham.Williams\@cmis.csiro.au"; +$M{"mff"}="24 Oct 1996 10:27:31 Graham.Williams\@cmis.csiro.au"; +$M{"mff"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"mflogo"}="25 Dec 1996 UV"; +$M{"mfnfss"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"mfpic"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"mftoeps"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"mhs"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"midnight"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"mif2xfig"}="20 Nov 1996 11:23:52 Graham.Williams\@cmis.csiro.au"; +$M{"miktex-axp"}="25 Sep 1997 14:01:19 Graham.Williams\@cmis.csiro.au"; +$M{"miktex"}="23 Feb 1999 16:12:25 Graham.Williams\@cmis.csiro.au"; +$M{"miniltx"}="20 May 1996 10:13:07 Graham.Williams\@cmis.csiro.au"; +$M{"minitoc"}="12 Jan 1997 11:20:36 Graham.Williams\@cmis.csiro.au"; +$M{"mirr"}="12 May 1997 10:27:47 Graham.Williams\@cmis.csiro.au"; +$M{"mirr"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"miscpk"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"mitpress"}="19 Sep 1998 10:11:07 Graham.Williams\@cmis.csiro.au"; +$M{"mkpic"}="2 Jan 1999 21:52:06 Graham.Williams\@cmis.csiro.au"; +$M{"mla"}="28 Apr 1997 09:48:03 Graham.Williams\@cmis.csiro.au"; +$M{"mlbib"}="5 Nov 1996 09:15:29 Graham.Williams\@cmis.csiro.au"; +$M{"mltex"}="28 Dec 1998 09:15:09 Graham.Williams\@cmis.csiro.au"; +$M{"mmtools"}="23 Jul 1997 09:16:45 Graham.Williams\@cmis.csiro.au"; +$M{"mnras"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"modes"}="11 Aug 1998 05:29:08 Graham.Williams\@cmis.csiro.au"; +$M{"monotype"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"monster"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"montex"}="29 Jan 1999 09:53:15 Graham.Williams\@cmis.csiro.au"; +$M{"morehelp"}="19 Feb 1998 09:36:53 Graham.Williams\@cmis.csiro.au"; +$M{"moresize"}="17 Jul 1997 14:08:56 Graham.Williams\@cmis.csiro.au"; +$M{"moreverb"}="29 May 1996 11:58:07 Graham.Williams\@cmis.csiro.au"; +$M{"moreverb"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"morse"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"morse"}="26 Feb 1998 09:08:33 Graham.Williams\@cmis.csiro.au"; +$M{"mpattern"}="30 Sep 1998 11:00:52 Graham.Williams\@cmis.csiro.au"; +$M{"mpfnmark"}="13 Dec 1996 08:30:22 Graham.Williams\@cmis.csiro.au"; +$M{"mpfnmark"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"ms"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"mslapa"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"mslapa"}="12 Jul 1996 10:06:59 Graham.Williams\@cmis.csiro.au"; +$M{"mt11p"}="14 Feb 1997 09:21:04 Graham.Williams\@cmis.csiro.au"; +$M{"mtbe"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"multenum"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"multicol"}="21 Dec 1998 13:35:30 Graham.Williams\@cmis.csiro.au"; +$M{"multido"}="19 Mar 1998 10:41:51 Graham.Williams\@cmis.csiro.au"; +$M{"multirow"}="25 Nov 1998 06:06:17 Graham.Williams\@cmis.csiro.au"; +$M{"multitoc"}="8 Sep 1998 05:46:30 Graham.Williams\@cmis.csiro.au"; +$M{"musictex"}="27 Nov 1996 13:59:30 Graham.Williams\@cmis.csiro.au"; +$M{"musixtex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"mxedruli"}="25 Jul 1998 06:28:00 Graham.Williams\@cmis.csiro.au"; +$M{"mylatex"}="1 May 1998 17:00:39 Graham.Williams\@cmis.csiro.au"; +$M{"myletter"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"nassflow"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"natbib"}="17 Jul 1998 16:12:29 Graham.Williams\@cmis.csiro.au"; +$M{"nb4latex"}="21 Nov 1996 16:56:44 Graham.Williams\@cmis.csiro.au"; +$M{"nccfoots"}="28 Dec 1998 09:25:59 Graham.Williams\@cmis.csiro.au"; +$M{"ncctools"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"netpbm-win"}="10 Sep 1998 18:37:04 Graham.Williams\@cmis.csiro.au"; +$M{"newsletr"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"newthm"}="abstract A version of the theorem-style which provides"; +$M{"newthm"}="14 Feb 1997 09:30:36 Graham.Williams\@cmis.csiro.au"; +$M{"newthm"}="13 May 1997 10:24:58 Robin Fairbairns "; +$M{"niceframe"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"nomencl"}="27 May 1997 09:24:37 Graham.Williams\@cmis.csiro.au"; +$M{"norbib"}="2 Jul 1998 12:55:09 Graham.Williams\@cmis.csiro.au"; +$M{"nrc"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"ntemacs"}="19 Oct 1998 06:03:28 Graham.Williams\@cmis.csiro.au"; +$M{"ntgclass"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ntheorem"}="11 Dec 1998 05:44:07 Graham.Williams\@cmis.csiro.au"; +$M{"numline"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"numline"}="28 May 1996 16:02:33 Graham.Williams\@cmis.csiro.au"; +$M{"objectz"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"oca"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"ocr-a"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ocr-a"}="18 May 1996 14:10:28 Graham.Williams\@cmis.csiro.au"; +$M{"ocr-b"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ocr-b"}="18 May 1996 14:10:28 Graham.Williams\@cmis.csiro.au"; +$M{"ogham"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ogonek"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"oldstyle"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"omega"}="11 Feb 1998 08:05:12 Graham.Williams\@cmis.csiro.au"; +$M{"omegabase"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"omegafonts"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"onepagem"}="18 Jul 1997 14:23:48 Graham.Williams\@cmis.csiro.au"; +$M{"oryia"}="1 Jul 1998 10:29:59 Graham.Williams\@cmis.csiro.au"; +$M{"os2tex"}="3 Jan 1999 10:42:23 Graham.Williams\@cmis.csiro.au"; +$M{"osmanian"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ot2cyr"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"overcite"}="15 Dec 1996 19:11:52 Graham.Williams\@cmis.csiro.au"; +$M{"overpic"}="27 Nov 1997 17:00:55 Graham.Williams\@cmis.csiro.au"; +$M{"overword"}="13 Dec 1996 08:37:08 Graham.Williams\@cmis.csiro.au"; +$M{"overword"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"oxford"}="11 Jan 1998 20:39:42 Graham.Williams\@cmis.csiro.au"; +$M{"oztex-german"}="25 Mar 1998 09:10:39 Graham.Williams\@cmis.csiro.au"; +$M{"oztex"}="27 Dec 1998 20:16:46 Graham.Williams\@cmis.csiro.au"; +$M{"pageno"}="23 Sep 1998 09:40:33 Graham.Williams\@cmis.csiro.au"; +$M{"pandey"}="30 Sep 1998 07:56:09 Graham.Williams\@cmis.csiro.au"; +$M{"pandora"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"paper"}="20 May 1996 06:33:20 Graham.Williams\@cmis.csiro.au"; +$M{"paradissa"}="14 Jun 1996 16:18:31 Graham.Williams\@cmis.csiro.au"; +$M{"paralist"}="21 Jan 1999 19:49:45 Graham.Williams\@cmis.csiro.au"; +$M{"patch"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"path"}="25 Jun 1996 09:13:30 Graham.Williams\@cmis.csiro.au"; +$M{"pawpict"}="10 Feb 1998 09:32:45 Graham.Williams\@cmis.csiro.au"; +$M{"pb-diagram"}="30 Nov 1998 13:48:18 Graham.Williams\@cmis.csiro.au"; +$M{"pcfonts"}="21 Oct 1996 13:32:14 Graham.Williams\@cmis.csiro.au"; +$M{"pdcmac"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"pdftex-djgpp"}="23 Feb 1998 15:51:42 Graham.Williams\@cmis.csiro.au"; +$M{"pdftex"}="13 Aug 1998 05:51:13 Graham.Williams\@cmis.csiro.au"; +$M{"permute"}="28 Dec 1998 09:09:59 Graham.Williams\@cmis.csiro.au"; +$M{"pf2afm"}="18 Jun 1998 10:13:25 Graham.Williams\@cmis.csiro.au"; +$M{"phonetic"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"phppcf"}="14 Jun 1996 12:35:55 Graham.Williams\@cmis.csiro.au"; +$M{"physe"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"phyzzx"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"pictex"}="24 Feb 1998 13:53:44 Graham.Williams\@cmis.csiro.au"; +$M{"piff"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"piq"}="ctan fonts/okuda//"; +$M{"piq"}="17 Nov 1996 11:28:28 Graham.Williams\@cmis.csiro.au"; +$M{"pkfind"}=" utility to understand those specials, and to act"; +$M{"pkfind"}="3 Mar 1998 15:39:16 Graham.Williams\@cmis.csiro.au"; +$M{"pl-mf"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"pl-mf"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"pl-qx"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"pl"}="25 Feb 1998, s.rahtz\@elsevier.co.uk"; +$M{"plainmisc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"plaintex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"plari"}="6 Nov 1998 06:24:51 Graham.Williams\@cmis.csiro.au"; +$M{"platex"}="18 Jun 1998 10:22:09 Graham.Williams\@cmis.csiro.au"; +$M{"plcalendar"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"plfonts"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"plgraph"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"plpsfont"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"pmcstex"}="27 Nov 1997 17:12:37 Graham.Williams\@cmis.csiro.au"; +$M{"pmgraph"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"poligraf"}="17 Nov 1996 11:34:19 Graham.Williams\@cmis.csiro.au"; +$M{"poligraf"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"poligraf"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"polish"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"polyglot"}="12 Sep 1997 10:32:34 Graham.Williams\@cmis.csiro.au"; +$M{"ppchtex"}="15 Jan 1997 09:54:55 Graham.Williams\@cmis.csiro.au"; +$M{"prelim2e"}="10 Aug 1998 09:16:01 Graham.Williams\@cmis.csiro.au"; +$M{"prettyref"}="29 Jul 1998 05:41:53 Graham.Williams\@cmis.csiro.au"; +$M{"progkeys"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"program"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"proofs"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"prv"}="11 Dec 1998 05:33:29 Graham.Williams\@cmis.csiro.au"; +$M{"ps_conv"}="17 Nov 1996 11:34:19 Graham.Williams\@cmis.csiro.au"; +$M{"ps_view"}="25 Jun 1998 staw\@gust.org.pl"; +$M{"psfig"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"psfixbb"}="23 Jun 1998 15:54:54 Graham.Williams\@cmis.csiro.au"; +$M{"psfont"}="1 Jul 1996 21:00:54 Graham.Williams\@cmis.csiro.au"; +$M{"psfonts"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"psfrag"}="24 Jun 1998 12:56:59 Graham.Williams\@cmis.csiro.au"; +$M{"psizzl"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"pslatex"}="2 Aug 1996 12:28:03 Graham.Williams\@cmis.csiro.au"; +$M{"pslatex"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"psmerge"}="1 Nov 1996 08:12:01 Graham.Williams\@cmis.csiro.au"; +$M{"psnfss"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"psnfss"}="24 Apr 1997 16:16:14 Graham.Williams\@cmis.csiro.au"; +$M{"psnfssx"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"pspicture"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"pstotext"}="31 Oct 1996 13:39:09 Graham.Williams\@cmis.csiro.au"; +$M{"pstricks"}="30 May 1996 11:20:11 Graham.Williams\@cmis.csiro.au"; +$M{"punk"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"qfig"}="24 Jul 1998 06:25:39 Graham.Williams\@cmis.csiro.au"; +$M{"qfonts"}="18 Jun 1998 10:17:31 Graham.Williams\@cmis.csiro.au"; +$M{"qobitree"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"qsymbols"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"quotchap"}="24 Feb 1998 13:20:08 Graham.Williams\@cmis.csiro.au"; +$M{"quotes"}="1 May 1998 16:55:48 Graham.Williams\@cmis.csiro.au"; +$M{"r-und-s"}="3 Jul 1997 08:10:21 Graham.Williams\@cmis.csiro.au"; +$M{"ragged2e"}="10 Aug 1998 09:09:43 Graham.Williams\@cmis.csiro.au"; +$M{"rail"}="1 Oct 1998 07:36:00 Graham.Williams\@cmis.csiro.au"; +$M{"rangecite"}="28 May 1996 16:31:55 Graham.Williams\@cmis.csiro.au"; +$M{"rawfonts"}="6 Jun 1997 11:32:53 Graham.Williams\@cmis.csiro.au"; +$M{"rawprint"}="21 Oct 1996 13:50:40 Graham.Williams\@cmis.csiro.au"; +$M{"rcsinfo"}="25 Feb 1999 11:36:47 Graham.Williams\@cmis.csiro.au"; +$M{"realcalc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"recipe"}="26 Nov 1996 16:28:13 Graham.Williams\@cmis.csiro.au"; +$M{"refcheck"}="12 May 1997 10:18:04 Graham.Williams\@cmis.csiro.au"; +$M{"refman"}="1 Jun 1998 12:05:47 Graham.Williams\@cmis.csiro.au"; +$M{"relenc"}="23 Feb 1999 16:14:26 Graham.Williams\@cmis.csiro.au"; +$M{"remreset"}="7 Oct 1997 08:58:13 Graham.Williams\@cmis.csiro.au"; +$M{"repeat"}="5 Jan 1999 08:27:22 Graham.Williams\@cmis.csiro.au"; +$M{"revnum"}="3 Mar 1998 15:31:13 Graham.Williams\@cmis.csiro.au"; +$M{"revtex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"revtex"}="31 Oct 1996 13:44:58 Graham.Williams\@cmis.csiro.au"; +$M{"rlepsf"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"rmpage"}="5 Feb 1998 14:07:37 Graham.Williams\@cmis.csiro.au"; +$M{"romaniantex"}="15 Nov 1996 14:57:19 Graham.Williams\@cmis.csiro.au"; +$M{"romanneg"}="19 Apr 1998 15:22:21 Graham.Williams\@cmis.csiro.au"; +$M{"rotating"}="12 Jun 1996 06:45:47 Graham.Williams\@cmis.csiro.au"; +$M{"rplain"}="23 Sep 1998 09:45:08 Graham.Williams\@cmis.csiro.au"; +$M{"rsfs-ps"}="25 Apr 1998 06:14:30 Graham.Williams\@cmis.csiro.au"; +$M{"rsfs"}="12 Jun 1996 06:57:19 Graham.Williams\@cmis.csiro.au"; +$M{"ruhyphen"}="8 Oct 1998 11:53:41 Graham.Williams\@cmis.csiro.au"; +$M{"ruler"}="22 May 1996 16:04:57 Graham.Williams\@cmis.csiro.au"; +$M{"s2latex"}="7 Jun 1996 20:13:54 Graham.Williams\@cmis.csiro.au"; +$M{"saferef"}="4 Feb 1997 09:57:44 Graham.Williams\@cmis.csiro.au"; +$M{"sanskrit"}="19 Mar 1997 12:03:33 Graham.Williams\@cmis.csiro.au"; +$M{"sauter"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"sauterfonts"}="12 Nov 1998 20:16:14 Graham.Williams\@cmis.csiro.au"; +$M{"scale"}="6 Nov 1998 06:19:58 Graham.Williams\@cmis.csiro.au"; +$M{"scalefnt"}="7 Oct 1997 08:58:13 Graham.Williams\@cmis.csiro.au"; +$M{"schedule"}="18 Feb 1998 10:30:16 Graham.Williams\@cmis.csiro.au"; +$M{"script"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"section"}="1 May 1998 17:01:43 Graham.Williams\@cmis.csiro.au"; +$M{"sectsty"}="13 Dec 1998 05:29:30 Graham.Williams\@cmis.csiro.au"; +$M{"semantic"}="13 May 1996 06:13:26 Graham.Williams\@cmis.csiro.au"; +$M{"seminar"}="28 May 1996 16:32:44 Graham.Williams\@cmis.csiro.au"; +$M{"setspace"}="27 Nov 1998 09:26:04 Graham.Williams\@cmis.csiro.au"; +$M{"sfg"}="8 Jul 1998 09:15:14 Graham.Williams\@cmis.csiro.au"; +$M{"sfheaders"}="17 Feb 1998 09:11:27 Graham.Williams\@cmis.csiro.au"; +$M{"shadbox"}="5 Aug 1996 12:14:57 Graham.Williams\@cmis.csiro.au"; +$M{"shadbox"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"shadethm"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"shading"}="24 Sep 1996 08:55:09 Graham.Williams\@cmis.csiro.au"; +$M{"shadow"}="21 Oct 1996 10:39:52 Graham.Williams\@cmis.csiro.au"; +$M{"shalom"}="30 May 1996 11:22:14 Graham.Williams\@cmis.csiro.au"; +$M{"shapepar"}="3 Jul 1996 15:23:38 Graham.Williams\@cmis.csiro.au"; +$M{"shhyphl"}="7 Jan 1999 07:27:53 Graham.Williams\@cmis.csiro.au"; +$M{"shortlst"}="29 Nov 1998 18:20:51 Graham.Williams\@cmis.csiro.au"; +$M{"shorttoc"}="22 Jul 1998 06:07:50 Graham.Williams\@cmis.csiro.au"; +$M{"showdim"}="30 Jul 1998 05:30:48 Graham.Williams\@cmis.csiro.au"; +$M{"showlabels"}="23 Feb 1999 13:56:22 Graham.Williams\@cmis.csiro.au"; +$M{"siam"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"sidecap"}="6 Nov 1998 06:07:25 Graham.Williams\@cmis.csiro.au"; +$M{"siggraph"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"simpsons"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"sinhala"}="31 Oct 1996 09:54:37 Graham.Williams\@cmis.csiro.au"; +$M{"sirlin"}="16 Aug 1996 14:13:00 Graham.Williams\@cmis.csiro.au"; +$M{"siunits"}="23 Jan 1999 05:00:33 Graham.Williams\@cmis.csiro.au"; +$M{"slashbox"}="20 Feb 1998 14:26:38 Graham.Williams\@cmis.csiro.au"; +$M{"slashed"}="11 Feb 1998 07:48:41 Graham.Williams\@cmis.csiro.au"; +$M{"slidenotes"}="16 Dec 1998 08:33:45 Graham.Williams\@cmis.csiro.au"; +$M{"slides"}="17 Jun 1997 20:12:00 Graham.Williams\@cmis.csiro.au"; +$M{"smallcap"}="28 May 1996 15:57:18 Graham.Williams\@cmis.csiro.au"; +$M{"smallcap"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"smartmn"}="5 Nov 1996 09:14:21 Graham.Williams\@cmis.csiro.au"; +$M{"sobolev"}="1 May 1998 16:56:12 Graham.Williams\@cmis.csiro.au"; +$M{"somedefs"}="12 Aug 1998 06:35:40 Graham.Williams\@cmis.csiro.au"; +$M{"songbook"}="30 Jun 1998 10:54:02 Graham.Williams\@cmis.csiro.au"; +$M{"sorhyph"}="12 May 1997 10:30:15 Graham.Williams\@cmis.csiro.au"; +$M{"soul"}="21 Jan 1999 19:15:44 Graham.Williams\@cmis.csiro.au"; +$M{"spanish"}="21 May 1996 13:04:45 Graham.Williams\@cmis.csiro.au"; +$M{"spanishb"}="5 Oct 1998 11:43:25 Graham.Williams\@cmis.csiro.au"; +$M{"sphack"}="28 May 1998 16:16:55 Graham.Williams\@cmis.csiro.au"; +$M{"sprite"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"ssqquote"}="25 Dec 1996 UV"; +$M{"startex"}="21 Oct 1996 14:23:19 Graham.Williams\@cmis.csiro.au"; +$M{"startex"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"stdclsdv"}="21 Jan 1999 12:51:23 Graham.Williams\@cmis.csiro.au"; +$M{"stmaryrd-ps"}="25 Jul 1998 06:01:40 Graham.Williams\@cmis.csiro.au"; +$M{"stmaryrd"}="25 Apr 1998 06:19:27 Graham.Williams\@cmis.csiro.au"; +$M{"subeqn"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"supertabular"}="7 Oct 1997 09:01:35 Graham.Williams\@cmis.csiro.au"; +$M{"swift"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"syngen"}="19 Nov 1996 08:42:42 Graham.Williams\@cmis.csiro.au"; +$M{"synttree"}="12 Aug 1998 06:13:18 Graham.Williams\@cmis.csiro.au"; +$M{"t2"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"tabbing"}="10 Feb 1998 12:54:11 Graham.Williams\@cmis.csiro.au"; +$M{"tabls"}="15 Dec 1996 19:17:27 Graham.Williams\@cmis.csiro.au"; +$M{"tap"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"tap"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"taylor"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"tbe"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"tcvn"}="21 Jan 1999 19:18:03 Graham.Williams\@cmis.csiro.au"; +$M{"tcx"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"tds"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"techexplorer"}="19 Aug 1998 07:13:20 Graham.Williams\@cmis.csiro.au"; +$M{"tengwar"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"tensind"}="18 Jun 1998 10:06:41 Graham.Williams\@cmis.csiro.au"; +$M{"tensor"}="7 Jun 1996 08:52:37 Graham.Williams\@cmis.csiro.au"; +$M{"termcal"}="14 Jan 1997 10:10:12 Graham.Williams\@cmis.csiro.au"; +$M{"tetex"}="11 Jun 1997 19:22:32 Graham.Williams\@cmis.csiro.au"; +$M{"tex-math"}="8 Jul 1996 14:14:25 Graham.Williams\@cmis.csiro.au"; +$M{"tex-ps"}="09 Jun 1998 staw\@gust.org.pl"; +$M{"tex2bib"}="27 Jan 1998 16:50:26 Graham.Williams\@cmis.csiro.au"; +$M{"tex2html"}="29 Jan 1998 09:10:30 Graham.Williams\@cmis.csiro.au"; +$M{"tex2ltx"}="28 Oct 1998 11:56:39 Graham.Williams\@cmis.csiro.au"; +$M{"tex2rtf"}="25 Jun 1996 08:56:43 Graham.Williams\@cmis.csiro.au"; +$M{"tex4ht"}="23 Oct 1998 05:35:34 Graham.Williams\@cmis.csiro.au"; +$M{"tex98"}="12 Aug 1998 06:09:09 Graham.Williams\@cmis.csiro.au"; +$M{"texdraw"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"texed"}="11 Nov 1998 05:47:04 Graham.Williams\@cmis.csiro.au"; +$M{"texi2html"}="3 Feb 1999 10:27:21 Graham.Williams\@cmis.csiro.au"; +$M{"texi2www"}="2 Jul 1996 10:33:31 Graham.Williams\@cmis.csiro.au"; +$M{"texinfo"}="3 Feb 1999 10:28:52 Graham.Williams\@cmis.csiro.au"; +$M{"texip"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"texlist"}="31 Jan 1999 07:36:23 Graham.Williams\@cmis.csiro.au"; +$M{"texperf"}="16 Aug 1996 14:08:55 Graham.Williams\@cmis.csiro.au"; +$M{"texshell32"}="28 Mar 1998 07:07:28 Graham.Williams\@cmis.csiro.au"; +$M{"texsis"}="27 Jan 1998 16:44:10 Graham.Williams\@cmis.csiro.au"; +$M{"texsk"}="7 Mar 1997 16:53:45 Graham.Williams\@cmis.csiro.au"; +$M{"text1"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"textcase"}="11 Feb 1998 07:49:12 Graham.Williams\@cmis.csiro.au"; +$M{"textfit"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"textmerg"}="31 May 1996 08:43:05 Graham.Williams\@cmis.csiro.au"; +$M{"textoolspro"}=" LaTeX- code, so you can write sections in a"; +$M{"textoolspro"}="21 Jan 1999 13:03:19 Graham.Williams\@cmis.csiro.au"; +$M{"textpos"}="23 Feb 1999 13:54:56 Graham.Williams\@cmis.csiro.au"; +$M{"tfmpk"}="16 Dec 1998 08:30:00 Graham.Williams\@cmis.csiro.au"; +$M{"thesis"}="20 May 1996 10:22:19 Graham.Williams\@cmis.csiro.au"; +$M{"threed"}="13 Apr 1998 06:37:38 Graham.Williams\@cmis.csiro.au"; +$M{"threeparttable"}="15 Dec 1996 19:16:24 Graham.Williams\@cmis.csiro.au"; +$M{"thumb"}="10 Feb 1998 09:34:21 Graham.Williams\@cmis.csiro.au"; +$M{"thumbpdf"}="17 Feb 1999 16:50:56 Graham.Williams\@cmis.csiro.au"; +$M{"tiff"}="11 Nov 1998 05:43:39 Graham.Williams\@cmis.csiro.au"; +$M{"tiff2ps"}="06 May 1998 staw\@gust.org.pl"; +$M{"time"}="7 Jun 1996 09:04:45 Graham.Williams\@cmis.csiro.au"; +$M{"times"}="28 May 1997 16:25:37 Graham.Williams\@cmis.csiro.au"; +$M{"timesht"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"timing"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"tipa"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"titlefoot"}="18 Mar 1998 09:30:36 Graham.Williams\@cmis.csiro.au"; +$M{"titleref"}="15 Dec 1996 19:19:50 Graham.Williams\@cmis.csiro.au"; +$M{"titlesec"}="23 Feb 1999 14:58:36 Graham.Williams\@cmis.csiro.au"; +$M{"titletoc"}="23 Feb 1999 14:58:46 Graham.Williams\@cmis.csiro.au"; +$M{"tkbibtex"}="10 Aug 1998 06:27:23 Graham.Williams\@cmis.csiro.au"; +$M{"tmview"}="29 Jun 1998 10:00:32 Graham.Williams\@cmis.csiro.au"; +$M{"tocbibind"}="21 Jan 1999 12:54:08 Graham.Williams\@cmis.csiro.au"; +$M{"tocloft"}="21 Jan 1999 12:57:14 Graham.Williams\@cmis.csiro.au"; +$M{"tocvsec2"}="21 Jan 1999 12:52:58 Graham.Williams\@cmis.csiro.au"; +$M{"toil"}="27 Jan 1998 16:54:47 Graham.Williams\@cmis.csiro.au"; +$M{"toil"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"tools"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"topcapt"}="15 Dec 1996 19:04:36 Graham.Williams\@cmis.csiro.au"; +$M{"tracking"}="5 Aug 1996 12:11:48 Graham.Williams\@cmis.csiro.au"; +$M{"tracking"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"trans"}="17 Nov 1996 11:34:19 Graham.Williams\@cmis.csiro.au"; +$M{"trans"}="08 Feb 1998 staw\@gust.org.pl"; +$M{"transfig"}="8 Jul 1998 09:08:50 Graham.Williams\@cmis.csiro.au"; +$M{"treesvr"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"truncate"}="15 Dec 1996 19:23:52 Graham.Williams\@cmis.csiro.au"; +$M{"tsconfig"}="27 Nov 1996 13:48:24 Graham.Williams\@cmis.csiro.au"; +$M{"ttf2mf"}="25 Nov 1998 05:37:46 Graham.Williams\@cmis.csiro.au"; +$M{"ttf2pk"}="2 Jan 1999 22:03:00 Graham.Williams\@cmis.csiro.au"; +$M{"ttf2tfm"}="2 Jan 1999 22:05:48 Graham.Williams\@cmis.csiro.au"; +$M{"ttftogf"}="19 Sep 1998 08:12:18 Graham.Williams\@cmis.csiro.au"; +$M{"tth-rpm"}="13 Feb 1999 08:51:59 Graham.Williams\@cmis.csiro.au"; +$M{"tth-win"}="10 Sep 1998 18:39:22 Graham.Williams\@cmis.csiro.au"; +$M{"tth"}="27 Mar 1998 12:45:38 Graham.Williams\@cmis.csiro.au"; +$M{"ttt"}="19 Mar 1997 08:34:45 Graham.Williams\@cmis.csiro.au"; +$M{"tubtoc"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"tugboat-toc"}="28 Dec 1998 09:28:11 Graham.Williams\@cmis.csiro.au"; +$M{"tugboat"}="3 May 1997 s.rahtz\@elsevier.co.uk"; +$M{"tugboat"}="3 Jul 1997 08:01:03 Graham.Williams\@cmis.csiro.au"; +$M{"twg-list"}="25 Feb 1998 09:33:34 Graham.Williams\@cmis.csiro.au"; +$M{"twoup"}="19 Mar 1998 10:39:40 Graham.Williams\@cmis.csiro.au"; +$M{"type1"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"type1"}="February 1998, s.rahtz\@elsevier.co.uk"; +$M{"type1cm"}="7 Mar 1997 16:50:06 Graham.Williams\@cmis.csiro.au"; +$M{"type1cm"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"typearea"}="12 Jun 1996 13:18:22 Graham.Williams\@cmis.csiro.au"; +$M{"typehtml"}="27 Nov 1997 17:08:38 Graham.Williams\@cmis.csiro.au"; +$M{"typespec"}="2 Jul 1998 13:03:32 Graham.Williams\@cmis.csiro.au"; +$M{"uaclasses"}="19 Mar 1997 12:05:52 Graham.Williams\@cmis.csiro.au"; +$M{"uaclasses"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"ucthesis"}="abstract A version of the standard \LaTeX{} report style"; +$M{"ukhyph"}="21 Oct 1996 10:37:20 Graham.Williams\@cmis.csiro.au"; +$M{"ulem"}="28 May 1996 16:34:03 Graham.Williams\@cmis.csiro.au"; +$M{"ulsy"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"umlaute"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"umrand"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"underlin"}="13 May 1997 10:24:58 Robin Fairbairns rf\@cl.cam.ac.uk"; +$M{"underscore"}="17 Jul 1998 07:34:04 Graham.Williams\@cmis.csiro.au"; +$M{"uniqleaf"}="2 Aug 1996 12:44:23 Graham.Williams\@cmis.csiro.au"; +$M{"units"}="6 Aug 1998 06:17:29 Graham.Williams\@cmis.csiro.au"; +$M{"universa"}="6 Sep 1998 05:46:31 Graham.Williams\@cmis.csiro.au"; +$M{"url"}="3 Jul 1996 15:23:38 Graham.Williams\@cmis.csiro.au"; +$M{"urw"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"urwstd"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"urwvf"}="5 Feb 1998 09:33:04 Graham.Williams\@cmis.csiro.au"; +$M{"ut-backref"}="10 Nov 1998 10:38:10 Graham.Williams\@cmis.csiro.au"; +$M{"ut-thesis"}="23 Feb 1999 15:02:00 Graham.Williams\@cmis.csiro.au"; +$M{"utorontothesis"}="20 Feb 1998 14:27:24 Graham.Williams\@cmis.csiro.au"; +$M{"utthesis"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"uwthesis"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"vdm"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"vector"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"verbatim"}="29 May 1996 11:58:52 Graham.Williams\@cmis.csiro.au"; +$M{"vertex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"vfcomb"}="24 Oct 1996 10:25:22 Graham.Williams\@cmis.csiro.au"; +$M{"vfinst"}="10 Sep 1998 18:41:42 Graham.Williams\@cmis.csiro.au"; +$M{"viiptart"}="8 Jul 1998 09:20:53 Graham.Williams\@cmis.csiro.au"; +$M{"vmargin"}="12 Jun 1996 13:14:31 Graham.Williams\@cmis.csiro.au"; +$M{"vncmr"}="19 Jul 1996 08:45:39 Graham.Williams\@cmis.csiro.au"; +$M{"vrb"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"vrsion"}="8 Jul 1998 08:17:05 Graham.Williams\@cmis.csiro.au"; +$M{"vruler"}="24 Oct 1996 11:15:39 Graham.Williams\@cmis.csiro.au"; +$M{"warpcol"}="13 Sep 1998 06:27:36 Graham.Williams\@cmis.csiro.au"; +$M{"wasy-ps"}="25 Jul 1998 06:05:00 Graham.Williams\@cmis.csiro.au"; +$M{"wasy"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"wasy2-ps"}="5 Aug 1998 06:26:09 Graham.Williams\@cmis.csiro.au"; +$M{"wasy2"}="25 Jul 1998 06:18:23 Graham.Williams\@cmis.csiro.au"; +$M{"wasysym"}="5 Jan 1999 07:44:43 Graham.Williams\@cmis.csiro.au"; +$M{"web2c-win32"}="3 Apr 1998 06:38:58 Graham.Williams\@cmis.csiro.au"; +$M{"web2c"}="20 Mar 1998 09:27:08 Graham.Williams\@cmis.csiro.au"; +$M{"williams"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"win95-guide"}="12 Apr 1998 20:46:26 Graham.Williams\@cmis.csiro.au"; +$M{"windvi"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"winedt"}="2 Jul 1998 13:00:44 Graham.Williams\@cmis.csiro.au"; +$M{"winemtex"}="3 Aug 1998 18:15:29 Graham.Williams\@cmis.csiro.au"; +$M{"winshell"}="21 Nov 1998 05:34:40 Graham.Williams\@cmis.csiro.au"; +$M{"wmf2eps"}="12 Nov 1998 20:15:28 Graham.Williams\@cmis.csiro.au"; +$M{"wnri"}="30 Jun 1998 10:56:34 Graham.Williams\@cmis.csiro.au"; +$M{"wntamil"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"word2x"}="29 Apr 1997 14:47:38 Graham.Williams\@cmis.csiro.au"; +$M{"wp-conv"}="1 Aug 1998 05:39:06 Graham.Williams\@cmis.csiro.au"; +$M{"wp2latex"}="23 Sep 1998 05:24:28 Graham.Williams\@cmis.csiro.au"; +$M{"wsuipa"}="13 Aug 1998 05:27:18 Graham.Williams\@cmis.csiro.au"; +$M{"wtex95"}="24 Feb 1998 14:01:24 Graham.Williams\@cmis.csiro.au"; +$M{"xdvi"}="28 Jun 1996 10:08:55 Graham.Williams\@cmis.csiro.au"; +$M{"xdvik"}="6 Apr 1998 05:53:45 Graham.Williams\@cmis.csiro.au"; +$M{"xfig"}="8 Jul 1998 09:08:50 Graham.Williams\@cmis.csiro.au"; +$M{"xtab"}="21 Oct 1998 09:32:30 Graham.Williams\@cmis.csiro.au"; +$M{"xtcapts"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"xtem"}="27 Nov 1997 17:13:37 Graham.Williams\@cmis.csiro.au"; +$M{"xymtex"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"xypic"}="21 Nov 1998 05:35:39 Graham.Williams\@cmis.csiro.au"; +$M{"yannisgr"}="25 Feb 1998 s.rahtz\@elsevier.co.uk"; +$M{"yfonts"}="27 Jan 1999 08:26:02 Graham.Williams\@cmis.csiro.au"; +$M{"yhmath"}="16 May 1996 s.rahtz\@elsevier.co.uk"; +$M{"yi4latex"}="22 Feb 1999 s.rahtz\@elsevier.co.uk"; +$M{"youngtab"}="29 Jun 1998 10:06:42 Graham.Williams\@cmis.csiro.au"; +$M{"yplan99"}="11 Dec 1998 05:45:33 Graham.Williams\@cmis.csiro.au"; +$M{"ytex"}="12 Apr 1997 s.rahtz\@elsevier.co.uk"; +$M{"zefonts"}="30 Sep 1998 07:50:57 Graham.Williams\@cmis.csiro.au"; +1; diff --git a/Master/texmf-doc/source/english/texlive-en/archive/nocites.tex b/Master/texmf-doc/source/english/texlive-en/archive/nocites.tex new file mode 100644 index 00000000000..759b379f30e --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/nocites.tex @@ -0,0 +1,557 @@ +\nocite{a0poster} +\nocite{aaai} +\nocite{abstyles} +\nocite{accfonts} +\nocite{achemso} +\nocite{acronym} +\nocite{adfathesis} +\nocite{adobeother} +\nocite{adobestd} +\nocite{adrlist} +\nocite{ae} +\nocite{aguplus} +\nocite{aiaa} +\nocite{akletter} +\nocite{alatex} +\nocite{algorithms} +\nocite{alg} +\nocite{alphaev5-osf4.0d} +\nocite{altfont} +\nocite{amsfonts} +\nocite{amslatex} +\nocite{amstex} +\nocite{answers} +\nocite{antyktor} +\nocite{apa} +\nocite{apl} +\nocite{appendix} +\nocite{arabtex} +\nocite{arydshln} +\nocite{ar} +\nocite{asaetr} +\nocite{ascii} +\nocite{astro} +\nocite{aurora} +\nocite{authorindex} +\nocite{autotab} +\nocite{babel} +\nocite{backgammon} +\nocite{bakoma} +\nocite{barcode2} +\nocite{barcodes} +\nocite{barr} +\nocite{bbding} +\nocite{bbm} +\nocite{bbold} +\nocite{bbtbase} +\nocite{bbtdoc} +\nocite{beebe} +\nocite{belleek} +\nocite{beton} +\nocite{bez123} +\nocite{bezos} +\nocite{bibarts} +\nocite{biblist} +\nocite{bluesky} +\nocite{blue} +\nocite{booktabs} +\nocite{borceux} +\nocite{bosisio} +\nocite{bridge} +\nocite{brushscr} +\nocite{c-pascal} +\nocite{calendar} +\nocite{calligra} +\nocite{calrsfs} +\nocite{camel} +\nocite{caption} +\nocite{carlisle} +\nocite{casyl} +\nocite{catalog} +\nocite{cbgreek} +\nocite{cc-pl} +\nocite{ccaption} +\nocite{ccfonts} +\nocite{cchess} +\nocite{cdcover} +\nocite{cellular} +\nocite{changebar} +\nocite{chemcono} +\nocite{chemsym} +\nocite{cheq} +\nocite{cherokee} +\nocite{chess} +\nocite{china2e} +\nocite{circ} +\nocite{cirth} +\nocite{cite} +\nocite{cjk} +\nocite{cmbright} +\nocite{cmcyralt} +\nocite{cmcyr} +\nocite{cmdtrack} +\nocite{cmextra} +\nocite{cmpica} +\nocite{cmpk} +\nocite{cmsd} +\nocite{cm} +\nocite{codepage} +\nocite{colorsep} +\nocite{colortab} +\nocite{comment} +\nocite{concmath} +\nocite{concrete} +\nocite{context} +\nocite{covington} +\nocite{croatian} +\nocite{crop} +\nocite{crossword} +\nocite{crosswrd} +\nocite{csfonts} +\nocite{cslatex} +\nocite{csplain} +\nocite{cspsfonts} +\nocite{cstug} +\nocite{cursor} +\nocite{curves} +\nocite{custom-bib} +\nocite{cyrillic} +\nocite{dancers} +\nocite{deleq} +\nocite{devanagari} +\nocite{dialogl} +\nocite{dinbrief} +\nocite{directory} +\nocite{dotseqn} +\nocite{draftcopy} +\nocite{dratex} +\nocite{dropping} +\nocite{dstroke} +\nocite{dtk} +\nocite{duerer} +\nocite{dvipdfm} +\nocite{dvipsbase} +\nocite{dvipsdoc} +\nocite{ean} +\nocite{easy} +\nocite{ecc} +\nocite{ecltree} +\nocite{eco} +\nocite{ecpk} +\nocite{ec} +\nocite{edmac} +\nocite{eepic} +\nocite{egplot} +\nocite{eiad} +\nocite{eijkhout} +\nocite{elsevier} +\nocite{elvish} +\nocite{emp} +\nocite{emulateapj} +\nocite{encodings} +\nocite{endfloat} +\nocite{engwar} +\nocite{envbig} +\nocite{envlab} +\nocite{epigraph} +\nocite{eplain} +\nocite{eqname} +\nocite{eqnarray} +\nocite{esieecv} +\nocite{etexbase} +\nocite{etruscan} +\nocite{euler} +\nocite{euro2} +\nocite{eurofont} +\nocite{europs} +\nocite{eurosans} +\nocite{eurosym} +\nocite{euro} +\nocite{euxm} +\nocite{examdesign} +\nocite{exam} +\nocite{expdlist} +\nocite{expl3} +\nocite{export} +\nocite{fancybox} +\nocite{fancyhdr} +\nocite{fancyref} +\nocite{fancyvrb} +\nocite{fax} +\nocite{fc} +\nocite{feynmf} +\nocite{finbib} +\nocite{floatfig} +\nocite{floatflt} +\nocite{float} +\nocite{fltpage} +\nocite{fncychap} +\nocite{foilhtml} +\nocite{foiltex} +\nocite{fontinst} +\nocite{fontname} +\nocite{footbib} +\nocite{footmisc} +\nocite{footnpag} +\nocite{formats} +\nocite{formula} +\nocite{fp} +\nocite{frankenstein} +\nocite{french} +\nocite{fribrief} +\nocite{fullblck} +\nocite{fullpict} +\nocite{fundus} +\nocite{futhark} +\nocite{g-brief} +\nocite{gb4e} +\nocite{genealogy} +\nocite{general} +\nocite{genmisc} +\nocite{geometry} +\nocite{geomsty} +\nocite{german} +\nocite{germbib} +\nocite{germdoc} +\nocite{gloss} +\nocite{gn-logic} +\nocite{gothic} +\nocite{go} +\nocite{graphics} +\nocite{greek6cbc} +\nocite{grnumalt} +\nocite{grtimes} +\nocite{guides} +\nocite{gustlib} +\nocite{hands} +\nocite{hanging} +\nocite{harpoon} +\nocite{harvard} +\nocite{harvmac} +\nocite{hh} +\nocite{hilowres} +\nocite{histogr} +\nocite{hoekwater} +\nocite{hppa1.1-hpux10.10} +\nocite{html} +\nocite{hvmaths} +\nocite{hyperref} +\nocite{hyper} +\nocite{hyphenat} +\nocite{hyphen} +\nocite{i386-linux-libc5} +\nocite{i386-linux} +\nocite{ibm} +\nocite{ieeepes} +\nocite{ifacmtg} +\nocite{imac} +\nocite{indxcite} +\nocite{info} +\nocite{ini} +\nocite{insbox} +\nocite{ipa} +\nocite{isostds} +\nocite{jadetex} +\nocite{jhep} +\nocite{jknappen} +\nocite{jsmisc} +\nocite{jura} +\nocite{kalender} +\nocite{karnaugh} +\nocite{kdgreek} +\nocite{kluwer} +\nocite{knuth} +\nocite{koma-script} +\nocite{kuvio} +\nocite{labels} +\nocite{lamstex} +\nocite{lastpage} +\nocite{latexfonts} +\nocite{layouts} +\nocite{leaflet} +\nocite{leftidx} +\nocite{lettrine} +\nocite{levy} +\nocite{lgc} +\nocite{lgreek} +\nocite{lhcyr} +\nocite{lh} +\nocite{lineno} +\nocite{linguex} +\nocite{listings} +\nocite{lkort} +\nocite{localloc} +\nocite{logic} +\nocite{lollipop} +\nocite{ltablex} +\nocite{ltx2rtf} +\nocite{ltxbase} +\nocite{ltxdoc} +\nocite{ltxmisc} +\nocite{lucida} +\nocite{ly1} +\nocite{mailing} +\nocite{makeindex} +\nocite{malayalam} +\nocite{malvern} +\nocite{mapcodes} +\nocite{maple} +\nocite{margbib} +\nocite{marvosym} +\nocite{mathcomp} +\nocite{mathematica} +\nocite{mathpple} +\nocite{mcite} +\nocite{mdwtools} +\nocite{metasupp} +\nocite{method} +\nocite{mex} +\nocite{mff} +\nocite{mflogo} +\nocite{mfmisc} +\nocite{mfnfss} +\nocite{mfpic} +\nocite{mftoeps} +\nocite{mft} +\nocite{mhs} +\nocite{midnight} +\nocite{minitoc} +\nocite{mips-irix6.2} +\nocite{misc209} +\nocite{mltex} +\nocite{mnras} +\nocite{monotype} +\nocite{montex} +\nocite{morehelp} +\nocite{moresize} +\nocite{moreverb} +\nocite{morse} +\nocite{mpattern} +\nocite{mpbase} +\nocite{mpfnmark} +\nocite{mslapa} +\nocite{ms} +\nocite{mtbe} +\nocite{multenum} +\nocite{multirow} +\nocite{multi} +\nocite{musictex} +\nocite{musixtex} +\nocite{nassflow} +\nocite{natbib} +\nocite{ncctools} +\nocite{newalg} +\nocite{newlfm} +\nocite{newsletr} +\nocite{newthm} +\nocite{niceframe} +\nocite{nomencl} +\nocite{nrc} +\nocite{ntgclass} +\nocite{ntg} +\nocite{ntheorem} +\nocite{numline} +\nocite{objectz} +\nocite{oca} +\nocite{ocr-a} +\nocite{ogham} +\nocite{ogonek} +\nocite{oldstyle} +\nocite{omegabase} +\nocite{omegafonts} +\nocite{osmanian} +\nocite{ot2cyr} +\nocite{overpic} +\nocite{pacioli} +\nocite{pageno} +\nocite{pandora} +\nocite{paper} +\nocite{paralist} +\nocite{parallel} +\nocite{patch} +\nocite{pawpict} +\nocite{pb-diagram} +\nocite{pdcmac} +\nocite{pdfscreen} +\nocite{pdftex} +\nocite{permute} +\nocite{phoenician} +\nocite{phonetic} +\nocite{physe} +\nocite{phyzzx} +\nocite{picinpar} +\nocite{picins} +\nocite{pictex} +\nocite{piff} +\nocite{pl-qx} +\nocite{plainmisc} +\nocite{plaintex} +\nocite{plari} +\nocite{platex} +\nocite{play} +\nocite{plcalendar} +\nocite{plfonts} +\nocite{plgraph} +\nocite{plpatch} +\nocite{pl} +\nocite{pmgraph} +\nocite{poligraf} +\nocite{polish} +\nocite{polyglot} +\nocite{prettyref} +\nocite{progkeys} +\nocite{program} +\nocite{proofs} +\nocite{protex} +\nocite{psafm} +\nocite{psfig} +\nocite{psfrag} +\nocite{psizzl} +\nocite{pslatex} +\nocite{psnfssx} +\nocite{psnfss} +\nocite{pspicture} +\nocite{pstricks} +\nocite{punk} +\nocite{qfonts} +\nocite{qobitree} +\nocite{qsymbols} +\nocite{quotchap} +\nocite{r-und-s} +\nocite{rcsinfo} +\nocite{rcs} +\nocite{realcalc} +\nocite{refcheck} +\nocite{refman} +\nocite{relenc} +\nocite{revtex} +\nocite{rlepsf} +\nocite{rmpage} +\nocite{rotating} +\nocite{rotfloat} +\nocite{rplain} +\nocite{rs6000-aix4.1.4.0} +\nocite{rsfs} +\nocite{ruhyphen} +\nocite{runic} +\nocite{sanskrit} +\nocite{sauterfonts} +\nocite{scale} +\nocite{schedule} +\nocite{script} +\nocite{sectsty} +\nocite{semantic} +\nocite{seminar} +\nocite{setspace} +\nocite{shadbox} +\nocite{shadethm} +\nocite{shortlst} +\nocite{shorttoc} +\nocite{showdim} +\nocite{showlabels} +\nocite{siam} +\nocite{sidecap} +\nocite{siggraph} +\nocite{simpsons} +\nocite{siunits} +\nocite{slashbox} +\nocite{slidenotes} +\nocite{smallcap} +\nocite{songbook} +\nocite{soul} +\nocite{sparc-solaris2.5.1} +\nocite{sprite} +\nocite{ssqquote} +\nocite{startex} +\nocite{stdclsdv} +\nocite{stmaryrd} +\nocite{subeqnarray} +\nocite{subeqn} +\nocite{subfigure} +\nocite{supertabular} +\nocite{synttree} +\nocite{t2} +\nocite{tabbing} +\nocite{tap} +\nocite{taylor} +\nocite{tbe} +\nocite{tcx} +\nocite{tds} +\nocite{tengwar} +\nocite{tetex} +\nocite{tex-ps} +\nocite{tex4ht} +\nocite{texdraw} +\nocite{texinfo} +\nocite{texip} +\nocite{texlive} +\nocite{texsis} +\nocite{text1} +\nocite{textfit} +\nocite{textmerg} +\nocite{textpos} +\nocite{thesis} +\nocite{threed} +\nocite{thumbpdf} +\nocite{thumb} +\nocite{timesht} +\nocite{timing} +\nocite{tipa} +\nocite{titlefoot} +\nocite{titlesec} +\nocite{tmmaths} +\nocite{tocbibind} +\nocite{tocloft} +\nocite{tocvsec2} +\nocite{tools} +\nocite{tracking} +\nocite{treesvr} +\nocite{treetex} +\nocite{ttf2pk} +\nocite{tugboat} +\nocite{tug} +\nocite{type1cm} +\nocite{type1} +\nocite{typespec} +\nocite{uaclasses} +\nocite{ucthesis} +\nocite{ulsy} +\nocite{umlaute} +\nocite{umrand} +\nocite{underlin} +\nocite{units} +\nocite{universa} +\nocite{uni} +\nocite{unsupported} +\nocite{urwstd} +\nocite{useful} +\nocite{ut-thesis} +\nocite{utthesis} +\nocite{uwthesis} +\nocite{vdm} +\nocite{vector} +\nocite{vertex} +\nocite{vita} +\nocite{vrb} +\nocite{vrsion} +\nocite{warpcol} +\nocite{wasysym} +\nocite{wasy} +\nocite{williams} +\nocite{win32} +\nocite{windvi} +\nocite{wnri} +\nocite{wntamil} +\nocite{wsuipa} +\nocite{xtab} +\nocite{xtcapts} +\nocite{xymtex} +\nocite{xypic} +\nocite{yannisgr} +\nocite{yfonts} +\nocite{yhmath} +\nocite{yi4latex} +\nocite{youngtab} +\nocite{ytex} +\nocite{zed-csp} +\nocite{zefonts} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/picture.tex b/Master/texmf-doc/source/english/texlive-en/archive/picture.tex new file mode 100644 index 00000000000..098cfe18f10 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/picture.tex @@ -0,0 +1,46 @@ +\documentclass{artikel3} +\pagestyle{empty} +\usepackage{pstcol,pst-text,lucidbrb} +\font\manual=manfnt %logo10 doesn't have what we need +\hyphenchar\manual=-1 +\def\MF{{\manual META}\-{\manual FONT}} +\begin{document} +\sffamily +\psset{unit=1mm} +\def\Size#1#2{\fontsize{#1}{#2}\selectfont} +\begin{pspicture}(-58,-58)(58,58) +\pscircle[linewidth=.3pt,linecolor=lightgray]{58} +%\pscircle{23} +\psset{linestyle=none} +% top of circle +\pstextpath[c]{\psarcn(0,0){48}{180}{0}} +{\Size{1.2cm}{1cm}\bfseries \TeX\ Live 4} +\rput(0,34){\begin{minipage}{8cm}\centering \textbf{March 1999}\\[3mm] +\Size{9}{10.5}Ready-to-run \TeX\ system for Linux, Unix (DEC,\\ HP, IBM, +SGI, Sun), and Win32 systems, \\ +based on Web2c 7.3\\ +\end{minipage}} +% bottom of circle +\rput(30,10){\begin{minipage}{2.7cm}\raggedleft\footnotesize +ISO 9660 with Joliet \\and Rock Ridge \\ +extensions\end{minipage}} +\rput(0,-30){\begin{minipage}{7cm}\centering +Macros, fonts, documentation to the\\ +\emph{{\TeX} Directory Structure} standard.\\[2mm] +Editor: Sebastian Rahtz +\end{minipage}} +\pstextpath[c]{\psarc(0,0){45}{180}{0}} +{ +{\Size{14}{14}\ttfamily http://www.tug.org/texlive/} } +\pstextpath[c]{\psarc(0,0){53}{180}{0}} +{\Size{13.2}{14}\bfseries +CSTUG $\bullet$ +Dante e.V. $\bullet$ +GUST $\bullet$ +GUTenberg $\bullet$ +NTG $\bullet$ +TUG $\bullet$ +TUG India $\bullet$ +UK TUG} +\end{pspicture} +\end{document} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/split.pl b/Master/texmf-doc/source/english/texlive-en/archive/split.pl new file mode 100644 index 00000000000..bca00584335 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/split.pl @@ -0,0 +1,16 @@ +#@TeXIndex{a0poster, +open TMP, ">/dev/null"; +while (<>) { + chop; + if (/\@TeXIndex/) { + print TMP "\n"; + close TMP; + $keep=$_; + s/\@TeXIndex{(.*),.*/$1/; + print "[$_]\n"; + open TMP, ">$_.bib"; + print TMP "$keep\n"; + } + else { print TMP "$_\n" ; } + +} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/status.pl b/Master/texmf-doc/source/english/texlive-en/archive/status.pl new file mode 100644 index 00000000000..28c3d0d6d4c --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/status.pl @@ -0,0 +1,31 @@ +#package: pIq +#license: pd +#(but erasing the headers is not allowed) +#Note that I made the most recent change, but +#Mark Shoulson (shoulson@ctr.columbia.edu) +#wrote the initial version. He should be named +#in the catalogue, too. + +#csuov@csv.warwick.ac.uk +#Subject: cmtt +#To: krab@iesd.auc.dk +#Subject: ftn +#To: inas@MIB.HARZ.DE +#Subject: newthm +#To: reckdahl@leland.stanford.edu +#Subject: epslatex +#To: miktex-bug@ronin.in-berlin.de +#Subject: miktex +#To: de8827@blackjack.usma.edu +#Subject: lated +#To: jdyoung@AFIT.AF.MIL +#Subject: afthesis +#xlwy01@uxp1.hrz.uni-dortmund.de (c2cweb) + +$L{"newlfm"}="free-latex"; +$L{"pacioli"}="gpl"; +$L{"etruscan"}="gpl"; +$L{"phoenician"}="gpl"; +$L{"greek6bc"}="gpl"; +$L{"runic"}="gpl"; +1; diff --git a/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bib b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bib new file mode 100644 index 00000000000..17c75e197b7 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bib @@ -0,0 +1,235 @@ +@TeXIndex{mips-irix6.2, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for SGI running Irix 6.2}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{alpha-osf3.2, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Alpha running OSF 3.2.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{alphaev5-osf4.0d, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Alphaev5 running OSF 4.0d.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{alphaev5-osf4.0b, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Alphaev5 running OSF 4.0b.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{bbtbase, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Basic \BibTeX{} support files.}, + status = {free}, + texlive = {bibtex1} +} + +@TeXIndex{bbtdoc, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Basic \BibTeX{} documentation.}, + status = {free}, + texlive = {bibtex2} +} + +@TeXIndex{catalog, + modified = {February 1999, s.rahtz@elsevier.co.uk}, + abstract = {Graham Williams' Catalogue of \TeX{} packages.}, + status = {free}, + texlive = {doc2} +} + +@TeXIndex{cmpk, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Computer Modern fonts in PK format.}, + status = {free}, + texlive = {fonts3} +} + +@TeXIndex{dtk, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Macros for the DANTE publication.}, + status = {free}, + texlive = {latex3} +} + +@TeXIndex{dvipsbase, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Basic support files for dvips.}, + status = {free}, + texlive = {dvips1} +} + +@TeXIndex{general, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Useful general documentation.}, + status = {free}, + texlive = {doc1} +} + +@TeXIndex{guides, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Guides to using \LaTeX, in English, German, French, + Greek and Polish.}, + status = {free}, + texlive = {doc2} +} + +@TeXIndex{hppa1.1-hpux10.10, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for HP running hpux10.10.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{hyphen, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Collection of hyphenation patterns.}, + email = {s.rahtz@elsevier.co.uk}, + author = {LaTeX3 Project}, + status = {free}, + texlive = {lang1} +} + +@TeXIndex{i386-linux, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Intel machines running Linux.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{i386-linux-libc5, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Intel machines + running Linux, with libc5}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{ini, + modified = {February 1999, s.rahtz@elsevier.co.uk}, + abstract = {Startup files for building formats.}, + status = {free}, + texlive = {texlive1} +} + +@TeXIndex{lgc, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Examples from the \emph{\LaTeX{} Graphics Companion}.}, + status = {free}, + texlive = {doc3} +} + +@TeXIndex{metasupp, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {MetaPost support files.}, + status = {free}, + texlive = {texlive1} +} + +@TeXIndex{mfmisc, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Small support files for \MF.}, + status = {free}, + texlive = {fonts1} +} + +@TeXIndex{mft, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Support files for MFT.}, + status = {free}, + texlive = {texlive1} +} + +@TeXIndex{misc209, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Miscellaneous small macro files for \LaTeX 2.09.}, + status = {free}, + texlive = {latex2} +} + +@TeXIndex{mpbase, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Basic MetaPost support files.}, + status = {free}, + texlive = {metapost1} +} + +@TeXIndex{multi, + modified = {February 1999, s.rahtz@elsevier.co.uk}, + abstract = {dvips header for making n-up pages.}, + status = {free}, + texlive = {dvips3} +} + +@TeXIndex{psafm, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {AFM files for PostScript fonts.}, + status = {free}, + texlive = {fonts3} +} + +@TeXIndex{pspk, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {PK files for common PostScript fonts.}, + status = {free}, + texlive = {fonts3} +} + +@TeXIndex{rs6000-aix4.1, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for RS6000 running AIX 4.1.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{rs6000-aix4.1.4.0, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for RS6000 running AIX 4.1.4.0}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{sparc-solaris2.5.1, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Sun Sparc running Solaris 2.5.1.}, + status = {free}, + texlive = {systems1} +} + +@TeXIndex{texlive, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Basic material for \TeXLive{}.}, + status = {free}, + texlive = {texlive1} +} + +@TeXIndex{tug, + modified = {February 1999, s.rahtz@elsevier.co.uk}, + abstract = {\TeX\ Users Group information.}, + status = {free}, + texlive = {doc3} +} + +@TeXIndex{useful, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {Useful documentation; various \LaTeX{} guides, FAQ, + fontname docs, etc.}, + status = {free}, + texlive = {doc2} +} + +@TeXIndex{win32, + modified = {February 1999 s.rahtz@elsevier.co.uk}, + abstract = {System binaries for Windows 32.}, + status = {free}, + texlive = {systems1} +} diff --git a/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bst b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bst new file mode 100644 index 00000000000..a4954030c95 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.bst @@ -0,0 +1,60 @@ +ENTRY + { + name + status + abstract + texlive + author + ctan + keywords + version + also + modified + } + {} % no integer entry variables + { label extra.label sort.label } % label entry variables + + +STRINGS { s t a.name } + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {TexIndex} { + texlive empty$ + { } + { "\bibitem{" cite$ * "}" * write$ + cite$ "&" * write$ + status "&" * write$ + texlive "&" * write$ + newline$ + abstract write$ + newline$ + } + if$ + } + + +READ + +ITERATE {call.type$} + diff --git a/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2003 b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2003 new file mode 100644 index 00000000000..3b75b7b5bfd --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2003 @@ -0,0 +1,378 @@ +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{tex-live}[2003/09/01 v1.0 TeX Live documentation style] +% +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{colortbl} +\RequirePackage{graphicx} +\RequirePackage{here} +\RequirePackage{longtable} +\RequirePackage{pslatex} +\RequirePackage{shortvrb} +\RequirePackage[normalem]{ulem} +\RequirePackage[obeyspaces]{url} +\RequirePackage{xspace} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +%\usepackage[textcomp]{lmodern} +% +\RequirePackage{europs} +\let\euro\EUR +% +\RequirePackage{mflogo} +\def\MP{MetaPost} +\let\mf\MF +% +% for a proper \acro command (even in the context of the definition in +% ltugboat -- \DRC overrides without checking) +\RequirePackage{relsize} +\DeclareRobustCommand{\acro}[1]{\textsmaller{#1}\@} +% +\RequirePackage{fancyvrb} +\DefineVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\normalsize} +\DefineVerbatimEnvironment{fverbatim}{Verbatim}{fontsize=\footnotesize} +\DefineVerbatimEnvironment{sverbatim}{Verbatim}{fontsize=\small} +\DefineVerbatimEnvironment{boxedverbatim} + {Verbatim}{fontsize=\scriptsize,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. +% +% Page layout. +\advance\textwidth by 1.1in +\advance\oddsidemargin by -.55in +\advance\evensidemargin by -.55in +% +\advance\textheight by 1in +\advance\topmargin by -.5in +\advance\footskip by -.5in +\pagestyle{headings} +% +% LaTeX parameters. +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\renewcommand{\belowcaptionskip}{4pt} +\setcounter{tocdepth}{2} +\setcounter{topnumber}{5} +\setcounter{totalnumber}{5} +% +% linebreaking, etc. +\pretolerance=1000 +\tolerance=1500 +\hbadness=3000 +\vbadness=3000 +\hyphenpenalty=400 +\emergencystretch=.1\hsize +\relpenalty=500 +% +% fonts +\let\sl\it +\let\slfamily\itfamily +\let\textsl\textit +%\def\ttdefault{cmtt} +\def\ttdefault{lmtt} +% +% 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 +\newcommand*{\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]{\texttt{#1}} +\newcommand{\samp}[1]{`\texttt{#1}'} +\newcommand{\var}[1]{\emph{#1}} +\newcommand{\ttvar}[1]{\texttt{\var{#1}}} +% +% underlined command input. +\def\Ucom#1{% + \uline{\rule[-.2\baselineskip]{0pt}{.9\baselineskip}\ttfamily #1}} +\def\OnCD#1{\href{../../../../#1}{\path{#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. +\newcommand{\CS}{$\mathcal{C}\kern-.1667em\lower.5ex% + \hbox{$\mathcal{S}$}\kern-.075em $} +\def\AFMtoTFM{\cmdname{AFM2TFM}\null} +\def\bv{\emph{Baskerville}} +\let\BV=\bv +\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\KPS{Kpathsea} +\def\La{La} +\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\teTeX{\textrm{te}\TeX\xspace} +\def\TeXLive{\TeX{} Live\xspace} +\def\TFtoPL{\cmdname{TFtoPL}\null} +\def\TK{\textsf{\TeX-Collection}} +\def\TypeI{Type~1} +\def\VFtoVP{\cmdname{VFtoVP}\null} +\def\VPtoVF{\cmdname{VPtoVF}\null} +\def\XEmTeX{\textrm{XEm}\TeX\xspace} +\def\XEmacs{\textrm{XEmacs}\xspace} +\def\Webc{Web2C} +\providecommand*{\CD}{\acro{CD}\xspace} +\providecommand*{\CTAN}{\acro{CTAN}\xspace} +\providecommand*{\DVD}{\acro{DVD}\xspace} +\providecommand*{\HTML}{\acro{HTML}\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} +% +% 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 why \descriptionlabel doesn't. +\newenvironment{ttdescription} + {\begin{list}{label must be supplied}{% + \itemsep=0pt % these lists tend to have short descriptions + \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} +% +\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}} +% +% +% output setup +% +\newif\ifSingleColumn +\providecommand{\Status}{0} +%\typeout{Status is \Status} +% +% 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 +% +% +\ifcase\Status + % \Status = 0 + \typeout{TeX Live documentation for printing} + \SingleColumntrue + \newenvironment{multicols}[1]{}{} + \or + % \Status = 1 + \typeout{TeX Live documentation in PDF format} + \RequirePackage[colorlinks,bookmarksopen, + pdfstartview={FitBH -320000},hyperindex]{hyperref} + \SingleColumntrue + \newenvironment{multicols}[1]{}{} + \or + % \Status = 2 + \typeout{TeX Live documentation in HTML format} + \RequirePackage[latex4ht]{tex4ht} + \or + % \Status = 3 + \typeout{TeX Live documentation as a Baskerville issue} + \@ifundefined{Fonts}% + {\RequirePackage{ae}}% + {\RequirePackage[T1]{\Fonts}} + \RequirePackage{bvoutln}% outline of baskerville + \RequirePackage{multicol} + \SingleColumnfalse + \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\@} +\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 +} +% +% a hack for the bibliography +\bibliographystyle{tex-live} +\newif\iffirstbibentry +\global\firstbibentrytrue +\let\@@bibitem\bibitem +\renewcommand\bibitem{\iffirstbibentry + \global\firstbibentryfalse + \else + \\\SetRowColor + \fi + \@@bibitem +} + + +% for \Dings +\RequirePackage{pifont} +% available for inter-article dinglines +\def\Dings{\nopagebreak{\footnotesize\dingline{167}}} + +\endinput diff --git a/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2004 b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2004 new file mode 100644 index 00000000000..a7efdd3a87d --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/tex-live.sty-2004 @@ -0,0 +1,422 @@ +% $Id: //depot/Master/texmf-doc/source/english/texlive-en/tex-live.sty#10 $ $Author: karl $ $Date: 2004/11/27 $ +% TeX Live documentation style. Written by many people over many years. +% Public domain. +% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{tex-live}[2004/11/07 v1.0 TeX Live documentation style] +% +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{colortbl} +\RequirePackage{comment} +\RequirePackage{graphicx} +\RequirePackage{here} +\RequirePackage{longtable} +\RequirePackage{shortvrb} +\RequirePackage[normalem]{ulem} +\RequirePackage[obeyspaces]{url} +\RequirePackage{xspace} +% +\RequirePackage{lmodern} +\usepackage{textcomp}% including \textbullet +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +% +% for a proper \acro command (even in the context of the definition in +% ltugboat -- \DRC overrides without checking) +\RequirePackage{relsize} +\DeclareRobustCommand{\acro}[1]{\textsmaller{#1}\@} +% +\RequirePackage{fancyvrb} +\DefineVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\normalsize} +\DefineVerbatimEnvironment{fverbatim}{Verbatim}{fontsize=\footnotesize} +\DefineVerbatimEnvironment{sverbatim}{Verbatim}{fontsize=\small} +\DefineVerbatimEnvironment{boxedverbatim} + {Verbatim}{fontsize=\scriptsize,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. +% +% Page layout. +\advance\textwidth by 1.1in +\advance\oddsidemargin by -.55in +\advance\evensidemargin by -.55in +% +\advance\textheight by 1in +\advance\topmargin by -.5in +\advance\footskip by -.5in +\pagestyle{headings} +% +% LaTeX parameters. +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\renewcommand{\belowcaptionskip}{4pt} +\setcounter{tocdepth}{2} +\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 +\newcommand*{\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]{\texttt{#1}} +\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}} +% +% \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 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. +\newcommand{\CS}{$\mathcal{C}\kern-.1667em\lower.5ex% + \hbox{$\mathcal{S}$}\kern-.075em $} +\def\AFMtoTFM{\cmdname{AFM2TFM}\null} +\def\bv{\emph{Baskerville}} +\let\BV=\bv +\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\KPS{Kpathsea} +\def\La{La} +\def\OMEGA{$\Omega$} +\def\OzMF{OzMF} +\def\OzMP{OzMP} +\def\OzTeX{O\kern-.03em z\kern-.15em\TeX} +\def\p.{p.\,} +\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{\textsf{\TeX-Collection}} +\let\TL=\TeXLive +\def\TypeI{Type~1} +\def\VFtoVP{\cmdname{VFtoVP}\null} +\def\VPtoVF{\cmdname{VPtoVF}\null} +\def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh} +\def\XEmTeX{\textrm{XEm}\TeX\xspace} +\def\XEmacs{\textrm{XEmacs}\xspace} +\def\Webc{Web2C} +\providecommand*{\CD}{\acro{CD}\xspace} +\providecommand*{\CTAN}{\acro{CTAN}\xspace} +\providecommand*{\DVD}{\acro{DVD}\xspace} +\providecommand*{\HTML}{\acro{HTML}\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] +} +% +% 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. +\newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + +\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 +% +\newif\ifSingleColumn +\providecommand{\Status}{0} +%\typeout{Status is \Status} +% +% 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 +% +\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, + pagecolor=hypercolor,urlcolor=hypercolor, + filecolor=hypercolor, + bookmarksopen,pdfstartview={FitBH -320000},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}} + \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/source/english/texlive-en/archive/texlive.pl b/Master/texmf-doc/source/english/texlive-en/archive/texlive.pl new file mode 100644 index 00000000000..33a19a801d6 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/archive/texlive.pl @@ -0,0 +1,574 @@ +$texlive{"a0poster"}="latex3"; +$texlive{"aaai"}="latex3"; +$texlive{"abstyles"}="bibtex3"; +$texlive{"accfonts"}="fonts3"; +$texlive{"achemso"}="latex3"; +$texlive{"acronym"}="latex3"; +$texlive{"adfathesis"}="latex3"; +$texlive{"adobeother"}="fonts3"; +$texlive{"adobestd"}="fonts1"; +$texlive{"adrlist"}="latex3"; +$texlive{"ae"}="fonts2"; +$texlive{"aguplus"}="latex3"; +$texlive{"aiaa"}="latex3"; +$texlive{"akletter"}="latex3"; +$texlive{"alatex"}="formats3"; +$texlive{"alg"}="latex3"; +$texlive{"algorithms"}="latex3"; +$texlive{"alphaev5-osf4.0d"}="systems1"; +$texlive{"alphaev5-osf4.0d"}="systems2"; +$texlive{"alphaev5-osf4.0d"}="systems3"; +$texlive{"altfont"}="latex3"; +$texlive{"amsfonts"}="fonts2"; +$texlive{"amslatex"}="latex2"; +$texlive{"amstex"}="plain2"; +$texlive{"answers"}="latex3"; +$texlive{"antyktor"}="fonts3"; +$texlive{"apa"}="latex3"; +$texlive{"apl"}="fonts3"; +$texlive{"appendix"}="latex3"; +$texlive{"ar"}="fonts3"; +$texlive{"arabtex"}="lang3"; +$texlive{"arydshln"}="latex3"; +$texlive{"asaetr"}="latex3"; +$texlive{"ascii"}="fonts3"; +$texlive{"astro"}="fonts3"; +$texlive{"aurora"}="dvips3"; +$texlive{"authorindex"}="latex3"; +$texlive{"autotab"}="latex3"; +$texlive{"babel"}="generic2"; +$texlive{"backgammon"}="fonts3"; +$texlive{"bakoma"}="fonts2"; +$texlive{"barcode2"}="fonts3"; +$texlive{"barcodes"}="fonts3"; +$texlive{"barr"}="graphics3"; +$texlive{"bbding"}="fonts3"; +$texlive{"bbm"}="fonts3"; +$texlive{"bbold"}="fonts3"; +$texlive{"bbtbase"}="bibtex1"; +$texlive{"bbtdoc"}="bibtex2"; +$texlive{"beebe"}="bibtex2"; +$texlive{"belleek"}="fonts2"; +$texlive{"beton"}="latex3"; +$texlive{"bez123"}="latex3"; +$texlive{"bezos"}="latex3"; +$texlive{"bibarts"}="bibtex3"; +$texlive{"biblist"}="latex3"; +$texlive{"blue"}="formats3"; +$texlive{"bluesky"}="fonts1"; +$texlive{"booktabs"}="latex2"; +$texlive{"borceux"}="graphics3"; +$texlive{"bosisio"}="latex3"; +$texlive{"bridge"}="latex3"; +$texlive{"brushscr"}="fonts3"; +$texlive{"c-pascal"}="generic3"; +$texlive{"calendar"}="latex3"; +$texlive{"calligra"}="fonts3"; +$texlive{"calrsfs"}="latex3"; +$texlive{"camel"}="latex3"; +$texlive{"caption"}="latex2"; +$texlive{"carlisle"}="latex2"; +$texlive{"casyl"}="lang3"; +$texlive{"catalog"}="doc2"; +$texlive{"cbgreek"}="fonts3"; +$texlive{"cc-pl"}="fonts2"; +$texlive{"ccaption"}="latex3"; +$texlive{"ccfonts"}="latex3"; +$texlive{"cchess"}="fonts3"; +$texlive{"cdcover"}="latex3"; +$texlive{"cellular"}="plain3"; +$texlive{"changebar"}="latex2"; +$texlive{"chemcono"}="latex3"; +$texlive{"chemsym"}="latex3"; +$texlive{"cheq"}="fonts3"; +$texlive{"cherokee"}="fonts3"; +$texlive{"chess"}="fonts3"; +$texlive{"china2e"}="latex3"; +$texlive{"circ"}="graphics3"; +$texlive{"cirth"}="fonts3"; +$texlive{"cite"}="latex2"; +$texlive{"cjk"}="lang3"; +$texlive{"cm"}="fonts1"; +$texlive{"cmbright"}="fonts2"; +$texlive{"cmcyr"}="fonts3"; +$texlive{"cmcyralt"}="latex3"; +$texlive{"cmdtrack"}="latex2"; +$texlive{"cmextra"}="fonts2"; +$texlive{"cmpica"}="fonts3"; +$texlive{"cmpk"}="fonts3"; +$texlive{"cmsd"}="latex3"; +$texlive{"codepage"}="latex3"; +$texlive{"colorsep"}="dvips3"; +$texlive{"colortab"}="plain3"; +$texlive{"comment"}="latex3"; +$texlive{"concmath"}="fonts3"; +$texlive{"concrete"}="fonts3"; +$texlive{"context"}="formats2"; +$texlive{"covington"}="latex3"; +$texlive{"croatian"}="lang3"; +$texlive{"crop"}="latex3"; +$texlive{"crossword"}="latex3"; +$texlive{"crosswrd"}="latex3"; +$texlive{"csfonts"}="fonts2"; +$texlive{"cslatex"}="lang2"; +$texlive{"csplain"}="lang2"; +$texlive{"cspsfonts"}="fonts2"; +$texlive{"cstug"}="doc3"; +$texlive{"cursor"}="latex3"; +$texlive{"curves"}="graphics3"; +$texlive{"custom-bib"}="bibtex2"; +$texlive{"cyrillic"}="lang2"; +$texlive{"dancers"}="fonts3"; +$texlive{"deleq"}="latex3"; +$texlive{"devanagari"}="lang3"; +$texlive{"dialogl"}="latex3"; +$texlive{"dinbrief"}="latex3"; +$texlive{"directory"}="bibtex3"; +$texlive{"dotseqn"}="latex3"; +$texlive{"draftcopy"}="latex3"; +$texlive{"dratex"}="graphics3"; +$texlive{"dropping"}="latex3"; +$texlive{"dstroke"}="fonts3"; +$texlive{"dtk"}="latex3"; +$texlive{"duerer"}="fonts3"; +$texlive{"dvipdfm"}="doc2"; +$texlive{"dvipsbase"}="dvips1"; +$texlive{"dvipsdoc"}="dvips2"; +$texlive{"ean"}="generic3"; +$texlive{"easy"}="latex3"; +$texlive{"ec"}="fonts2"; +$texlive{"ecc"}="fonts3"; +$texlive{"ecltree"}="latex2"; +$texlive{"eco"}="fonts3"; +$texlive{"ecpk"}="fonts3"; +$texlive{"edmac"}="plain3"; +$texlive{"eepic"}="graphics2"; +$texlive{"egplot"}="latex3"; +$texlive{"eiad"}="fonts3"; +$texlive{"eijkhout"}="generic3"; +$texlive{"elsevier"}="latex3"; +$texlive{"elvish"}="fonts3"; +$texlive{"emp"}="latex3"; +$texlive{"emulateapj"}="latex3"; +$texlive{"encodings"}="omega2"; +$texlive{"endfloat"}="latex3"; +$texlive{"engwar"}="fonts3"; +$texlive{"envbig"}="latex3"; +$texlive{"envlab"}="latex3"; +$texlive{"epigraph"}="latex3"; +$texlive{"eplain"}="formats2"; +$texlive{"eqname"}="latex3"; +$texlive{"eqnarray"}="latex3"; +$texlive{"esieecv"}="latex3"; +$texlive{"etexbase"}="etex2"; +$texlive{"etruscan"}="fonts3"; +$texlive{"euler"}="latex3"; +$texlive{"euro"}="fonts2"; +$texlive{"euro2"}="latex3"; +$texlive{"eurofont"}="fonts2"; +$texlive{"europs"}="fonts2"; +$texlive{"eurosans"}="latex3"; +$texlive{"eurosym"}="fonts2"; +$texlive{"euxm"}="fonts3"; +$texlive{"exam"}="latex3"; +$texlive{"examdesign"}="latex3"; +$texlive{"expdlist"}="latex3"; +$texlive{"expl3"}="latex3"; +$texlive{"export"}="latex3"; +$texlive{"fancybox"}="latex2"; +$texlive{"fancyhdr"}="latex2"; +$texlive{"fancyref"}="latex2"; +$texlive{"fancyvrb"}="latex2"; +$texlive{"fax"}="latex3"; +$texlive{"fc"}="fonts3"; +$texlive{"feynmf"}="graphics3"; +$texlive{"finbib"}="bibtex3"; +$texlive{"float"}="latex2"; +$texlive{"floatfig"}="latex3"; +$texlive{"floatflt"}="latex3"; +$texlive{"fltpage"}="latex3"; +$texlive{"fncychap"}="latex3"; +$texlive{"foilhtml"}="latex3"; +$texlive{"foiltex"}="latex3"; +$texlive{"fontinst"}="generic2"; +$texlive{"fontname"}="doc2"; +$texlive{"footbib"}="latex3"; +$texlive{"footmisc"}="latex2"; +$texlive{"footnpag"}="latex3"; +$texlive{"formats"}="texlive2"; +$texlive{"formula"}="latex3"; +$texlive{"fp"}="latex3"; +$texlive{"frankenstein"}="latex3"; +$texlive{"french"}="lang2"; +$texlive{"fribrief"}="latex3"; +$texlive{"fullblck"}="latex3"; +$texlive{"fullpict"}="latex3"; +$texlive{"fundus"}="latex3"; +$texlive{"futhark"}="fonts3"; +$texlive{"g-brief"}="latex3"; +$texlive{"gb4e"}="latex3"; +$texlive{"genealogy"}="fonts3"; +$texlive{"general"}="doc1"; +$texlive{"genmisc"}="generic3"; +$texlive{"geometry"}="latex3"; +$texlive{"geomsty"}="latex3"; +$texlive{"german"}="lang2"; +$texlive{"germbib"}="bibtex2"; +$texlive{"germdoc"}="doc2"; +$texlive{"gloss"}="latex3"; +$texlive{"gn-logic"}="latex3"; +$texlive{"go"}="fonts3"; +$texlive{"gothic"}="fonts3"; +$texlive{"graphics"}="latex1"; +$texlive{"greek6cbc"}="fonts3"; +$texlive{"grnumalt"}="latex3"; +$texlive{"grtimes"}="lang3"; +$texlive{"guides"}="doc2"; +$texlive{"gustlib"}="plain2"; +$texlive{"hands"}="fonts3"; +$texlive{"hanging"}="latex3"; +$texlive{"harpoon"}="latex3"; +$texlive{"harvard"}="bibtex2"; +$texlive{"harvmac"}="plain3"; +$texlive{"hh"}="latex3"; +$texlive{"hilowres"}="latex3"; +$texlive{"histogr"}="latex3"; +$texlive{"hoekwater"}="fonts2"; +$texlive{"hppa1.1-hpux10.10"}="systems1"; +$texlive{"hppa1.1-hpux10.10"}="systems2"; +$texlive{"hppa1.1-hpux10.10"}="systems3"; +$texlive{"html"}="doc2"; +$texlive{"hvmaths"}="fonts3"; +$texlive{"hyper"}="latex3"; +$texlive{"hyperref"}="latex2"; +$texlive{"hyphen"}="lang1"; +$texlive{"hyphenat"}="latex3"; +$texlive{"i386-linux"}="systems1"; +$texlive{"i386-linux"}="systems2"; +$texlive{"i386-linux"}="systems3"; +$texlive{"i386-linux-libc5"}="systems1"; +$texlive{"i386-linux-libc5"}="systems2"; +$texlive{"i386-linux-libc5"}="systems3"; +$texlive{"ibm"}="fonts3"; +$texlive{"ieeepes"}="latex3"; +$texlive{"ifacmtg"}="latex3"; +$texlive{"imac"}="latex3"; +$texlive{"indxcite"}="latex3"; +$texlive{"info"}="doc2"; +$texlive{"ini"}="texlive1"; +$texlive{"insbox"}="generic3"; +$texlive{"ipa"}="latex3"; +$texlive{"isostds"}="latex3"; +$texlive{"jadetex"}="formats2"; +$texlive{"jhep"}="latex3"; +$texlive{"jknappen"}="latex2"; +$texlive{"jsmisc"}="plain3"; +$texlive{"jura"}="latex3"; +$texlive{"kalender"}="latex3"; +$texlive{"karnaugh"}="latex3"; +$texlive{"kdgreek"}="fonts3"; +$texlive{"kluwer"}="latex3"; +$texlive{"knuth"}="doc3"; +$texlive{"koma-script"}="latex3"; +$texlive{"kuvio"}="graphics3"; +$texlive{"labels"}="latex3"; +$texlive{"lamstex"}="formats3"; +$texlive{"lastpage"}="latex3"; +$texlive{"latexfonts"}="latex1"; +$texlive{"layouts"}="latex3"; +$texlive{"leaflet"}="latex3"; +$texlive{"leftidx"}="latex3"; +$texlive{"lettrine"}="latex3"; +$texlive{"levy"}="latex3"; +$texlive{"lgc"}="doc3"; +$texlive{"lgreek"}="latex3"; +$texlive{"lh"}="fonts2"; +$texlive{"lhcyr"}="latex3"; +$texlive{"lineno"}="latex3"; +$texlive{"linguex"}="latex3"; +$texlive{"listings"}="latex3"; +$texlive{"lkort"}="doc3"; +$texlive{"localloc"}="latex3"; +$texlive{"logic"}="fonts3"; +$texlive{"lollipop"}="formats3"; +$texlive{"ltablex"}="latex3"; +$texlive{"ltx2rtf"}="texlive2"; +$texlive{"ltxbase"}="latex1"; +$texlive{"ltxdoc"}="doc2"; +$texlive{"ltxdoc"}="latex1"; +$texlive{"ltxmisc"}="latex2"; +$texlive{"lucida"}="fonts2"; +$texlive{"ly1"}="latex3"; +$texlive{"mailing"}="latex3"; +$texlive{"makeindex"}="doc1"; +$texlive{"malayalam"}="lang3"; +$texlive{"malvern"}="fonts3"; +$texlive{"mapcodes"}="latex3"; +$texlive{"maple"}="latex3"; +$texlive{"margbib"}="latex3"; +$texlive{"marvosym"}="fonts3"; +$texlive{"mathcomp"}="latex2"; +$texlive{"mathematica"}="fonts3"; +$texlive{"mathpple"}="fonts3"; +$texlive{"mcite"}="latex3"; +$texlive{"mdwtools"}="latex3"; +$texlive{"metasupp"}="texlive1"; +$texlive{"method"}="latex3"; +$texlive{"mex"}="lang2"; +$texlive{"mff"}="latex3"; +$texlive{"mflogo"}="latex2"; +$texlive{"mfmisc"}="fonts1"; +$texlive{"mfnfss"}="latex2"; +$texlive{"mfpic"}="graphics3"; +$texlive{"mft"}="texlive1"; +$texlive{"mftoeps"}="fonts3"; +$texlive{"mhs"}="latex3"; +$texlive{"midnight"}="generic3"; +$texlive{"minitoc"}="latex3"; +$texlive{"mips-irix6.2"}="systems1"; +$texlive{"mips-irix6.2"}="systems2"; +$texlive{"mips-irix6.2"}="systems3"; +$texlive{"misc209"}="latex2"; +$texlive{"mltex"}="latex2"; +$texlive{"mnras"}="plain3"; +$texlive{"monotype"}="fonts3"; +$texlive{"montex"}="lang3"; +$texlive{"morehelp"}="latex3"; +$texlive{"moresize"}="latex3"; +$texlive{"moreverb"}="latex3"; +$texlive{"morse"}="fonts3"; +$texlive{"mpattern"}="metapost2"; +$texlive{"mpbase"}="metapost1"; +$texlive{"mpfnmark"}="latex3"; +$texlive{"ms"}="latex3"; +$texlive{"mslapa"}="latex3"; +$texlive{"mtbe"}="plain3"; +$texlive{"multenum"}="latex3"; +$texlive{"multi"}="dvips3"; +$texlive{"multirow"}="latex3"; +$texlive{"musictex"}="generic3"; +$texlive{"musixtex"}="generic3"; +$texlive{"nassflow"}="latex3"; +$texlive{"natbib"}="bibtex2"; +$texlive{"ncctools"}="latex2"; +$texlive{"newalg"}="latex3"; +$texlive{"newlfm"}="latex3"; +$texlive{"newsletr"}="plain3"; +$texlive{"newthm"}="latex3"; +$texlive{"niceframe"}="latex3"; +$texlive{"nomencl"}="latex3"; +$texlive{"nrc"}="latex3"; +$texlive{"ntg"}="doc3"; +$texlive{"ntgclass"}="latex2"; +$texlive{"ntheorem"}="latex3"; +$texlive{"numline"}="latex3"; +$texlive{"objectz"}="latex3"; +$texlive{"oca"}="fonts3"; +$texlive{"ocr-a"}="fonts3"; +$texlive{"ogham"}="fonts3"; +$texlive{"ogonek"}="latex3"; +$texlive{"oldstyle"}="latex3"; +$texlive{"omegabase"}="omega2"; +$texlive{"omegafonts"}="omega2"; +$texlive{"osmanian"}="fonts3"; +$texlive{"ot2cyr"}="fonts2"; +$texlive{"overpic"}="latex3"; +$texlive{"pacioli"}="fonts3"; +$texlive{"pageno"}="latex3"; +$texlive{"pandora"}="fonts3"; +$texlive{"paper"}="latex3"; +$texlive{"paralist"}="latex3"; +$texlive{"parallel"}="latex3"; +$texlive{"patch"}="latex2"; +$texlive{"pawpict"}="latex3"; +$texlive{"pb-diagram"}="latex3"; +$texlive{"pdcmac"}="plain3"; +$texlive{"pdfscreen"}="latex3"; +$texlive{"pdftex"}="pdftex2"; +$texlive{"permute"}="latex3"; +$texlive{"phoenician"}="fonts3"; +$texlive{"phonetic"}="fonts3"; +$texlive{"physe"}="formats3"; +$texlive{"phyzzx"}="formats3"; +$texlive{"picinpar"}="latex3"; +$texlive{"picins"}="latex3"; +$texlive{"pictex"}="graphics2"; +$texlive{"piff"}="latex3"; +$texlive{"pl"}="latex3"; +$texlive{"pl-qx"}="fonts2"; +$texlive{"plainmisc"}="plain1"; +$texlive{"plaintex"}="plain1"; +$texlive{"plari"}="latex3"; +$texlive{"platex"}="lang2"; +$texlive{"play"}="latex3"; +$texlive{"plcalendar"}="plain3"; +$texlive{"plfonts"}="fonts2"; +$texlive{"plgraph"}="generic3"; +$texlive{"plpatch"}="plain3"; +$texlive{"pmgraph"}="latex3"; +$texlive{"poligraf"}="generic3"; +$texlive{"polish"}="doc3"; +$texlive{"polyglot"}="latex3"; +$texlive{"prettyref"}="latex3"; +$texlive{"progkeys"}="latex3"; +$texlive{"program"}="latex3"; +$texlive{"proofs"}="latex3"; +$texlive{"protex"}="generic3"; +$texlive{"psafm"}="fonts3"; +$texlive{"psfig"}="generic3"; +$texlive{"psfrag"}="graphics2"; +$texlive{"psizzl"}="formats3"; +$texlive{"pslatex"}="latex2"; +$texlive{"psnfss"}="latex1"; +$texlive{"psnfssx"}="latex2"; +$texlive{"pspicture"}="latex2"; +$texlive{"pstricks"}="graphics2"; +$texlive{"punk"}="fonts3"; +$texlive{"qfonts"}="fonts2"; +$texlive{"qobitree"}="graphics3"; +$texlive{"qsymbols"}="latex3"; +$texlive{"quotchap"}="latex3"; +$texlive{"r-und-s"}="latex3"; +$texlive{"rcs"}="latex3"; +$texlive{"rcsinfo"}="latex3"; +$texlive{"realcalc"}="generic3"; +$texlive{"refcheck"}="latex3"; +$texlive{"refman"}="latex3"; +$texlive{"relenc"}="latex3"; +$texlive{"revtex"}="latex2"; +$texlive{"rlepsf"}="generic3"; +$texlive{"rmpage"}="latex3"; +$texlive{"rotating"}="latex2"; +$texlive{"rotfloat"}="latex3"; +$texlive{"rplain"}="latex3"; +$texlive{"rs6000-aix4.1.4.0"}="systems1"; +$texlive{"rs6000-aix4.1.4.0"}="systems2"; +$texlive{"rs6000-aix4.1.4.0"}="systems3"; +$texlive{"rsfs"}="fonts2"; +$texlive{"ruhyphen"}="lang1"; +$texlive{"runic"}="fonts3"; +$texlive{"sanskrit"}="fonts3"; +$texlive{"sauterfonts"}="latex3"; +$texlive{"scale"}="latex3"; +$texlive{"schedule"}="latex3"; +$texlive{"script"}="latex3"; +$texlive{"sectsty"}="latex3"; +$texlive{"semantic"}="latex3"; +$texlive{"seminar"}="latex2"; +$texlive{"setspace"}="latex3"; +$texlive{"shadbox"}="latex3"; +$texlive{"shadethm"}="latex3"; +$texlive{"shortlst"}="latex3"; +$texlive{"shorttoc"}="latex3"; +$texlive{"showdim"}="latex3"; +$texlive{"showlabels"}="latex3"; +$texlive{"siam"}="generic3"; +$texlive{"sidecap"}="latex3"; +$texlive{"siggraph"}="latex3"; +$texlive{"simpsons"}="fonts3"; +$texlive{"siunits"}="latex3"; +$texlive{"slashbox"}="latex3"; +$texlive{"slidenotes"}="latex3"; +$texlive{"smallcap"}="latex3"; +$texlive{"songbook"}="latex3"; +$texlive{"soul"}="latex3"; +$texlive{"sparc-solaris2.5.1"}="systems1"; +$texlive{"sparc-solaris2.5.1"}="systems2"; +$texlive{"sparc-solaris2.5.1"}="systems3"; +$texlive{"sprite"}="graphics3"; +$texlive{"ssqquote"}="latex3"; +$texlive{"startex"}="formats3"; +$texlive{"stdclsdv"}="latex3"; +$texlive{"stmaryrd"}="fonts2"; +$texlive{"subeqn"}="latex3"; +$texlive{"subeqnarray"}="latex3"; +$texlive{"subfigure"}="latex3"; +$texlive{"supertabular"}="latex3"; +$texlive{"synttree"}="latex3"; +$texlive{"t2"}="lang3"; +$texlive{"tabbing"}="latex3"; +$texlive{"tap"}="generic2"; +$texlive{"taylor"}="graphics3"; +$texlive{"tbe"}="plain3"; +$texlive{"tcx"}="texlive1"; +$texlive{"tds"}="doc1"; +$texlive{"tengwar"}="fonts3"; +$texlive{"tetex"}="doc1"; +$texlive{"tex-ps"}="generic2"; +$texlive{"tex4ht"}="latex2"; +$texlive{"texdraw"}="graphics3"; +$texlive{"texinfo"}="plain2"; +$texlive{"texip"}="formats3"; +$texlive{"texlive"}="texlive1"; +$texlive{"texsis"}="formats3"; +$texlive{"text1"}="formats3"; +$texlive{"textfit"}="latex3"; +$texlive{"textmerg"}="latex3"; +$texlive{"textpos"}="latex3"; +$texlive{"thesis"}="latex3"; +$texlive{"threed"}="metapost2"; +$texlive{"thumb"}="latex3"; +$texlive{"thumbpdf"}="latex3"; +$texlive{"timesht"}="latex3"; +$texlive{"timing"}="latex3"; +$texlive{"tipa"}="fonts2"; +$texlive{"titlefoot"}="latex3"; +$texlive{"titlesec"}="latex3"; +$texlive{"tmmaths"}="fonts3"; +$texlive{"tocbibind"}="latex3"; +$texlive{"tocloft"}="latex3"; +$texlive{"tocvsec2"}="latex3"; +$texlive{"tools"}="latex1"; +$texlive{"tracking"}="latex3"; +$texlive{"treesvr"}="latex3"; +$texlive{"treetex"}="plain3"; +$texlive{"ttf2pk"}="texlive2"; +$texlive{"tug"}="doc3"; +$texlive{"tugboat"}="generic2"; +$texlive{"type1"}="fonts2"; +$texlive{"type1cm"}="latex3"; +$texlive{"typespec"}="plain3"; +$texlive{"uaclasses"}="latex3"; +$texlive{"ucthesis"}="latex3"; +$texlive{"ulsy"}="latex3"; +$texlive{"umlaute"}="latex3"; +$texlive{"umrand"}="fonts3"; +$texlive{"underlin"}="latex3"; +$texlive{"uni"}="fonts3"; +$texlive{"units"}="latex3"; +$texlive{"universa"}="fonts3"; +$texlive{"unsupported"}="fonts3"; +$texlive{"urwstd"}="fonts2"; +$texlive{"useful"}="doc2"; +$texlive{"ut-thesis"}="latex3"; +$texlive{"utthesis"}="latex3"; +$texlive{"uwthesis"}="latex3"; +$texlive{"vdm"}="latex3"; +$texlive{"vector"}="latex3"; +$texlive{"vertex"}="plain3"; +$texlive{"vita"}="latex3"; +$texlive{"vrb"}="latex3"; +$texlive{"vrsion"}="latex3"; +$texlive{"warpcol"}="latex3"; +$texlive{"wasy"}="fonts2"; +$texlive{"wasysym"}="latex2"; +$texlive{"williams"}="latex3"; +$texlive{"win32"}="systems1"; +$texlive{"win32"}="systems2"; +$texlive{"win32"}="systems3"; +$texlive{"windvi"}="doc1"; +$texlive{"wnri"}="fonts3"; +$texlive{"wntamil"}="lang3"; +$texlive{"wsuipa"}="fonts2"; +$texlive{"xtab"}="latex3"; +$texlive{"xtcapts"}="latex3"; +$texlive{"xymtex"}="latex3"; +$texlive{"xypic"}="graphics2"; +$texlive{"yannisgr"}="fonts3"; +$texlive{"yfonts"}="latex3"; +$texlive{"yhmath"}="latex3"; +$texlive{"yi4latex"}="lang3"; +$texlive{"youngtab"}="latex3"; +$texlive{"ytex"}="formats3"; +$texlive{"zed-csp"}="latex3"; +$texlive{"zefonts"}="fonts2"; diff --git a/Master/texmf-doc/source/english/texlive-en/live.tex b/Master/texmf-doc/source/english/texlive-en/live.tex new file mode 100644 index 00000000000..0a70e15823f --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/live.tex @@ -0,0 +1,3174 @@ +% $Id: //depot/Master/texmf-doc/source/english/texlive-en/live.tex#31 $ $Author: staw $ $Date: 2005/10/31 $ +% 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} +\begin{document} + +\title{% + {\huge \textit{The \protect\TL{} Guide}\\\strut} + {\LARGE \textsf{\TK{} 2005}} +} + +\author{Sebastian Rahtz \& Karl Berry, editors \\[3mm] + \url{http://tug.org/texlive/} + } + +\date{October 2005} + +\maketitle + +\begin{multicols}{2} +\tableofcontents +\listoftables +\end{multicols} + +\section{Introduction} +\label{sec:intro} + +This document describes the main features of the \TL{} software +distribution\Dash \TeX{} and friends for \acro{GNU}/Linux and other Unix +flavors, \MacOSX, and (32-bit) Windows systems. (Warning: it is not +especially useful for older Mac or \acro{MS-DOS} systems.) + +\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. It is part of the even larger \TK{} +(briefly described below in section~\ref{sec:struct-tl}, +\p.\pageref{sec:struct-tl}). Both are cooperative efforts by the \TeX\ +user groups. + +For newer versions of the packages included here, please check +\acro{CTAN}: \url{http://www.ctan.org}. + +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{Basic usage of \protect\TL{}} +\label{sec:basic} + +You can use \TL{} in three principal ways: + +\begin{enumerate} + +\item You can run \TL{} directly from the \pkgname{live} \DVD +(see section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}). +This takes almost no disk space, and gives you immediate access to +everything in \TL{}. Of course performance will be worse than running +on local disk, but you may well find it useful. + +\item You can install all or part of \TL{} to a local disk, from either +the \DVD\ or the \pkgname{inst} \acro{CD}. This is the most common use +of \TL. You will need (approximately) 100 megabytes for the most +minimal system, and upwards of 1.3 gigabytes for a full system. + +\item You can integrate a particular package or collection into your +existing \TeX{} system, either a \TL{} system you installed +earlier, or a different system. + +\end{enumerate} + +\noindent All of these are described in detail in the \acro{OS}-specific +installation sections following, but here is a quick start: + +\begin{itemize*} + +\item The main installation script for Unix and \MacOSX{} is +\texttt{install-tl.sh}. + +\item The single package installation script is \texttt{install-pkg.sh}. + +\item The installation program for Windows is \texttt{tlpmgui.exe}. +It can be used also for adding or removing the packages. +See section~\ref{sec:win-install} below for more information. + +\end{itemize*} + + +\subsection{Getting help} +\label{sec:help} + +The \TeX{} community is both active and friendly, and virtually all +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 forego \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-doc/doc/english/FAQ-en}, 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 +\OnCD{texmf-doc/doc/english/catalogue}, or +\url{http://www.ctan.org/tex-archive/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/groups?group=comp.text.tex} 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 on asking questions in such a +way that you're most likely to get an 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{}, you are better off writing to that program's maintainer or +mailing list. + +\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. Welcome to +\TeX{}! + + +% 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{Structure of \protect\TeX\protect\ Live} +\label{sec:struct-tl} + +This section describes the structure and contents of \TL{} and the +\TK{} of which it is a part. + +\subsection{Multiple distributions: \protect\pkgname{live}, + \protect\pkgname{inst}, + \protect\pkgname{protext}} +\label{sec:multiple-dist} + +Space limitations of \acro{CD-ROM} format have forced us to divide +\TK{} into several distributions, as follows. + +\begin{description} + +\item [live] A complete system on \acro{DVD}; it is too large +for \acro{CD}. It can be run live or installed to disk. It also +includes a snapshot of the \CTAN{} repository, the \pkgname{protext} +distribution for Windows and the Mac\TeX\ distribution for \MacOSX, entirely +independent of \TL{}, as well as assorted other packages in a +\texttt{texmf-extra} directory. + +\CTAN{}, \pkgname{protext}, Mac\TeX, and \texttt{texmf-extra} do not follow +the same copying conditions as \TL{}, so be careful when redistributing or +modifying. + +\item [inst(allable)] A complete system on \CD; in order to make this fit, +the packages and programs are compressed. Therefore, it is not possible +to run \TeX\ directly from the installable \CD, you have to install it +to disk (hence its name). Installation is described in subsequent sections. + +\item [protext] 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. It can be run live, or installed to disk. +The \ProTeXt\ home page is \url{http://tug.org/protext}. + +\ProTeXt\ is provided as both the top level of the \pkgname{live} \DVD\ +and on its own \CD\ (for those who cannot use the \DVD). + +\end{description} + +\noindent You can tell which type of distribution you're in by looking +for a \texttt{00\var{type}.TL} file at the top of the \TL{} directory. +This file also contains the \TL{} release date. + +Naturally, each user group chooses what to distribute, at its own +discretion. (\acro{TUG} is sending all three discs above to all of its +members.) + + +\subsection{Top level directories} +\label{sec:tld} + +Here is a brief listing and description of the top level directories in +the \TL{} distribution. On the \pkgname{live} \DVD, the entire \TL{} +hierarchy is in a subdirectory \dirname{texlive2005}, not at the top +level of the disc. + +\smallskip +\begingroup + \renewcommand{\arraystretch}{1.3} % open up interrow spacing +\begin{tabular}{>{\ttfamily}lp{.78\hsize}} +bin & The \TeX{} system programs, arranged by platform. \\ +source & The source of all programs, including the main \Webc{} + \TeX{} and \MF{} distributions. These are stored in a + \cmdname{bzip2}-compressed tar archive. \\ +support & Assorted auxiliary packages and programs. These are + \emph{not} installed automatically. This includes + assorted editors and \TeX\ shells. \\ +texmf & Tree for the programs, along with their support files and + documentation. Does not include \TeX\ formats and packages. + (\texttt{TEXMFMAIN} in the next section.) \\ +texmf-dist & The main tree of formats and packages. + (\texttt{TEXMFDIST} in the next section.) \\ +texmf-doc & Tree for self-contained pure documentation, arranged by + language. \\ +texmf-var & Tree for files automatically generated and stored. + (\texttt{TEXMFSYSVAR} in the next section.) \\ +xemtex & Tree for supporting programs used only in Windows. + These programs generally come pre-installed on Unix systems, or are + at least easy to compile. \\ +\end{tabular} +\endgroup + +\smallskip + +In addition to the directories above, the installation scripts and +\filename{README} files (in various languages) are at the top level of +the distribution. + +The \dirname{texmf-doc} directory contains only documentation, but +it does not contain all the documentation. The documentation for the +programs (manuals, man pages, Info files) is in \dirname{texmf/doc}, +since the programs are in \dirname{texmf}. Similarly, the documentation +for \TeX\ packages and formats is in \dirname{texmf-dist/doc}. You can +use the \cmdname{texdoc} or \cmdname{texdoctk} programs to find any +documentation wherever it's located. The comprehensive links in the +top-level file \OnCD{doc.html} may also be helpful. + + +\subsection{Overview of the predefined texmf trees} +\label{sec:texmftrees} + +This section lists all predefined variables specifying texmf trees used +by the system, and their intended purpose. The command \texttt{texconfig +conf} shows you the values of these variables, so that you can easily +find out how they map to directory names in your installation. + +\begin{ttdescription} +\item [TEXMFMAIN] The tree which holds vital parts of the system + such as helper scripts (e.g., \verb+web2c/mktexdir+), pool files and + other support files. +\item [TEXMFDIST] The tree which holds the main set of macro packages, + fonts, etc., as originally distributed. +\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 depends on \verb+$HOME+ by default, % $ + which dynamically adjusts for each user to an individual + directory. +\item [TEXMFCONFIG] The tree used by te\TeX's utilities + \verb+texconfig+, \verb+updmap+, and \verb+fmtutil+ to store modified + configuration data. Under \verb+$HOME+ by default. %$ +\item [TEXMFSYSCONFIG] The tree used by te\TeX's utilities + \verb+texconfig-sys+, \verb+updmap-sys+, and \verb+fmtutil-sys+ to + store modified configuration data. +\item [TEXMFVAR] The tree used by \verb+texconfig+, \verb+updmap+ and + \verb+fmtutil+ to store (cached) runtime data such as format files and + generated map files. Under \verb+$HOME+ by default. %$ +\item [TEXMFSYSVAR] The tree used by \verb+texconfig-sys+, + \verb+updmap-sys+ and \verb+fmtutil-sys+ to store (cached) runtime + data such as format files and generated map files. +\end{ttdescription} + +For more discussion of \texttt{texconfig} and related utilities, please +see section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}. + + +\subsection{Extensions to \protect\TeX} +\label{sec:tex-extensions} + +\TL{} contains several extended versions of \TeX: + +\begin{description} + +\item [\eTeX] adds a small but powerful 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] writes Acrobat \acro{PDF} format as well as \dvi{}. The +\LaTeX{} \pkgname{hyperref} package has an option `\optname{pdftex}' +which turns on all the program features. See +\OnCD{texmf/doc/pdftex/manual/} for the manual, and +\OnCD{texmf/doc/pdftex/manual/samplepdf/samplepdf.tex}. + +\item [pdfe\TeX] combines the pdf\TeX\ and \eTeX\ extensions. This is +the default program for all formats except plain \TeX. +See above for documentation. + +\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. See +\OnCD{texmf-dist/doc/omega/base/doc-1.8.tex} (not completely up-to-date). + +\item [Aleph] combines the \OMEGA\ and \eTeX\ extensions. +See \OnCD{texmf-dist/doc/aleph/base} for some minimal documentation. + +\end{description} + + +\subsection{Other notable programs in \protect\TL} + +Here are a few other commonly-used programs included in \TL{}: + +\begin{cmddescription} + +\item [bibtex] bibliography support. + +\item [makeindex] 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 [dv2dt, dt2dv] convert \dvi{} to/from plain text. + +\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). See the \pkgname{ps4pdf} and +\pkgname{pdftricks} packages for still more alternatives. + +\item [psselect, psnup, \ldots] \PS{} +utilities. + +\item [lacheck] \LaTeX{} syntax checker. + +\item [texexec] Con\TeX{}t and \acro{PDF} processor. + +\item [tex4ht] \TeX{} to \acro{HTML} converter. + +\end{cmddescription} + + +\section{Unix installation} +\label{sec:unix-install} + +As introduced in section~\ref{sec:basic} (\p.\pageref{sec:basic}), +\TL{} has three principal uses: + +\begin{enumerate} +\item Run directly from media. +\item Install to disk. +\item Integrate a particular package or collection into your existing +\TeX{} installation. +\end{enumerate} + +\noindent The following sections describes the Unix-specific procedures +for each of these. + +\ifSingleColumn \begin{figure}[ht]\noindent \fi +\begin{warningbox} +\textbf{Warning: } The \TK{} \CD{}s and \DVD{} are in ISO 9660 (High Sierra) +format, \emph{with} Rock Ridge (and Joliet, for Windows) +extensions. Therefore, in order to take full advantage of the \TK{} +under Unix, your system needs to be able to use the Rock Ridge +extensions. Please consult the documentation for your \cmdname{mount} +command to see how to do this. If you have several different machines +on a local network, you may be able to mount the discs on one which +does support Rock Ridge, and use this with the others. + +\leavevmode\quad Modern systems should be able to use the discs without +problems. If troubles, let us know. The discussion below assumes you +have been able to mount the \CD{}s with full Rock Ridge compatibility. +\end{warningbox} +\ifSingleColumn\end{figure}\fi + + +% +\subsection{Running \protect\TL{} directly from media (Unix)} + +\def\runlive{% text repeated in windows section +It is possible to use the \TeX{} system directly from the \pkgname{live} +\DVD{}, without installing the distribution to disk. (Thus the name +\TeX\ `Live', in fact.) It is \emph{not} possible to run \TeX{} +directly from the other \CD{}s (see section~\ref{sec:multiple-dist}, +\p.\pageref{sec:multiple-dist}). +} + +\def\startinst{% repeated in other subsections +To start, you mount the \CD{} or \DVD{}, with Rock Ridge extensions +enabled. The exact command to do this varies from system to system; the +following works under Linux, except the name of the device +(\filename{/dev/cdrom}, here) may vary. (All our examples will use +\texttt{>} as the shell prompt; user input is +\Ucom{\texttt{underlined}}.) +\begin{alltt} +> \Ucom{mount -t iso9660 /dev/cdrom /mnt/cdrom} +\end{alltt} + +\noindent Change the current directory to the mount point: +\begin{alltt} +> \Ucom{cd /mnt/cdrom} +\end{alltt} + +\noindent Under \MacOSX, the directory is typically under +\dirname{/Volumes}, and the media will be mounted automatically. +} + +\def\installtlsh{ +Run the installation script \filename{install-tl.sh}: +\begin{alltt} +> \Ucom{sh install-tl.sh}\\ +Welcome to TeX Live... +\end{alltt} + +\noindent After various greeting messages and a list of the main menu +options, the installation will ask you to enter a command. Do this by +typing the desired character and hitting return; don't type the angle +brackets shown. Either uppercase or lowercase is ok; we'll use +lowercase in our examples. +} + +\runlive +\startinst +\installtlsh + +For running live, our first command will be \Ucom{d} and then the +subcommand \Ucom{1} to set directories. Even in this case, we must +choose a directory on the local disk to place files that the \TeX{} +system itself generates, such as fonts and formats, and also to provide +a place for updated configuration files, if need be. + +We'll use \dirname{/opt/texlive2005} in this example. It's good to +include the year in the name, as these generated files are not +compatible from release to release. (If the default value of +\dirname{/usr/local/texlive/2005} works for you, then you can skip this +step.) + +\begin{alltt} +Enter command: \Ucom{d} +Current directories setup: +<1> TEXDIR: /usr/local/texlive/2005 +... +Enter command: \Ucom{1} +New value for TEXDIR [/usr/local/texlive/TeX]: \Ucom{/opt/texlive2005} +... +Enter command: \Ucom{r} +\end{alltt} + +\noindent Back at the main menu, our second and last command is +\Ucom{r}, to set up for running live off the media without installing +to disk: +\begin{alltt} +Enter command: \Ucom{r} +Preparing destination directories... +... +Welcome to TeX Live! +> +\end{alltt} + +\noindent And we are back at the system prompt, as shown. + +Next, it is necessary to alter two environment variables: +\envname{PATH}, to an architecture-dependent value (so that we can run +the programs), and \envname{TEXMFSYSVAR}, to the value specified above. +See table~\ref{tab:archlist} for a list of the architecture names for +the different systems. + + +\def\textruntexconfig{% +After the main installation has completed, and environment variables +have been set, the last step is to run \cmdname{texconfig} or +\cmdname{texconfig-sys} to customize your installation to your needs. +This is explained in section~\ref{sec:texconfig}, +\p.\pageref{sec:texconfig}. +} +\textruntexconfig + +\begin{table*}[ht] +\caption[Supported system architectures.]{Supported system +architectures.} +\label{tab:archlist} +\begin{tabular}{>{\ttfamily}ll} +alpha-linux & HP Alpha GNU/Linux \\ +%alphaev5-osf4.0d & HP Alphaev5 OSF \\ +%hppa2.0-hpux10.20 & HP9000 HPUX 10.20 \\ +i386-darwin & Intel x86 \MacOSX \\ +i386-freebsd & Intel x86 FreeBSD \\ +i386-linux & Intel x86 GNU/Linux \\ +%i386-openbsd3.3 & Intel x86 OpenBSD \\ +%i386-solaris2.8 & Intel x86 Solaris \\ +mips-irix & SGI IRIX \\ +powerpc-aix & IBM RS/6000 AIX \\ +powerpc-darwin & PowerPC \MacOSX \\ +sparc-linux & Sun Sparc GNU/Linux \\ +sparc-solaris & Sun Sparc Solaris \\ +win32 & Windows (32-bit) \\ +x86\_64-linux & Intel x86 64-bit GNU/Linux \\ +\hline +\end{tabular} +\end{table*} + +\label{text:path} +The syntax for setting the environment variables, and the initialization +file to put them in, depends on the shell you use. If you use a +Bourne-compatible shell (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}, et +al.), put the following into your \filename{$HOME/.profile} file: +\begin{alltt} +PATH=/mnt/cdrom/bin/\var{archname}:$PATH; export PATH +TEXMFSYSVAR=/opt/texlive2005/texmf-var; export TEXMFVAR +\end{alltt} + +\noindent For C shell-compatible shells (\cmdname{csh}, \cmdname{tcsh}), +put the following into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /mnt/cdrom/bin/\var{archname}:$PATH +setenv TEXMFSYSVAR /opt/texlive2005/texmf-var +\end{alltt} + +\noindent Then log out, log back in, and test your installation +(see section~\ref{sec:test-install}, \p.\pageref{sec:test-install}). + +\def\textifindoubt{% +If in doubt, please ask any local system gurus to help you with +problems; for example, the way to mount the \TL{} media, which +directory or directories to use, and precise details of the changes to +your personal initialization files can and do vary from site to site. +} +\textifindoubt + + +% +\subsection{Installing \protect\TeX\protect\ Live to disk} +\label{sec:unix-install-disk} + +It is possible, indeed typical, to install the \TL{} distribution to +hard disk. This can be done from either the \pkgname{live} or +\pkgname{inst} distributions. (See section~\ref{sec:multiple-dist}, +\p.\pageref{sec:multiple-dist}, for an explanation of the different +distributions.) + +\startinst +\installtlsh + +Table~\ref{tab:main-menu-options} briefly lists the options in the main +menu. The order in which you select the options makes little +difference, except that \Ucom{i} must be last. It's reasonable to go +through them in the order presented here. + +% apparently here.sty [H] doesn't support table*. +\begin{table}[H] +\caption{Main menu options for the installation.} +\label{tab:main-menu-options} +\begin{tabular}{>{\ttfamily}ll} +p & The platform you are running on.\\ +b & The architectures for which to install binaries.\\ +s & The base installation scheme to use (minimal, recommended, + full, etc.)\\ +c & Override the base scheme for individual collections.\\ +l & Override for language collections.\\ +d & Directories in which to install.\\ +o & Other options.\\ +i & Perform the installation.\\ +\end{tabular} +\end{table} + +Here are further details on each option. + +\textbf{\optname{p} -- Current platform.} Since the installation script +automatically guesses which platform you're running on, it is usually +unnecessary to use this option. It's there in case you need to override +the automatic detection. + +\textbf{\optname{b} -- Binary architectures.} By default, only the +binaries for your current platform will be installed. From this menu, +you can select installation of binaries for other architectures as well +(or omit installing the current platform). This can be useful if you are +sharing a \TeX\ tree across a network of heterogenous machines. For a +list of the supported architectures, see table~\ref{tab:archlist}, +\p.\pageref{tab:archlist}. + +\textbf{\optname{s} -- Base installation scheme.} From this menu, you +can choose an overall set of package collections, called a ``scheme''. +The default \optname{full} scheme installs everything available, but you +can also choose the \optname{basic} scheme for a minimal system, or +\optname{medium} to get something in between. There are also specific +sets for Omega and \acro{XML}. + +\textbf{\optname{c} -- Individual collections.} From this menu, you can +override the scheme's set of collections to install. Collections are +one level more detailed than schemes\Dash collections consist of one or +more packages, where packages (the lowest level grouping in \TL) contain +the actual \TeX\ macro files, font families, and so on. In this menu, +selection letters are case-sensitive. + +\textbf{\optname{l} -- Language collections}. This menu has the same +basic purpose as \Ucom{c}, to override the collection set in the chosen +scheme. In this case, the collections are specifically for different +languages. Selection letters are case-sensitive here too. Here is a +list of the language collections in \TL: + +% xx really should generate list from texmf/tpm/collection/tex-lang* +% a la install-tl.sh. +\begin{tabbing} +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \= +\hspace{.25\linewidth} \kill +(some) African scripts \> +Arabic \> +Armenian \> +Chinese\,Japanese\,Korean \\ +Croatian \> +Cyrillic \> +Czech/Slovak \> +Danish \\ +Dutch \> +Finnish \> +French \> +German \\ +Greek \> +Hebrew \> +Hungarian \> +Indic \\ +Italian \> +Latin \> +Manju \> +Mongolian \\ +Norwegian \> +Polish \> +Portuguese \> +Spanish \\ +Swedish \> +Tibetan \> +\acro{UK} English \> +Vietnamese \\ +\end{tabbing} + +\noindent Language collections typically include fonts, macros, +hyphenation patterns, and other support files. (For instance, +\pkgname{frenchle.sty} is installed if you select the \optname{French} +collection.) In addition, installing a language collection will alter +the \filename{language.dat} configuration file controlling which +hyphenation patterns are loaded. + +\textbf{\optname{d} -- Installation directories}. Three directories can +be changed here: +\label{text:instdir} + +\begin{ttdescription} +\item [TEXDIR] The top-level directory under which +everything else will be installed. The default value is +\dirname{/usr/local/texlive/2005}, and is often changed. We recommend +including the year in the name, to keep different releases of \TL{} +separate. (You may wish to make a version-independent name such +\dirname{/usr/local/texlive} via a symbolic link, which you can then +update after testing the new release.) + +Under \MacOSX, the usual frontends look for \TeX{} in +\dirname{/usr/local/teTeX}, so you may wish to install \TL{} there. + +\item [TEXMFLOCAL] This tree is where the \TeX{} system (not as part of +the initial installation, but rather as time goes by) puts +non-version-specific files, primarily fonts. The default value is +\dirname{/usr/local/texlive/texmf-local}, independent of the current +\TL{} release, because it's also the recommended location to put any +local packages or configuration settings. + +\item [TEXMFSYSVAR] This tree is where \cmdname{texconfig-sys} puts +files that \emph{are} version-specific. The default value is +\dirname{TEXDIR/texmf-var}, and there's generally no reason to change +it. There is also \envname{TEXMFSYSCONFIG}, which is where +\cmdname{texconfig} looks for modified configuration data. See +section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig} for more +information. + +\end{ttdescription} + +\textbf{\optname{o} -- Other options.} From this menu, you can select +the following general options: + +\begin{ttdescription} +\item [a] Specify an alternate directory for generated fonts. +The default is to use the \envname{TEXMFVAR} tree, as explained above. +Setting this is useful if you plan to mount the main tree read-only, and +therefore you need another location (perhaps host-specific) for +dynamically created fonts. + +\item [l] Create symbolic links for the binaries, man pages, +and\slash or \acro{GNU} Info files in other locations. For example, you may +wish to make the man pages available under \dirname{/usr/local/man} and +the Info files available under \dirname{/usr/local/info}. (Of course +you need appropriate privileges to write in the specified directories.) + +It is not advisable to overwrite a \TeX\ system that came with your +system with this option. It's intended primarily for creating the links +in standard directories that are known to users, such as +\dirname{/usr/local/bin}, which don't already contain any \TeX\ files. + +\item [d] Skip installation of the font/macro documentation tree. +This is useful if you need to save space, or if you've previously +installed the documentation elsewhere. + +\item [s] Skip installation of the main font/macro source +tree. This is useful if you are arranging to share that tree between +machines and\slash or architectures in some other way, such as \acro{NFS}. + +\end{ttdescription} + +\textbf{i -- Perform installation.} When you're satisfied with your +configuration options, enter \Ucom{i} to actually do the installation +from the media to your chosen locations. + +% text is similar to above, but no TEXMFSYSVAR, so we have to write out. +After the installation completes, your next step is to include the +architecture-specific subdirectory of \dirname{TEXDIR/bin} in your +\envname{PATH}, so the newly-installed programs can be found. The +architecture names are listed in table~\ref{tab:archlist}, +\p.\pageref{tab:archlist}, or you can simply list the directory +\dirname{TEXDIR/bin}. + +The syntax for doing this, and the initialization file to use, depends +on your shell. If you use a Bourne-compatible shell (\cmdname{sh}, +\cmdname{bash}, \cmdname{ksh}, et al.), put the following into your +\filename{$HOME/.profile} file: + +\begin{alltt} +PATH=/usr/local/texlive/2005/bin/\var{archname}:$PATH; export PATH +\end{alltt} + +\noindent For C shell-compatible shells (\cmdname{csh}, \cmdname{tcsh}), +put the following into your \filename{$HOME/.cshrc} file: +\begin{alltt} +setenv PATH /usr/local/texlive/2005/bin/\var{archname}:$PATH +\end{alltt} + +\textruntexconfig + +Here is a minimal annotated example which accepts the default +directories and installs binaries for the current system only. Thus, +only one command is needed, \Ucom{i} for install. The \texttt{>} is the +shell prompt as usual. + +\begin{alltt} +> \Ucom{sh install-tl.sh} +\Ucom{i} # perform installation +> \Ucom{texconfig} ... # see section \ref{sec:texconfig} +# New PATH element, with Linux as the example: +> \Ucom{PATH=/usr/local/texlive/2005/bin/i386-linux:$PATH; export PATH} +\end{alltt} + +\textifindoubt + + +% +\subsection{Installing individual packages to disk} + +You can add individual packages or collections from the current +distribution to an existing non-\TL{} setup, or an earlier +\TL{} installation. + +\startinst + +Run the installation script \filename{install-pkg.sh} (not +\filename{install-tl.sh}, which is intended for complete installations +only): +\begin{alltt} +> \Ucom{sh install-pkg.sh \var{options}} +\end{alltt} + +The first set of options controls what gets read: + +\begin{ttdescription} +\item [-{}-package=\var{pkgname}] The individual package to work on. + +\item [-{}-collection=\var{colname}] The individual collection to work on. + +\item [-{}-nodoc] Exclude documentation files from the operation. + +\item [-{}-nosrc] Exclude source files from the operation. + +\item [-{}-cddir=\var{dir}] Source directory to read from; defaults +to the current directory. If you followed the instructions above, that +will be the distribution directory, and won't need to be changed. + +\item [-{}-listdir=\var{dir}] The so-called `lists' directory within +\var{cddir} from which to read the package information. The only +reason to change the default is if you're making changes to \TL{} +yourself. + +\end{ttdescription} + +What actually happens is controlled by the following options. If +neither of these are specified, the default action is to install the +selected files. The main destination tree is found by expanding +\envname{\$TEXMFMAIN} with \cmdname{kpsewhich}. You can override it by +setting either the environment variable \envname{TEXMFMAIN} or +\envname{TEXMF}. + +\begin{ttdescription} +\item [-{}-listonly] List the files that would be installed, but don't +actually install anything. + +\item [-{}-archive=\var{tarfile}] Instead of installing the files into +the \TeX{} system, make a \cmdname{tar} archive. + +\end{ttdescription} + +Additional options: + +\begin{ttdescription} + +\item [-{}-config] After installation, run \code{texconfig init}. + +\item [-{}-nohash] After installation, don't run \cmdname{mktexlsr} to +rebuild the filename database. + +\item [-{}-verbose] Give more information as the script runs. + +\end{ttdescription} + +Here are some usage examples: + +\begin{enumerate} + +\item To see the files in the package \pkgname{fancyhdr} without +installing it: + +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=fancyhdr --listonly} +\else> \Ucom{sh install-pkg.sh --package=fancyhdr \bs} +> \Ucom{--listonly} +\fi{} +texmf/doc/latex/fancyhdr/README +texmf/doc/latex/fancyhdr/fancyhdr.pdf +... +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{natbib}: +\begin{alltt} +> \Ucom{sh install-pkg.sh --package=natbib} +\end{alltt} + +\item Install the \LaTeX{} package \pkgname{alg} without source files or +documentation: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=alg --nosrc --nodoc} +\else> \Ucom{sh install-pkg.sh -{}-package=alg \bs} +> \Ucom{-{}-nosrc -{}-nodoc} +\fi\end{alltt} + +\item Install all the packages in the collection of additional +plain \TeX\ macros: +\begin{alltt} +> \Ucom{sh install-pkg.sh --collection=tex-plainextra} +\end{alltt} + +\item Write all files in the \pkgname{pstricks} package to a +\cmdname{tar} file in \path|/tmp|: +\begin{alltt} +\ifSingleColumn> \Ucom{sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar} +\else +> \Ucom{sh install-pkg.sh -{}-package=pstricks \bs} +> \Ucom{-{}-archive=/tmp/pstricks.tar} +\fi\end{alltt} + +\end{enumerate} + +\textifindoubt + + +% +\section{Post-installation} +\label{sec:postinstall} + +After the main installation is done, for any operating system, the +remaining steps are to configure the system for your local needs, and +perform some basic tests. + +Another sort of post-installation is to acquire packages, fonts, or +programs that were not included in \TL{}. The basic idea is to +install such additions in the \envname{TEXMFLOCAL} tree (if you +installed to disk), or \envname{TEXMFSYSVAR} (if you are running live). +See the ``Installation directories'' option on \p.\pageref{text:instdir}. + +Unfortunately, the details can and do vary widely, and so we do not attempt to +address them here. Here are some external links to descriptions: +\begin{itemize*} +\item +\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages} +\item +\url{http://www.ctan.org/installationadvice} +\item +\url{http://www.ctan.org/tex-archive/info/beginlatex/html/chapter5.html#pkginst} +\item +\url{http://www.ctan.org/tex-archive/info/Type1fonts} for +installation information for fonts in particular. +\end{itemize*} + + +\subsection{The \protect\cmdname{texconfig} program} +\label{sec:texconfig} + +At any time after installation, you can and should use the program +\cmdname{texconfig} to configure the system to fit your local needs. It +is installed in the architecture-specific subdirectory +\texttt{TEXDIR/bin/\var{arch}} along with everything else. + +If you run it without arguments, it will enter full-screen mode and +allow you to view and change options interactively. + +You can also run it with various command-line options. Here are some of +the most common (\TL{} is configured for the A4 paper size by default): + +\begin{ttdescription} + +\item [texconfig paper letter] Set default paper size for +various programs and drivers (\cmdname{pdftex}, \cmdname{dvips}, +\cmdname{dvipdfm}, \cmdname{xdvi}) to be \acro{US} letter. The other +allowable size is \optname{a4}, which is the default. + +\item [texconfig rehash] Update all the \TeX{} ``filename databases'', +after adding or removing files. + +\item [texconfig faq] Show the \teTeX{} \acro{FAQ}. +(See also the main \TeX{} \acro{FAQ} in \OnCD{texmf-doc/doc/english/FAQ-en}.) + +\item [texconfig help] Output help information for \cmdname{texconfig}. + +\end{ttdescription} + +Of course, \cmdname{texconfig} can only support changing a few of the +many options and configuration parameters in a \TeX{} system. The main +configuration file for the base \Webc{} programs is named +\filename{texmf.cnf}. You can find its location by running +\samp{kpsewhich texmf.cnf}; it contains many comments explaining the +default settings and useful alternatives. + +As of 2005, \cmdname{texconfig} alters files in a user-specific +directory, namely \dirname{$HOME/.texlive2005}. If you install \TeX\ +just for yourself, that is unlikely to make a difference. But if you +install \TeX\ on a multi-user system, you will want to change the +configuration for the whole system. In this case, run +\cmdname{texconfig-sys} instead of \cmdname{texconfig}. + +Likewise, the \cmdname{updmap} and \cmdname{fmtutil} scripts were +changed, to work under \dirname{$HOME/.texlive2005}. To alter system +directories, use \cmdname{updmap-sys} and \cmdname{fmtutil-sys}. + +In particular, for multi-user systems, you will probably want to +pregenerate the standard formats with \texttt{fmtutil-sys --missing}. +Otherwise, each user will end up with their own formats. + +Also, if you have a personally-modified copy of \filename{fmtutil.cnf} +or \filename{updmap.cfg}, instead of using the ones generated by +installation, they must be installed in the tree referenced by the +variable \envname{TEXMFSYSCONFIG}. + +The variables specifying the directories altered by these commands are +listed in section~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. +You can see the actual directories by running \texttt{texconfig conf}, +and you can change them by editing \filename{texmf.cnf}. + + +\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; 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.141592 (Web2C 7.5.5) +kpathsea version 3.5.5 +... +\end{alltt} +If this comes back with `command not found' instead of version and +copyright information, most likely you don't have the correct +\dirname{bin} subdirectory in your \envname{PATH}. See +the environment-setting information on \p.\pageref{text:path}. + +\item Process a basic \LaTeX{} file: +\begin{alltt} +> \Ucom{latex sample2e.tex} +This is pdfeTeXk, Version 3.141592... +... +Output written on sample2e.dvi (3 pages, 7496 bytes). +Transcript written on sample2e.log. +\end{alltt} +If this fails to find \filename{sample2e.tex} or other files, perhaps +you have interference from old environment variables or configuration +files. For a deep analysis, you can always ask \TeX{} to report on +exactly what it is searching for, and finding; see ``Debugging actions'' +on page~\pageref{Debugging}. + +\item Preview the result online: +\begin{alltt} +> \Ucom{xdvi sample2e.dvi} +\end{alltt} +(Under Windows, the analogous command is \cmdname{windvi}.) 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 the system.) +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} +Unfortunately neither \cmdname{gv} nor \cmdname{xpdf} are currently +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. + +\item Other standard test files you may find useful: + +\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} +You can process these in the same way as we did with +\filename{sample2e.tex}. + +\end{enumerate} + +If you are new to \TeX{}, or otherwise need help with actually +constructing \TeX{} or \LaTeX{} documents, please visit +\url{http://tug.org/begin.html} for some introductory resources. + + +\section{\MacOSX{} installation} +\label{sec:mac-install} + +The recommended way to install \TeX\ on \MacOSX\ is from the Mac\TeX\ +distribution, new in 2005. This is provided on the \pkgname{live} +\DVD{} in the top-level \dirname{mactex/} directory. It contains its +own (native) installer for a full \TeX\ distribution, based on a +combination of te\TeX\ and \TL, along with many additional applications +and documentation. The project web page is \url{http://tug.org/mactex}. + +If you prefer, installation of \TeX{} under \MacOSX{} can also be done +directly from \TL, using the \filename{install*} scripts, as follows. + +In order to run the installation scripts under \MacOSX, you need to have +the \cmdname{bash} shell installed. If you are running \MacOSX~10.2 +or later, you have \cmdname{bash}, and can proceed. If you're running +an earlier \MacOSX{} version, however, the default shell is +\cmdname{zsh}, which won't work; you'll need to get \cmdname{bash} from +the Internet, or more likely upgrade your system. + +Once you have \cmdname{bash}, the Unix installation documentation in the +previous section can be followed. See section~\ref{sec:unix-install} on +\p.\pageref{sec:unix-install}; \MacOSX-specific notes are included there +where needed. + +\section{Windows installation} +\label{sec:win-install} + +In this release of \TL{}, happily, the distribution once +again has a native Windows installer, named \cmdname{tlpmgui.exe}. (See +section~\ref{sec:multiple-dist}, \p.\pageref{sec:multiple-dist}, for an +explanation of the different distributions.) + +\cmdname{tlpmgui} has essentially the same options as the Unix +installer, only done through a GUI interface: selecting schemes, +individual collections, installation directories, and so on. +Section~\ref{sec:unix-install-disk} on +\p.\pageref{sec:unix-install-disk} describes the basic elements. It +also allows some post-installation activities such as adding/removing +packages, updating the filename database and building formats. +Moreover, \cmdname{tlpmgui} can setup the system for running +programs directly from the \DVD. + +For those who like to look underneath the hood, \cmdname{tlpmgui} uses +as its ``engine'' a command-line Windows program named \cmdname{tlpm}. + +The Windows \TeX{} system included in \TL{} is based on new binaries +borrowed from the \XEmTeX{} project, formerly known as \fpTeX{} (see +\url{http://www.metz.supelec.fr/~popineau/xemtex-1.html}). +It also includes some older (but still working) tools, notably +a \texttt{dvi} previewer, \textsf{Windvi}, which is similar in usage to +the established Unix \textsf{xdvi}. The documentation can be found in +\OnCD{texmf/doc/html/windvi/windvi.html}. + +\TL{} can be installed on systems running Windows 98, \acro{ME}, +\acro{NT}, \acro{2K} or \acro{XP}. Older versions of Windows (3.1x) +and \acro{MS-DOS} are not supported. + +\textbf{Warning:} Win9.x users must ensure they have enough environment + space before undertaking installation. The \cmdname{tlpmgui.exe} + program won't change the environment size for them. A few environment + variables will be created and it is possible you run out of + environment space. Add \texttt{SHELL=<path>COMMAND.COM /E:4096 /P} in the + config.sys file in order to increase your environment size. + +\subsection{Installing \protect\TeX\protect\ Live to disk} + +After inserting the \TL{} CD into the \acro{CD} drive, autostart should +activate \cmdname{tlpmgui}. If it does not, click \guiseq{Start\arw Run}, +then type \verb|<drive letter>:\setup-win32\tplmgui.exe| (or +\verb|<drive letter>:\texlive\setup-win32\tplmgui.exe| if you are +installing from the TeX Collection DVD), where \verb|<drive letter>| +is the drive letter with the TeX Live CD (or TeX Collection DVD), and +then click OK. + +The installation window titled \guiseq{TeX Live installation and maintenance +utility} should open. It contains the following sections: \guiseq{Main +customization}, \guiseq{Install}, \guiseq{Select a scheme}, \guiseq{Select +systems}, \guiseq{Directories} and \guiseq{Options}. + +In the \guiseq{Directories} section the installation drive (directory) next +to the \guiseq{CD/DVD} button should be displayed (e.g., \texttt{F:/} or \texttt{F:/texlive/} for the DVD), but +if it is not, then click the \guiseq{CD/DVD} button and select the \acro{CD/DVD} +drive, with the \TL{} CD (or TeX Collection DVD). + +The directory in which you wish to install the software can be set by +clicking the \guiseq{TLroot} button. This directory will be set as +\path|TLroot| environment variable for later usage. The \path|TEXMFTEMP| and +\path|TEXMFCNF| environment variables as displayed next to the +\guiseq{TEXMFTEMP} and \guiseq{TEXMFCNF} buttons will be adjusted +automatically and set during installation, but they can also be adjusted +manually now to suit special needs. + +In the \guiseq{Select a scheme} section the desired \TL{} installation scheme +should be chosen by clicking the radio button labelled with the installation +scheme name (e.g., \guiseq{scheme-gust}). Each scheme is accompanied by an +\guiseq{Info} button which, when clicked, displays a short description of the +relevant scheme. + +A scheme is a large set of files targeted at some kind of usage. There are +generic schemes for basic, medium and full installations. The remaining ones +are either targeted at certain LUGs (i.e., what GUST or GUTenberg propose +for their members) or application targeted (e.g., for XML and \TeX{} +cooperation). A preselected scheme can be refined. This is done in the +\guiseq{Main customization} section by choosing additional collections from +\guiseq{Standard collections} or \guiseq{Language collections}. For example, +by clicking the \guiseq{Select} button labelled \guiseq{Standard +collections}, additional collections like Metapost, Omega or documentation +in different languages can be selected. + +\textbf{Note:} The \guiseq{Ghostscript}, \guiseq{Perl} and \guiseq{Wintools} +collections are selected by default and should be installed unless they are +already installed and you really know what you are doing. This is because +they are required by many important tools. The \verb|PERL5LIB| and +\verb|GS_LIB| environment variables will be set too. + +Next, clicking the \guiseq{Select} button labelled \guiseq{Language +Collections} in the \guiseq{Main customization} section opens the +\guiseq{Language collections} window in which the installation language can +be chosen by ticking the box next to the language. + +Next, click the \guiseq{Install} button in the \guiseq{Install} section to +start the installation proper process. + +The \TL{} system needs some post-processing steps (format files +generation, ls-R databases generation, environment variables, etc.). All +these operations are done there, some of them can be lengthy. So please wait +until you see a statement about the successfully finished installation. + +The shortcut for \cmdname{tlpmgui} will be added to the +\guiseq{Start\arw Programs\arw TeXLive2005} menu. + +If it is needed (Win9x/WinME), you will be asked to reboot your computer. + +\subsection{Support packages for Windows} +\label{sec:win-xemtex} + +To be complete, a \TL installation needs support packages that are not +commonly found on a Windows machine. Many scripts are written using the Perl +language. Some important tools require the Ghostscript \PS{} interpreter to +render or to convert files. A graphic file toolbox is also needed in some +cases. Last but not least, a \TeX-oriented editor makes it easy to type in +your \TeX{} files. + +All these tools are quite easy to find for Windows, but in order to try to +make your life even easier, we have put such a set of tools on \TL: +\begin{itemize*} +\item GNU \cmdname{Ghostscript} 7.07 +\item a minimal \cmdname{Perl} 5.8, sufficient to run all the \TL{} + Perl scripts. +\item win-tools is a set of small programs (bzip2, gzip, jpeg2ps + and tiff2png) +%\item a subset of \cmdname{ImageMagick} 5.5.6 +%\item the \cmdname{ISpell} checker +%\item \cmdname{XEmacs} 21.5.14 with a selection of packages to support +%\TeX{} typesetting. +\end{itemize*} + +These packages are borrowed from the \XEmTeX{} distribution +(the successor of fp\TeX). + +Perl and Ghostscript are installed by default; you may explicitly +deselect them during installation if you already have them. + +If you don't want to install this bundle, then you are on your own to +install the required tools to complete your \TL{} system. Here is a +list of places to get those tools: + +\begin{description} +\item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} +\item[Perl] \url{http://www.activestate.com/} (but you might need some + supplementary packages from CPAN: \url{http://www.cpan.org/}) +\item[ImageMagick] \url{http://www.imagemagick.com} +\item[NetPBM] alternatively, you could use NetPBM instead of ImageMagick to + process or convert your graphic files. NetPBM home page is + \url{http://netpbm.sourceforge.net/} +\item[\TeX-oriented editors] There is a wide choice, and it is a matter of the + user's taste. Here is a selection: + \begin{itemize*} + \item \cmdname{GNU Emacs} is available natively under Windows, see + \url{http://www.gnu.org/software/emacs/windows/ntemacs.html} + \item \cmdname{XEmacs} is available natively under Windows, see + \url{http://www.xemacs.org/} + \item \cmdname{WinShell} is available on \TL in the \path|support| + directory, see \url{http://www.winshell.de} + \item \cmdname{WinEdt} is shareware available from \url{http://www.winedt.com} + \item \cmdname{Vim} is available on \TL{} in the + \path|support\vim| directory and the + reference site is \url{http://www.vim.org} + \item TeXnicCenter is free software, available from + \url{http://www.toolscenter.org} and in the proTeXt distribution. + \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} + \end{itemize*} +\end{description} + +You might want to install other tools that are not free\footnote{Not +free, that is, in the sense of freedom to modify and redistribute, +following free software guidelines. This does not mean you can't acquire +them for no money.} and therefore not included on \TL{}, such as +\cmdname{GSView}, the \cmdname{Ghostscript} companion to more +conveniently view PS/PDF files. \cmdname{GSView} is available from +\url{http://www.cs.wisc.edu/~ghost/gsview/} or any \acro{CTAN} site. + +\section{Maintenance of the installation in Windows} + +If you have TeX Live installed, you can use \cmdname{tlpmgui} again +for modyfying and maintaining your installation. + +\subsection{Adding/removing packages} + +As the \cmdname{tlpmgui} shortcut is available in the \guiseq{Start\arw +Programs\arw TeXLive2005} menu, start it from here. The maintenance window +titled \guiseq{TeX Live installation and maintenance utility} shows. It +contains several tabs: \guiseq{Add Packages}, \guiseq{Remove packages}, +\guiseq{Manage installation}, \guiseq{Remove installation}. + +Click the tab labelled \guiseq{Add packages} or \guiseq{Remove packages} +to enter the relevant functionality and then: + +\begin{itemize} +\item In the first tab select the proper \CD{} drive (or \DVD with + \texttt{texlive} directory) by pressing the \guiseq{CD/DVD} button. +\item Click the \guiseq{Search} button in the \guiseq{Buttons} section to +display or refresh in the \guiseq{Select packages to\dots} section the +list of packages to install or remove. + +When adding packages, the list of installed packages is compared to the list +of packages available from your \CD/\DVD. Only packages not already installed are +displayed. It is up to you to select which packages you want to +install. + +When removing individual packages, only a list of installed packages +will be displayed. + +Please note that for both \guiseq{Add packages} and \guiseq{Remove packages} +the collections are listed first. + +\item Select a package by clicking on the name of the package. Clicking the +\guiseq{Info} button in the \guiseq{Buttons} section displays a short +description of the selected package in the window located in the \guiseq{Info +about the selected item} section. To select several packages at once hold +down one of the Ctrl or Shift keys at your keyboard while holding down the +left mouse button or drag the mouse pointer while holding down the left mouse +button. + +\item Click the \guiseq{Install} or \guiseq{Remove} button in the +\guiseq{Buttons} section to perform the appropriate action. +\end{itemize} + +\subsection{Configuring and other management tasks} + +The functions available in the tab labelled \guiseq{Manage the installation} +are helpful in performing actions needed when you want to add support for a +language which was not selected during the installation, or add/regenerate a +format which was not selected during the installation or was modified after +the installation. + +The following actions can be performed: + +\begin{itemize} +\item Refresh the \filename{ls-R} database +\item Create formats (All or Missing) +\item Edit \filename{language.dat} +\item Edit \filename{fmtutil.cnf} +\item Edit \filename{updmap.cfg} +\end{itemize} + +Note: you can close the Edit\dots{} window with the \guiseq{Cancel} or +\guiseq{Done} button; the latter will start rebuilding the format files +(or the fontmap files if you have edited \filename{updmap.cfg}), followed by a +\filename{ls-R} database files refresh. + +For more information about the configuration see section~\ref{sec:persconf}, +\p.\pageref{sec:persconf}. + +\subsection{Uninstalling \protect\TL{}} + +The tab labelled \guiseq{Remove the TeX Live installation} opens a window +which contains functionality not worth describing and we do not know who would +need it and what it is for\dots :-) + +Anyway, if you have the \path|texmf-local| directory for your local additions, +the removal procedure will not wipe it out or delete things in it. The \path|setup-win32| +directory containing \cmdname{tlpmgui} and related files will not be deleted. You will have to do some manual cleanup to +actually remove them. + +\subsection{Adding your own packages to the installation} + +First, whatever changes you make, \textbf{do not forget to rebuild the ls-R +database files}. Otherwise, your new files will not be found. You can do this +either via the \cmdname{tlpmgui} run and selection of the appropriate action +from the \guiseq{Manage the installation} tab, or manually running the +\file{mktexlsr} command. + +If you want to add files that are not provided by the \TL{} distribution, +it is recommended to put them in the \path|$TEXMFLOCAL| directory. This +way, you will be safe against upgrades of the \TL{} software. + +The directory pointed to by \path|$TEXMFLOCAL| is initially empty. If, +for example, you want to add the support file for the Maple symbolic +computation program, you will have to put the style files in:\\ +\path|c:\TeXLive2005\texmf-local\tex\latex\maple\|\\ and the +documentation files in:\\ \path|c:\TeXLive2005\texmf-local\doc\latex\maple\| + +\subsection{Running \texttt{tlmp.exe} from the command line} +The \cmdname{tlpm.exe} program which is used as engine by \cmdname{tlpmgui} +has a number of other useful options. You can get the list by running: +\begin{verbatim} +tlpm --help +\end{verbatim} + +More information and examples of use can be found in \path|tlpm.readme|. + +\subsection{Network installation} + +\KPS{} knows about UNC names, so you can use them to get your TEXMF +tree from the network. But there is better than this. +All the support files and configuration files, everything except the files in the +\path|bin/win32| are shareable with a \teTeX{} or Unix \TL{} installation. That means +you can use Samba either to mount from an NT server to a Unix +workstation or the converse. Several strategies are possible: +\begin{itemize} +\item Put everything on the server. Just add each set of files for the OS and +architecture you want to use in the \path|bin| directory. That means +for example \path|bin/win32| and \path|bin/i386-linux|. Next configure +your main variables. You can use UNC names to +point to the right directories under Win32. +\item Install a local copy for the binaries and format files. In this + case, assign \path|$TEXMFMAIN| to the main \path|texmf| tree that + will be accessed remotely. Set \path|$TEXMFVAR| to be a local + directory which will hold local configuration files and on-the-fly + generated files. +\end{itemize} + +\subsection{What's different in Windows?} + +The Windows version of \Webc{} has some specific features that should be +pointed out. + +\begin{description} +\item[\KPS{}] The hash-tables that \KPS{} builds are quite large for + the \TL{}. In order to cut down the starting time of any + \KPS{}-enabled program, these hash-tables have been put in shared + memory. This way, when you chain the execution of several such + programs, like \path|tex| calling \path|mpost| calling \path|tex|, + the overhead when starting each of the subprograms is + reduced. This change is hidden to the user, except if you set the + debug flag of kpathsea to the \path|-1| value: you will then trace + access to the shared memory, which is not what you want (it is + accessed very often!). What is useful in a log trace of the shared + memory access is still to be defined, so the situation might evolve + in the future. +\item[\cmdname{kpsecheck}] This command provides some options that did + not fit well into \cmdname{kpsewhich}. It will allow you to list all + the files that occur multiple times across your texmf trees. This + could be handy, but most of the time you will also get unwanted + output (like dozens of \path|README| files). It is noticeable + that all these files result in clashes inside the \KPS{}-hashing + mechanism; fortunately, \KPS{} never looks for these files. For + this reason, you can combine the \path|-multiple-occurrences| with 2 + other options for including or excluding any filename that match + some pattern (you can request for several patterns). + + The \cmdname{kpsecheck} command will also report the status of shared + memory: in use or not used. That might be useful to know because if + the status reported is \samp{in use}, that means one or several + processes are working, and the effect of any \cmdname{mktexlsr} + command will be delayed until the next time where no \KPS{} linked + process will be running. + + Last, this same command will report about the location it thinks + Ghostscript can be found. Under Win32, for many programs, it is + easier to use the Ghostscript dll, and find it by using the + Ghostscript registry key than to change the \path|PATH|, which has a + limited length anyway. +\item[\Webc{}] The engines have a few more options than in Unix + \Webc{}, and one option with a different behavior: + \begin{itemize} + \item \path|-halt-on-error| stop the compilation at the first error. + \item \path|-job-time| set the job time to the same timestamp as the + file given in argument. +\item \path|-oem| use the DOS codepage for console output. + \item \path|-output-directory| allow to write all the output files in the + specified directory. + \item \path|-time-statistics| print statistics about the job run + time. It is to be noted that Win9x not being a true multitasking + operating system, it has no reliable timer for short periods, so + the value printed is an approximation. Under NT/2K/XP, the result + is quite accurate with user time and system time values allocated + for this run. For Unix + users: the \path|time| command is not usually available to Windows + users. + \end{itemize} +\end{description} + +\subsection{Personal configurations} +\label{sec:persconf} + +\subsubsection{Dvips} + +The configuration file for dvips can be found in\\ +\verb+C:\TeXLive2005\texmf-var\dvips\config\config.ps+\\ +You may open it with any editor + %(\cmdname{WinShell} will do fine) + and change some parameters: + +\begin{description} +\item [fonts] you can change the default printer \MF{} mode or printer + resolution in case \cmdname{dvips} needs to generate PK fonts. By default it + is configured to use Type~1 versions of the CM fonts, so it should + not call \cmdname{mktexpk} too often; +\item[printer] you can tell dvips where you want to print by default. If + the \optname{o} option is not followed by a printer name, then a + \file{.ps} \PS{} file is written. You can give dvips a printer + name such as: +\begin{verbatim} +o lpt1: +% o | lpr -S server -P myprinter +% o \\server\myprinter +\end{verbatim} +\item[paper] Next, you might want + to change the paper size from European (A4) to US letter + by making the US letter the first paper size mentioned in the file. + Scroll to the group of lines beginning with \code{@}. Move + the appropriate lines so that this section begins with the lines:\\ +\hspace*{1em} @ letterSize 8.5in 11in\\ +\hspace*{1em} @ letter 8.5in 11in\\ +\hspace*{1em} @+ \%\%BeginPaperSize: Letter\\ +\hspace*{1em} @+ letter\\ +\hspace*{1em} @+ \%\%EndPaperSize +\end{description} + +The current \TL{} distribution implements the procedure of making +always up-to-date fontmaps files for Dvips and Pdftex. This is done by +the \cmdname{updmap} program during installation, as well as during any +font package addition. If you add new packages by hand, edit the file +\verb+updmap.cfg+ in \path|$TEXMFVAR/web2c|. + +\subsubsection{PdfTeX} + +If you use the program pdf{}latex to write \acro{PDF} format directly, +and you are using \acro{US} letter-size paper, edit the file +\verb+C:\TeXLive2005\texmf-var\tex\generic\config\pdftexconfig.tex+ and +change \samp{\bs pdfpagewidth} and \samp{\bs pdfpageheight}. These entries +should read: +\begin{alltt} +\bs{}pdfpagewidth=8.5 true in +\bs{}pdfpageheight=11 true in +\end{alltt} +Save the file and exit the editor. + +\subsubsection{GSView} +GSView is now distributed under the Aladdin License, and therefore is no +longer included in \TL{}. + +If you may want to change the page size to US letter size. If so, open +GSView from the \guiseq{Start} menu, and select \guiseq{Media\arw Letter}. + +Also, there are menu settings that are supposed to give you the most +readable screen image. On \guiseq{Media \arw Display Settings}, set both +\optname{Text Alpha} and \optname{Graphics Alpha} to 4~bits. + +Note that the installation process has set all \code{.ps} and +\code{.eps} files to automatically open with \cmdname{GSView}. + +For printing instructions, see section~\ref{printing} below. + +\subsubsection{WinDvi} +\label{sub:windvi} + +The \file{tlpmgui.exe} program takes care of associating the files +with the \file{.dvi} extension with \file{Windvi}, but it doesn't make an icon +on the desktop, so please do it yourself. + +Open \cmdname{windvi} by clicking an icon or from the command line. + +You can set it for US letter-size paper by going to \guiseq{View\arw +Options\arw Papertype} and selecting US (8.5\verb+"+ x 11\verb+"+) (and +then \optname{OK}. Exit \cmdname{windvi}. + +You can change other parameters from there as well, such as the ability +to execute system commands specified by the document (disabled by +default for security reasons). Also, the first time you view any .dvi +file, you may find the magnification too large. Zoom out until you get +an appropriate size. + +All configuration settings for \cmdname{windvi} are stored in a file +named \path|windvi.cnf| file. You can find it by running this command at +the prompt: +\begin{verbatim} +c:\>kpsewhich --expand-var $HOME/windvi.cnf +\end{verbatim} + +Should you have problems with \cmdname{windvi}, please remove the +configuration file and test your problem against a vanilla configuration. + +\subsection{Testing} + +For generic verification procedures, see section~\ref{sec:test-install} +(\p.\pageref{sec:test-install}). This section describes +Windows-specific tests. + +Open the file \verb+sample2e.tex+ in your editor (Xemacs, WinShell), +found in \path|C:\TeXLive2005\texmf-dist\tex\latex\base|. The \LaTeX\ source +should appear on the screen. Process it by clicking on the +\guiseq{Command\arw LaTeX} menu (XEmacs) or \LaTeX\ icon on the toolbar +(WinShell), then view it by clicking on the \guiseq{Command\arw View DVI} +menu (XEmacs) or Preview (Windvi) icon (WinShell). + +At first, when you preview files with Windvi, 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. + +\textbf{Hint for the future:} If a \LaTeX\ run stops because \LaTeX\ +cannot find a file, you can press Ctrl-z to quit. + + +\subsection{Printing} +\label{printing} + +It is possible to print from Windvi. In this case, printing will be done +using the Windows unified printer driver. By definition, it is +compatible with all printers. However, there is some drawback: it can +generate some huge spool files, and some (older) versions of Windows +just don't like them. The advantage is that you can use features like +embedding BMP or WMF images. You also need to make sure that the printer +parameters are correctly set (subsection~\ref{sub:windvi}), else you +will get scaled printing (printing at 600\dpi{} on a 300\dpi{} printer +will give you only one quadrant of your page). + +Printing is faster and more reliable if you run \cmdname{dvips} to make +a \filename{.ps} file and then print from \cmdname{GSView}. In +\cmdname{GSview}, select \guiseq{File\arw Print\ldots}. A \guiseq{Print} +window will appear. + +If you are using a \PS{} printer, \textit{be sure to select +\guiseq{\PS{} Printer}}. This is done in the \guiseq{Print Method} box +at the bottom left of the \guiseq{Print} window. You can then select any +of the printers that you have previously installed. If you fail to +check the box for \optname{\PS{} Printer}, printing will not work. + +If you will be using your own non-\PS{} printer, select +\guiseq{Ghostscript device} in the \guiseq{Print Method} box, then click +on the button to the right labelled \guiseq{djet500} and select your +printer type from the list that pops up. (In the older version of +\cmdname{GSView}, make sure \optname{\PS{} Printer} is \textit{not} +selected, then select your printer type from the \guiseq{Device} list.) + +\subsection{Tips and tricks for Win32} + +\subsubsection{Different flavors of Win32} + +What we call Win32 is not an operating system by itself. It is a large +set of functions (around 12,000 in the header files of the Microsoft +\acro{SDK}) that you can use to write programs for different operating +systems of the Windows family. + +Windows comes in different flavors: +\begin{itemize} +\item Win95, Win98 and Win\acro{ME}, which \emph{are not true multitasking, + multithreading} environments. They are the latest\Dash and hopefully + last\Dash metamorphosis of \acro{DOS}. This can be more or less proven + by the fact that when booting, the PC will load the \path|command.com| + interpreter, and if you stop the boot process at this point, you can + ask for the current (\acro{DOS}) version and it will answer something + like \samp{MS-DOS 7.0} (at least for the old versions of Win9x). +\item Windows \acro{NT}, which is a new operating system written from + scratch, capable of true multitasking behavior, and including many + high level features. +\item Windows 2000, based on \acro{NT}, with all the bells and + whistles of Win98. +\item Windows \acro{XP}, which comes with Personal and Pro flavors. This is + the last step in merging both lines of products (Win9x based and + \acro{NT} based). \acro{XP} is based on \acro{NT}. +\end{itemize} + +Win9x are able to run 32~bits programs and 16~bits programs +concurrently. But the operating system by itself is not entirely +written in 32~bits mode, and does not support memory protection: 16bits +applications can overwrite parts of the operating system memory! Some +parts of the system like the \acro{GDI} (Graphical Device Interface) +manage limited resources like bitmaps, fonts, pens and so on for the set +of all programs that run concurrently. All the bitmaps headers available +at the same time can't amount for more than 64kB. This explains the +performance tool and the fact that you can put your system on his knees +by making intensive use of graphic objects for example. + +NT, 2K and XP do not suffer from these limitations, and neither from +other Win9x limitations. They are true multitasking environments, with +protected memory. They are much more responsive than Win9x because +of better memory management, better file system and so on. + +\subsubsection{Command line prompt} + +You may wonder, ``Why would I need to use a command line prompt when +I have Windows?'' + +Good question. The problem is of very general nature. Not all operations +can be done easily using only a \acro{GUI}. Command line gives you +programming power\Dash assuming a clever command interpreter. + +But the problem here is more fundamental: \TeX{} is \emph{a batch} +tool. Not an interactive one. \TeX{} needs to compute the best +layout for each page, resolve cross-references and so on. This can be +done only by a global processing of the document. It is not (yet) a +task that can be done interactively. + +This means that you should use \TeX{} from a command line. In fact the +situation is not so bad. There is an advantage to write command line +tools for complex processing: they are better debugged, because they are +independent of any \acro{GUI} problems, and \acro{GUI} tools can be +designed to interface to the command line tools. This is the case for +\TeX{}, where you will mostly interact with it through a \acro{GUI} text +editor. + +However, you may need to use the command line prompt in a number of +situations. One is when you are having difficulties and want to debug +your setup. + +\begin{description} + \item[Win9x] You can open a command line prompt by looking either for + the \acro{MS-DOS} icon in the \guiseq{Start\arw Programs} menu, + or by choosing \guiseq{Start\arw Run} menu typing in + \path|command.com| as the progrm name. + \item[NT, 2K, XP] You can open a command line prompt by looking for + \guiseq{Command Prompt} in the \guiseq{Start\arw Accessories} menu. + You can also choose \guiseq{Start\arw Run} and type in + \path|cmd.exe|, which is the name of the brand new command + interpreter for \acro{NT} (thus, it is untrue to call this a + \emph{DOS} box!). +\end{description} + +These locations may change across different Windows versions. + +\subsubsection{Path separators} + +The Win32 API understands both \path|/| and \path|\| characters as PATH +separators. But the command interpreters do not! So whenever a path name +is used programmatically, you can use both separators, and even mix them +up in the same path name. But on the command line, you must type +\path|\| as path separator. The reason is compatibility: the command +processor used \samp{/} to introduce arguments to commands. + +All this to say: do not be surprised to read path names written using +the Unix convention; \fpTeX{} is a port of \Webc, and aims to be compatible +across platforms. For this reason, all the configuration files that +need to specify path names use the Unix convention. + +\subsubsection{File systems} +\label{sec:clusters} + +The worst feature of Win9x with regard to \TeX{} is probably the +so-called FAT file system. \TeX{} uses very many small files, with size +around 1--3kB. The \acro{FAT} file system is old, and predates by +decades the multi-gigabytes hard disks we have today. As a result, it +cannot manage efficiently the tens of thousands of \TeX{} files found in +\TL{}. The \acro{FAT} file system allocates a minimum of 32kB for +\emph{any} file on a huge partition. It means that \TeX{} will use much +more disk space than it actually needs. + +The other, more modern, file systems available, \acro{FAT32} and +\acro{NTFS}, do not have this drawback. They manage clusters of 4kB +only. (You can lower the limit to 512 bytes on \acro{NTFS}.) + +\subsubsection{How to add some directory to your PATH} + +There are pairs of variables and values which behave much like global +variables inside your programs. The set of those variables is called the +environment. Each program is initialized with a copy of the +environment when it is run. It can request and change the +value of any variable. The changes happen in the copy of the +environment, and is not at all propagated to the other running +programs. + +Your PATH is a special environment variable used to search for +programs you want to run. +There is a different procedure to change it for Win9x, WinME and NT/2K/XP: + +\begin{description} +\item[Windows 95/98] Edit your \path|autoexec.bat|. In this file should be a line + starting with \texttt{PATH=} and followed by a list of directories separated + by \path|;|. Please add the directory with the executables in this line. + After this, this line could look as follows: +\begin{verbatim} +PATH=c:\windows;c:\windows\system;c:\TeXLive2005\bin\win32 +\end{verbatim} +\item[Windows ME] You need to run the special program + \path|c:\windows\system\msconfig.exe| to be able to change any + environment variable. From this program, select the `Environment' + tab, and then add or modify the variable you want. You will be asked to reboot the + machine upon any change. +\item[Windows NT/2K/XP] + Click left on \guiseq{Start \arw Settings \arw Control Panel}. Now the + window with the control panel icons opens. Double click on System. The + System Properties window opens. Click on the tab \textsf{Environment} + or look for a button named \guiseq{Environment Variables} among the + dialog boxes. Now you can change the environment variables for your + user account. Note: There are also displayed the environment settings + for the system. Normally, you can't change the system variables + unless you have administrator rights on your machine. If you want to + change the \texttt{PATH} for all users, you will have to contact your + system administrator or be the system administrator yourself\Dash in + the latter case you should know what you are doing. + + If there is already a \texttt{PATH} setting for your user account, + left click on \texttt{PATH}. In the field \textsf{Variable} appears + \texttt{PATH} while the field Value shows the current setting of + \texttt{PATH} as a list of directories separated by \path|;|. Add + the directory where the executables are located (e.g. + \path|c:\TeXLive2005\bin\win32|). If there isn't a \texttt{PATH} variable + for your user account, simply click in the field Variable and type + in \texttt{PATH}, click in the field \textsf{Value} + and type in the directory with the executables. Important: Click on + the \textsf{Apply} button before clicking \textsf{Ok}, otherwise the + changes to \texttt{PATH} won't apply to your system. Be careful when + changing the environment settings. +\end{description} + +The best way to be sure that a variable has been properly set is to +open a console and type: +\begin{verbatim} +set VARIABLE +\end{verbatim} +which should return the corresponding value. + +\subsubsection{\TeX{} engines} + +If you have a look at the \Webc{} documentation, you will read that all +the various \TeX{} derived programs use the same base engine. For +example, \path|tex.exe| and \path|latex.exe| are exact copies of the +same program, but each one will use a different format file, based on +its calling name. + +Under Unix, this feature is implemented through \emph{symbolic +links}. It saves up a bit of disk space, because some engines are +used with many different format files. + +The Win32 API does not know about file links. So to save up almost +the same amount of memory, all the \TeX{} base engines have been put +in DLLs (\emph{Dynamic Linked Library}). This means that you will have +the following layout: +\begin{alltt} +18/09/2005 14:19 3 584 latex.exe +18/09/2005 14:19 3 584 pdfetex.exe +18/09/2005 14:19 524 288 tl90pdfetex.dll +\end{alltt} +and the \path|latex.exe| file is nothing but a rough copy of +\path|pdfetex.exe| using the same core \path|tl90pdfetex.dll|. +The same trick has been used for the \path|mktex*.exe| family of programs +which are linked to the \path|mktex.dll| library. + +In fact, a generic tool called \path|irun.exe| is provided to build the +equivalent of Unix hard links for executable files only under Win32. + +\subsection{In case of problems} +\label{sec:troubleshooting} + +\subsubsection{What to do if \texttt{latex} does not find your files?} + +\begin{itemize} + +\item \cmdname{kpsewhich} is the tool of choice to debug any +problem. Unfortunately, \cmdname{kpsewhich} outputs debug information +to stderr, and the older Windows consoles do not know how to redirect stderr +to a file. (NT and Windows 2000 consoles know how to do that. But +the trick will work for any console.) For diagnostic purposes you can +temporarily set an environment variable (in a \acro{DOS} box): + +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=err.log +\end{verbatim} +You can also set the debug level: +\begin{verbatim} +SET KPATHSEA_DEBUG=-1 +\end{verbatim} + +If you want to redirect stderr to stdout, which is not possible +Windows, then do: +\begin{verbatim} +SET KPATHSEA_DEBUG_OUTPUT=con: +\end{verbatim} +This way you can capture both stdout and stderr in the same file. + +\item Assuming the installation has been done in \path|c:/TeX|, check + the following values: \\ + {\small + \begin{tabular}{ll} + \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/TeX| \\ + \path|kpsewhich -expand-path $TEXMF| & \path|c:/TeX/texmf....| \\ + \path|kpsewhich -expand-path $TEXMFCNF| & + \path|.;c:/TeX/texmf-var/web2c;| \\ + \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/TeX/texmf/tex//| + \end{tabular} +} +\item If you have other \TeX{}-related values already set in your + environment, please, remove them. They are overriding the ones in + texmf.cnf. +\item Check the values from:\\ +{\small + \begin{tabular}{ll} + \texttt{kpsewhich cmr10.tfm} & \path|c:/TeX/texmf/fonts/tfm/public/cm/cmr10.tfm|\\ + \texttt{kpsewhich latex.fmt}& \path|c:/TeX/texmf/web2c/latex.fmt| + \end{tabular} +} +\item At this point, if everything is correct, \TeX{} and friends + should work. If it is not the case, you will need to play with + the \path|-debug=n| option from \path|kpsewhich|, and check back all + the values. Try to identify and report the problem. +\end{itemize} + +\subsubsection{What to do if your setup still does not work as expected?} + +Here are several questions to investigate: + +\begin{enumerate} +\item Is \file{tex.exe} in my \path|PATH|? + +\item Is the \path|TEXMFCNF| variable correctly set to +\path|c:/TeXLive2005/texmf-var/web2c| (default value)? + +\item Are there any errors in the log file generated by the +\file{tlmpgui.exe} program? +\file{tlmpgui.log} can be found in your +\file{TEMP} directory. You can find this by searching for the +string \samp{Error}. Hint: the log file can show some errors after +building all format files. Please do not panic: perhaps some formats +weren't already installed. + +\item Are there any relevant bug fixes at \url{http://tug.org/texlive/}? +(Unlikely, but it doesn't hurt to check.) + +\end{enumerate} + +The \TL{} software consists of hundreds of programs and tens of +thousands of files, all from varying sources. So it is quite difficult to +predict all possible causes for problems. Nevertheless, we will do our +best to help you. (See section~\ref{sec:help}, \p.\pageref{sec:help}.) + +% don't use \Webc so the \uppercase in the headline works. +\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{}. + +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. + +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 \web{} and translates them into C source +code. The core \TeX{} programs are: + +\begin{cmddescription} +\item[bibtex] Maintaining bibliographies. +\item[dmp] \cmdname{troff} to MPX (\MP{} pictures). +\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[makempx] \MP{} label typesetting. +\item[mf] Creating typeface families. +\item[mft] Prettyprinting \MF{} source. +\item[mpost] Creating technical diagrams. +\item[mpto] MetaPost label extraction. +\item[newer] Compare modification times. +\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 \acro{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{}. 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 more than one directory tree +simultaneously, which is useful in maintaining \TeX's standard +distribution and local extensions in two 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} + +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{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{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{Debugging}). + +\subsubsection{Config files} + +\begingroup\tolerance=3500 +\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} (by default such a file lives +in the \file{texmf/web2c} subdirectory). \emph{All} +\file{texmf.cnf} files in the search path will be read and definitions +in earlier files override those in later files. Thus, with a search +path of \verb|.:$TEXMF|, values from \file{./texmf.cnf} override those +from \verb|$TEXMF/texmf.cnf|. +\endgroup + +\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{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{Default-expansion} + +\tolerance=2500 +If the highest-priority search path (see ``Path sources'' on +page~\pageref{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 + +\tolerance=1500 + +\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 +(appproximately; 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{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{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{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); most sites have only one hierarchy. \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 +(\acro{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{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 more important 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{SExamplesofuse} + +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} + +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 +prolog \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{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. +\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/html/dvips/dvips_toc.html}). +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{SExamplesofuse} 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 +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}. + etc.). +\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 TFM files read. +\item[\texttt{hash\_extra}] + Additional space for the hash table of control sequence names. + Approximately 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 \acro{GNU} version of these programs +(\cmdname{gcc}, \acro{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:unix-install-disk} on +\p.\pageref{sec:unix-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} & \acro{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: \acro{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} + +\section{Acknowledgements} + +\TL{} is a joint effort by virtually all of the \TeX{} user groups. +This edition of \TL{} was overseen by Sebastian Rahtz and Karl Berry. +The other principal contributors are listed below. + +\begin{itemize*} + +\item The German-speaking \TeX{} Users (\acro{DANTE} e.V.), who provide +the hardware for the \TL{} source repository; and Rainer Sch\"opf and +Reinhard Zierke who look after it. \acro{DANTE} officers Volker Schaa +and Klaus H\"oppner coordinate production with the Lehmann's Bookstore +(\url{http://www.lob.de}). + +\item The Perforce corporation (\url{http://www.perforce.com}), for providing +a free copy of their excellent change management system, which we use +to manage the \TL{} sources. + +\item Peter Breitenlohner and the \eTeX\ team for the stable foundation +of future \TeX's. + +\item Thomas Esser, without whose marvelous \teTeX{} package \TL{} +would certainly not exist, and whose continual help makes it a better +product. + +\item Michel Goossens, who co-authored the original documentation. + +\item Eitan Gurari, whose \TeX4ht was used to create the \HTML{} +version of this documentation, and who worked tirelessly to improve +it at short notice. + +\item Hans Hagen, for major testing and making the \ConTeXt\ format +conform to \TL's needs. + +\item Pawe{\l} Jackowski, for the Windows installer \cmdname{tlpm}, +and Tomasz {\L}uczak, for \cmdname{tlpmgui}. + +\item \Thanh, Martin Schr\"oder, and the pdf\TeX\ team for continuing +enhancements of \TeX's abilities. + +\item Petr Olsak, who coordinated and checked all the Czech and Slovak +material very carefully. + +\item Fabrice Popineau, for the Windows binaries in \TL{}. + +\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 assembly and maintenance of Web2C, +upon which all else depends. + +\item Gerben Wierda, for creating and maintaining the \MacOSX\ support, +and much integration and testing. + +\item Graham Williams, on whose work the catalogue of packages depends. + +\end{itemize*} + +Builders of the binaries: +Tigran Aivazian (\pkgname{x86\_64-linux}), +Manfred Lotz (\pkgname{i386-freebsd}), +Fabrice Popineau (\pkgname{win32}), +Norbert Preining (\pkgname{alpha-linux}), +Vladimir Volovich (\pkgname{powerpc-aix}, \pkgname{sparc-linux}, + \pkgname{sparc-solaris}), +Staszek Wawrykiewicz (\pkgname{i386-linux}), +Olaf Weber (\pkgname{mips-irix}), +Gerben Wierda (\pkgname{i386-darwin}, \pkgname{powerpc-darwin}). + +Documentation and translation updates: +Karl Berry (English), +Daniel Flipo \& Fabrice Popineau (French), +G\"unter Partosch \& Hartmut Henkel (German), +Petr Sojka \& Jan Busa (Czech\slash Slovak), +Boris Veytsman (Russian), +Staszek Wawrykiewicz (Polish). + +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:multiple-dist}, \p.\pageref{sec:multiple-dist}). In +addition: + +\begin{itemize*} +\item At the request of the \LaTeX{} team, we changed the standard + \cmdname{latex} and \cmdname{pdflatex} commands to now use \eTeX{} (see + \p.\pageref{text:etex}). +\item The new Latin Modern fonts were included (and are recommended). +\item Support for Alpha \acro{OSF} was removed + (\acro{HPUX} support was removed previously), since no one had (or + volunteered) hardware available on which to compile new binaries. +\item Windows setup was substantially changed; for the first time + an integrated environment based on XEmacs was introduced. +\item Important supplementary programs for Windows + (Perl, Ghost\-script, Image\-Magick, Ispell) are now installed + in the \TL{} installation directory. +\item Font map files used by \cmdname{dvips}, \cmdname{dvipdfm} + and \cmdname{pdftex} are now generated by the new program + \cmdname{updmap} and installed into \dirname{texmf/fonts/map}. +\item \TeX{}, \MF{}, and \MP{} now, by default, output most input + characters (32 and above) as themselves in output (e.g., + \verb|\write|) files, + log files, and the terminal, i.e., \emph{not} translated using the + \verb|^^| notation. In \TL{}~7, this translation was + dependent on the system locale settings; now, locale settings do + not influence the \TeX{} programs' behavior. If for some reason + you need the \verb|^^| output, rename the file + \verb|texmf/web2c/cp8bit.tcx|. (Future releases will have cleaner + ways to control this.) +\item This documentation was substantially revised. +\item Finally, since the edition numbers had grown unwieldy, + the version is now simply identified by the year: \TL{} 2003. +\end{itemize*} + + +\subsubsection{2004} + +2004 saw many changes: + +\begin{itemize} + +\item If you have locally-installed fonts which use their own +\filename{.map} or (much less likely) \filename{.enc} support files, you +may need to move those support files. + +\filename{.map} files are now searched for in subdirectories of +\dirname{fonts/map} only (in each \filename{texmf} tree), along the +\envname{TEXFONTMAPS} path. Similarly, \filename{.enc} files are now +searched for in subdirectories of \dirname{fonts/enc} only, along the +\envname{ENCFONTS} path. \cmdname{updmap} will attempt to warn about +problematic files. + +For methods of handling this and other information, please see +\url{http://tug.org/texlive/mapenc.html}. + +\item The \TK\ has been expanded with the addition of a \MIKTEX-based +installable \CD, for those who prefer that implementation to Web2C. +See section~\ref{sec:struct-tl} (\p.\pageref{sec:struct-tl}). + +\item Within \TL, the single large \dirname{texmf} tree of previous +releases has been replaced by three: \dirname{texmf}, +\dirname{texmf-dist}, and \dirname{texmf-doc}. See +section~\ref{sec:tld} (\p.\pageref{sec:tld}), and the \filename{README} +files for each. + +\item All \TeX-related input files are now collected in +the \dirname{tex} subdirectory of \dirname{texmf*} trees, rather than +having separate sibling directories \dirname{tex}, \dirname{etex}, +\dirname{pdftex}, \dirname{pdfetex}, etc. See +\CDref{texmf-doc/doc/english/tds/tds.html\#Extensions} +{\texttt{texmf-doc/doc/english/tds/tds.html\#Extensions}}. + +\item Helper scripts (not meant to be invoked by users) are now located +in a new \dirname{scripts} directory of \dirname{texmf*} trees, and +searched for via \verb|kpsewhich -format=texmfscripts|. So if you have +programs which call such scripts, they'll need to be adjusted. See +\CDref{texmf-doc/doc/english/tds/tds.html\#Scripts} +{\texttt{texmf-doc/doc/english/tds/tds.html\#Scripts}}. + +\item Almost all formats leave most characters printable as +themselves via the ``translation file'' \filename{cp227.tcx}, instead of +translating them with the \verb|^^| notation. Specifically, characters +at positions 32--256, plus tab, vertical tab, and form feed are +considered printable and not translated. The exceptions are plain \TeX\ +(only 32--126 printable), \ConTeXt\ (0--255 printable), and the +\OMEGA-related formats. This default behavior is almost the same as in +\TL\,2003, but it's implemented more cleanly, with more possibilities +for customization. See \CDref{texmf/doc/web2c/web2c.html\#TCX-files} +{\texttt{texmf/doc/web2c/web2c.html\#TCX-files}}. +(By the way, with Unicode input, \TeX\ may output partial character +sequences when showing error contexts, since it is byte-oriented.) + +\item \textsf{pdfetex} is now the default engine for all formats +except (plain) \textsf{tex} itself. (Of course it generates \acro{DVI} +when run as \textsf{latex}, etc.) This means, among other things, that +the microtypographic features of \textsf{pdftex} are available in +\LaTeX, \ConTeXt, etc., as well as the \eTeX\ features +(\OnCD{texmf-dist/doc/etex/base/}). + +It also means it's \emph{more important than ever} to use the +\pkgname{ifpdf} package (works with both plain and \LaTeX) or equivalent +code, because simply testing whether \cs{pdfoutput} or some other +primitive is defined is not a reliable way to determine if \acro{PDF} +output is being generated. We made this backward compatible as best we +could this year, but next year, \cs{pdfoutput} may be defined even when +\acro{DVI} is being written. + +\item pdf\TeX\ (\url{http://pdftex.org}) has many new features: + + \begin{itemize*} + + \item \cs{pdfmapfile} and \cs{pdfmapline} provide font map support + from within a document. + + \item Microtypographic font expansion can be used more easily.\\ + \url{http://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html} + + \item All parameters previously set through the special configuration + file \filename{pdftex.cfg} must now be set through primitives, + typically in \filename{pdftexconfig.tex}; \filename{pdftex.cfg} is no + longer supported. Any extant \filename{.fmt} files must be redumped + when \filename{pdftexconfig.tex} is changed. + + \item See the pdf\TeX\ manual for more: \OnCD{texmf/doc/pdftex/manual}. + + \end{itemize*} + +\item The \cs{input} primitive in \cmdname{tex} (and \cmdname{mf} and +\cmdname{mpost}) now accepts double quotes containing spaces and other +special characters. Typical examples: +\begin{verbatim} +\input "filename with spaces" % plain +\input{"filename with spaces"} % latex +\end{verbatim} +See the Web2C manual for more: \OnCD{texmf/doc/web2c}. + +\item enc\TeX\ support is now included within Web2C and consequently all +\TeX\ programs, via the \optname{-enc} option\Dash \emph{only when +formats are built}. enc\TeX\ supports general re-encoding of input and +output, enabling full support of Unicode (in \acro{UTF}-8). See +\OnCD{texmf-dist/doc/generic/enctex/} and +\url{http://www.olsak.net/enctex.html}. + +\item Aleph, a new engine combining \eTeX\ and \OMEGA, is available. +A little information is available in \OnCD{texmf-dist/doc/aleph/base} +and \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph}. The +\LaTeX-based format for Aleph is named \textsf{lamed}. + +\item The latest \LaTeX\ release has a new version of the +\acro{LPPL}\Dash now officially a Debian-approved license. Assorted +other updates, see the \filename{ltnews} files in +\OnCD{texmf-dist/doc/latex/base}. + +\item \cmdname{dvipng}, a new program for converting \acro{DVI} to +\acro{PNG} image files, is included. See \OnCD{texmf/doc/man/man1/dvipng.1}. + +\item We reduced the \pkgname{cbgreek} package to a ``medium'' sized set +of fonts, with the assent and advice of the author (Claudio Beccari). +The excised fonts are the invisible, outline, and transparency ones, +which are relatively rarely used, and we needed the space. The full set +is of course available from \acro{CTAN} +(\url{http://www.ctan.org/tex-archive/fonts/greek/cb}). + +\item \cmdname{oxdvi} has been removed; just use \cmdname{xdvi}. + +\item The \cmdname{ini} and \cmdname{vir} commands (links) for +\cmdname{tex}, \cmdname{mf}, and \cmdname{mpost} are no longer created, +such as \cmdname{initex}. The \cmdname{ini} functionality has been +available through the command-line option \optname{-ini} for years now. + +\item \textsf{i386-openbsd} platform support was removed. Since the +\pkgname{tetex} package in the \acro{BSD} Ports system is available, and +\acro{GNU/}Linux and Free\acro{BSD} binaries were available, it seemed +volunteer time could be better spent elsewhere. + +\item On \textsf{sparc-solaris} (at least), you may have to set the +\envname{LD\_LIBRARY\_PATH} environment variable to run the +\pkgname{t1utils} programs. This is because they are compiled with C++, +and there is no standard location for the runtime libraries. (This is +not new in 2004, but wasn't previously documented.) Similarly, on +\textsf{mips-irix}, the \acro{MIPS}pro 7.4 runtimes are required. + +\end{itemize} + +\subsection{Present} +\label{tlcurrent} + +2005 saw the usual huge number of updates to packages and programs. +The infrastructure stayed relatively stable from 2004, but inevitably +there were some changes there as well: + +\begin{itemize} + +\item New scripts \cmdname{texconfig-sys}, \cmdname{updmap-sys}, and + \cmdname{fmtutil-sys} were introduced, which modify the + configuration in the system trees. The \cmdname{texconfig}, + \cmdname{updmap}, and \cmdname{fmtutil} scripts now modify + user-specific files, under \dirname{$HOME/.texlive2005}. + See section~\ref{sec:texconfig}, \p.\pageref{sec:texconfig}. + +\item Corresponding new variables \envname{TEXMFCONFIG} and + \envname{TEXMFSYSCONFIG} to specify the trees where configuration + files (user or system, respectively) are found. Thus, you may + need to move personal versions of \filename{fmtutil.cnf} and + \filename{updmap.cfg} to these places; another option is to + redefine \envname{TEXMFCONFIG} or \envname{TEXMFSYSCONFIG} in + \filename{texmf.cnf}. In any case the real location of these files + and the values of \envname{TEXMFCONFIG} and \envname{TEXMFSYSCONFIG} + must agree. + See section~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. + +\item Last year, we kept \verb|\pdfoutput| and other primitives undefined + for DVI output, even though the \cmdname{pdfetex} program was + being used. This year, as promised, we undid that compatibility + measure. So if your document uses \verb|\ifx\pdfoutput\undefined| + to test if PDF is being output, it will need to be changed. You + can use the package \pkgname{ifpdf.sty} (which works under both + plain \TeX\ and \LaTeX) to do this, or steal its logic. + +\item Last year, we changed most formats to output (8-bit) characters as + themselves (see previous section). The new TCX file + \filename{empty.tcx} now provides an easier way to get the + original \verb|^^| notation if you so desire, as in: +\begin{verbatim} +latex --translate-file=empty.tcx yourfile.tex +\end{verbatim} + +\item The new program \cmdname{dvipdfmx} is included for translation of + DVI to PDF; this is an actively maintained update of + \cmdname{dvipdfm} (which is also still available for now, though + no longer recommended). + +\item The new programs \cmdname{pdfopen} and \cmdname{pdfclose} are included + to allow reloading of pdf files in the Adobe Acrobat Reader without + restarting the program. (Other pdf readers, notably \cmdname{xpdf}, + \cmdname{gv}, and \cmdname{gsview}, have never suffered from this + problem.) + +\item For consistency, the variables \envname{HOMETEXMF} and + \envname{VARTEXMF} have been renamed to \envname{TEXMFHOME} and + \envname{TEXMFSYSVAR}, respectively. There is also + \envname{TEXMFVAR}, which is by default user-specific. See the + first point above. + +\end{itemize} + +\subsection{Future} + +\emph{\TL{} is not perfect!} (And never will be.) We intend to +continue to release new versions yearly, and would like to provide more +help material, more utilities, more installation programs, and (of +course) an ever-improved and checked tree of macros and fonts. This work +is all done by hard-pressed volunteers in their limited spare time, and +a great deal remains to be done. If you can help, don't hesitate to put +your name forward! + +Please send corrections, suggestions, and offers of help to:\hfill\null +\begin{quote} +Sebastian Rahtz \ / \ 7 Stratfield Road \ / \ Oxford OX2 7BG \ / \ UK \\ +\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/source/english/texlive-en/live4ht.cfg b/Master/texmf-doc/source/english/texlive-en/live4ht.cfg new file mode 100644 index 00000000000..affcc553fc8 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/live4ht.cfg @@ -0,0 +1,47 @@ +% tex4ht configuration file for the TeX Live documentation. +% Accumulated over many years. Public domain. +% +% html specifies the main output format. +% info for extra debugging info in the log files. + +% better approach is to have html in one piece (including footnotes). +% also the newest TeX4ht could produce UTF-8 output (-utf8 option) +\Preamble{charset=utf-8,html,info,fn-in} + +% add extra stylesheet +\Configure{@HEAD}{\HCode{% +<link rel="stylesheet" type="text/css" href="\jobname.css" />\Hnewline +<link rel="stylesheet" type="text/css" href="tex-live.css" />\Hnewline +}} + +% or LaTeX complains it is missing. +\begin{document} + +\EndPreamble + +% simplify output for HTML. We leave TeX and LaTeX alone, since tex4ht +% actually does the lowered E (and raised A) in CSS. +\def\OMEGA{Omega} +\def\LaTeXe{LaTeX2e} +\def\eTeX{e-\TeX} +\def\acro#1{#1} +\def\MF{Metafont} +\def\BibTeX{BibTeX} +\def\warningbox{} +\def\endwarningbox{} + +\newif\ifhackliterals +\ifx\tldocenglish\undefined \else \hackliteralstrue \fi +\ifx\tldocrussian\undefined \else \hackliteralstrue \fi +\ifx\tldocgerman\undefined \else \hackliteralstrue \fi +% +\ifhackliterals + % these definitions cause "missing } inserted" at \end{tabularx} in + % French and Czech. don't know why. + % + % don't make these into links, as happens with \path. We only have a couple + % special characters that actually occur. + \def\dirname{\texttt\bgroup\catcode`\$=12 \catcode`\_=12 \finishliteral} + \def\finishliteral#1{#1\egroup} + \let\filename=\dirname +\fi diff --git a/Master/texmf-doc/source/english/texlive-en/tex-live.css b/Master/texmf-doc/source/english/texlive-en/tex-live.css new file mode 100644 index 00000000000..5062bc0d229 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/tex-live.css @@ -0,0 +1,44 @@ +/* $Id$ + Simple CSS for TeX Live that adds margins and a little color. + original by Bzyl Wlodzimierz, edited by Karl Berry, 2005. + Public domain. */ + +html { + // top left bottom right + margin: 15pt 15pt 15pt 15pt; + background: rgb(255,255,224); +} + +body { + margin: 0 5pt 0 5pt; + padding: 0; + //matw: background: rgb(224,255,224); + // (It looks better to me to have a consistent background --karl) +// fonts in browser are low resolution; +// therefore generated serif are poor quality, +// so they disturb reading (that is my opinion) + font-family: sans-serif; + font-style: normal; +} + +/* (It looks better to me to not vary colors at every level --karl) */ + +h3.sectionHead { + padding: 12pt 10pt 12pt 20pt; + //matw: background: rgb(192,224,255); + background: rgb(224,224,255); + color: rgb(0,0,32); +} + +h4.subsectionHead { + padding: 7pt 10pt 7pt 40pt; + background: rgb(224,224,255); + color: rgb(0,0,32); +} + +h5.subsubsectionHead { + padding: 3pt 10pt 3pt 40pt; + //matw: background: rgb(224,255,255); + background: rgb(224,224,255); + color: rgb(0,0,32); +} diff --git a/Master/texmf-doc/source/english/texlive-en/tex-live.sty b/Master/texmf-doc/source/english/texlive-en/tex-live.sty new file mode 100644 index 00000000000..13ea2251275 --- /dev/null +++ b/Master/texmf-doc/source/english/texlive-en/tex-live.sty @@ -0,0 +1,429 @@ +% $Id: //depot/Master/texmf-doc/source/english/texlive-en/tex-live.sty#13 $ $Author: karl $ $Date: 2005/11/01 $ +% TeX Live documentation style. Written by many people over many years. +% Public domain. +% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{tex-live}[2005/09/24 v1.5 TeX Live documentation style] +% +\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 +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +% +% for a proper \acro command (even in the context of the definition in +% ltugboat -- \DRC overrides without checking) +\RequirePackage{relsize} +\DeclareRobustCommand{\acro}[1]{\textsmaller{#1}\@} +% +\RequirePackage{fancyvrb} +\DefineVerbatimEnvironment{verbatim}{Verbatim}{fontsize=\normalsize} +\DefineVerbatimEnvironment{fverbatim}{Verbatim}{fontsize=\footnotesize} +\DefineVerbatimEnvironment{sverbatim}{Verbatim}{fontsize=\small} +\DefineVerbatimEnvironment{boxedverbatim} + {Verbatim}{fontsize=\scriptsize,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. +% +% Page layout. +\advance\textwidth by 1.1in +\advance\oddsidemargin by -.55in +\advance\evensidemargin by -.55in +% +\advance\textheight by 1in +\advance\topmargin by -.5in +\advance\footskip by -.5in +\pagestyle{headings} +% +% LaTeX parameters. +\renewcommand{\topfraction}{0.85} +\renewcommand{\floatpagefraction}{0.86} +\renewcommand{\textfraction}{0.1} +\renewcommand{\belowcaptionskip}{4pt} +\setcounter{tocdepth}{2} +\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 +\newcommand*{\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]{\texttt{#1}} +\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}} +% +% \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 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. +\newcommand{\CS}{$\mathcal{C}\kern-.1667em\lower.5ex% + \hbox{$\mathcal{S}$}\kern-.075em $} +\def\AFMtoTFM{\cmdname{AFM2TFM}\null} +\def\bv{\emph{Baskerville}} +\let\BV=\bv +\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\KPS{Kpathsea} +\def\La{La} +\def\OMEGA{$\Omega$} +\def\OzMF{OzMF} +\def\OzMP{OzMP} +\def\OzTeX{O\kern-.03em z\kern-.15em\TeX} +\def\p.{p.\,} +\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{\textsf{\TeX\ Collection}} +\let\TL=\TeXLive +\def\TypeI{Type~1} +\def\VFtoVP{\cmdname{VFtoVP}\null} +\def\VPtoVF{\cmdname{VPtoVF}\null} +\def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh} +\def\XEmTeX{\textrm{XEm}\TeX\xspace} +\def\XEmacs{\textrm{XEmacs}\xspace} +\def\Webc{Web2C} +\providecommand*{\CD}{\acro{CD}\xspace} +\providecommand*{\CTAN}{\acro{CTAN}\xspace} +\providecommand*{\DVD}{\acro{DVD}\xspace} +\providecommand*{\HTML}{\acro{HTML}\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] +} +% +% 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. +\newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + +\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 +% +\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, + pagecolor=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}} + \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 |