Go to the first, previous, next, last section, table of contents.


(A copy of this chapter is in the distribution file `kpathsea/INSTALL'.)

The procedure for Kpathsea (and Web2c, etc.) configuration and installation follows. If you encounter trouble, see section Common problems, a copy of which is in the file `kpathsea/BUGS'.

Simple installation

Installing TeX and friends for the first time can be a daunting experience. Thus, you may prefer to skip this whole thing and just get precompiled executables: see section `unixtex.ftp': Obtaining TeX.

This section explains what to do if you wish to take the defaults for everything, and generally to install in the simplest possible way. Most steps here refer to corresponding subsection in the next section which explains how to override defaults and generally gives more details.

By default everything will be installed under `/usr/local' and the following discussion assumes this. However, if you already have TeX installed, its location is used to derive the directory under which everything is to be installed.

  1. Be sure you have enough disk space: approximately 8 megabytes for the compressed archives, 15MB for sources, 45MB for compilation, 40MB for the (initial) installed system (including library files). See section Disk space.
  2. Retrieve these two distribution archives:
    These are the sources, which you will be compiling.
    This is a basic set of input files. You should unpack it in the directory `/usr/local/share'; doing so will create a `texmf' subdirectory there.
    See section Kpathsea application distributions.
  3. When using the default search paths, there is no need to edit any distribution files. See section Changing search paths.
  4. At the top level of the distribution, run `sh configure'. (If you have the GNU Bash shell installed, run `bash configure'.) See section Running configure.
  5. `make'. See section Running make. If you are using a BSD 4.4 system such as FreeBSD or NetBSD, use GNU make (often installed in `/usr/local/bin'), not the BSD make. If you are using a HP-UX 10 system and the native compiler, specify the `+u' flag in XCFLAGS.
  6. `make install'. See section Installing files.
  7. `make distclean'. See section Cleaning up.
  8. Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight:
    0 0 * * * cd /usr/local/share/texmf && /bindir/mktexlsr
    See section Filename database generation, and section Filename database (ls-R).
  9. If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts available. See section `Installation' in Dvips. If you have any color printers, see section `Color device configuration' in Dvips.
  10. The first time you run a DVI driver, a bunch of PK fonts will be built by Metafont via mktexpk (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). By default, mktexpk will create these fonts in a hierarchy under `/var/tmp/texfonts'; it simply assumes that `/var/tmp' exists and is globally writable. If you need a different arrangement, see section `mktex' configuration. See section `mktex' scripts.
  11. For some simple tests, try `tex story \\bye' and `latex sample2e'. Then run `xdvi story' or `dvips sample2e' on the resulting DVI files to preview/print the documents. See section Installation testing.

Custom installation

Most sites need to modify the default installation procedure in some way, perhaps merely changing the prefix from `/usr/local', perhaps adding extra compiler or loader options to work around configure bugs. This section explains how to override default choices. For additional distribution-specific information:

These instructions are for Unix systems. Other operating-system specific distributions have their own instructions. The code base itself supports Amiga, DOS, OS/2, and VMS.

Following are the same steps as in the previous section (which describes the simplest installation), but with much more detail.

Disk space

Here is a table showing the disk space needed for each distribution (described in the next section). The `(totals)' line reflects the `texk' source distribution and `texmflib'; the individual distributions don't enter into it. Sizes are in megabytes. All numbers are approximate.

Distribution dviljk dvipsk xdvik web2c web texk texmflib (totals)
.tar.gz Unpacked Compiled Installed
.9 3.8
.9 3.2
.7 2.5
1.3 5.0
1.9 6.5 - -
3.8 14.1 43.1 23.5
3.8 15.0 - 15.0
7.6 29.1 43.1 38.5

Kpathsea application distributions

The archive ftp://ftp.tug.org/tex/texk.tar.gz contains all of the Kpathsea applications I maintain, and the library itself. For example, since NeXT does not generally support X11, you'd probably want to skip `xdvik' (or simply remove it after unpacking `texk.tar.gz'. If you are not interested in all of them, you can also retrieve them separately:

DVI to PCL, for LaserJet printers.
DVI to PostScript, for previewers, printers, or PDF generation.
The software needed to compile TeX and friends.
The original WEB source files, also used in compilation.
DVI previewing under the X window system.

If you want to use the Babel LaTeX package for support of non-English typesetting, you may need to retrieve additional files. See the file `install.txt' in the Babel distribution.

Changing search paths

If the search paths for your installation differ from the standard TeX directory structure (see section `Introduction' in A Directory Structure for TeX files), edit the file `kpathsea/texmf.in' as desired, before running configure. For example, if you have all your fonts or macros in one big directory.

You may also wish to edit the file `mktex.cnf', either before or after installation, to control various aspects of mktexpk and friends. See section `mktex' configuration.

You do not need to edit `texmf.in' to change the default top-level or other installation directories (only the paths). You can and should do that when you run configure (next step).

You also do not need to edit `texmf.in' if you are willing to rely on `texmf.cnf' at runtime to define the paths, and let the compile-time default paths be incorrect. Usually there is no harm in doing this.

The section below explains default generation in more detail.

Default path features

The purpose of having all the different files described in the section above is to avoid having the same information in more than one place. If you change the installation directories or top-level prefix at configure-time, those changes will propagate through the whole sequence. And if you change the default paths in `texmf.in', those changes are propagated to the compile-time defaults.

The Make definitions are all repeated in several Makefile's; but changing the top-level `Makefile' should suffice, as it passes down all the variable definitions, thus overriding the submakes. (The definitions are repeated so you can run Make in the subdirectories, if you should have occasion to.)

By default, the bitmap font paths end with `/$MAKETEX_MODE', thus including the device name (usually a Metafont mode name such as `ljfour'). This distinguishes two different devices with the same resolution--a write/white from a write/black 300dpi printer, for example.

However, since most sites don't have this complication, Kpathsea (specifically, the kpse_init_prog function in `kpathsea/proginit.c') has a special case: if the mode has not been explicitly set by the user (or in a configuration file), it sets MAKETEX_MODE to /. This makes the default PK path, for example, expand into .../pk//, so fonts will be found even if there is no subdirectory for the mode (if you arranged things that way because your site has only one printer, for example) or if the program is mode-independent (e.g., pktype).

To make the paths independent of the mode, simply edit `texmf.in' before installation, or the installed `texmf.cnf', and remove the `$MAKETEX_MODE'.

See section `mktex' script arguments, for how this interacts with mktexpk.

See section TeX directory structure, for a description of the default arrangement of the input files that comprise the TeX system. The file `kpathsea/HIER' is a copy of that section.

Default path generation

This section describes how the default paths are constructed.

You may wish to ignore the whole mess and simply edit `texmf.cnf' after it is installed, perhaps even copying it into place beforehand so you can complete the installation, if it seems necessary.

To summarize the chain of events that go into defining the default paths:

  1. `configure' creates a `Makefile' from each `Makefile.in'.
  2. When Make runs in the `kpathsea' directory, it creates a file `texmf.sed' that substitutes the Make value of $(var) for a string @var@. The variables in question are the one that define the installation directories.
  3. `texmf.sed' (together with a little extra magic--see `kpathsea/Makefile') is applied to `texmf.in' to generate `texmf.cnf'. This is the file that will eventually be installed and used.
  4. The definitions in `texmf.cnf' are recast as C #define's in `paths.h'. These values will be the compile-time defaults; they are not used at runtime unless no `texmf.cnf' file can be found. (That's a lie: the compile-time defaults are what any extra :'s in `texmf.cnf' expand into; but the paths as distributed have no extra :'s, and there's no particular reason for them to.)

Running configure

Run sh configure options (in the top-level directory, the one containing `kpathsea/'), possibly using a shell other than sh (see section configure shells).

configure adapts the source distribution to the present system via #define's in `*/c-auto.h', which are created from the corresponding `c-auto.in'. It also creates a `Makefile' from the corresponding `Makefile.in', doing `@var@' and `ac_include' substitutions).

configure is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before invoking it. For example, you can disable mktexpk by default with the option `--disable-mktexpk'. See section configure options.

configure shells

If you have Bash, the GNU shell, use it if sh runs into trouble (see section `Top' in Bash Features).

Most Bourne shell variants other than Bash cannot handle configure scripts as generated by GNU Autoconf (see section `Top' in Autoconf). Specifically:

The Korn shell may be installed as `/bin/sh' on AIX. `/bin/bsh' may serve instead.
Ash is sometimes installed as `/bin/sh' on NetBSD, FreeBSD, and Linux systems. `/bin/bash' should be available.
Ultrix /bin/sh
`/bin/sh' under Ultrix is a DEC-grown shell that is notably deficient in many ways. `/bin/sh5' may be necessary.

configure options

For a complete list of all configure options, run `configure --help' or see section `Running configure scripts' in Autoconf, (a copy is in the file `kpathsea/README.CONFIGURE'). The generic options are listed first in the `--help' output, and the package-specific options come last. The environment variables configure pays attention to are listed below.

Options particularly likely to be useful are `--prefix', `--datadir', and the like; see section configure scenarios.

This section gives pointers to descriptions of the `--with' and `--enable' options to configure that Kpathsea-using programs accept.

Enable or disable the dynamic generation programs. See section `mktex' configuration.
Build Kpathsea as a shared library, and link against it. Also build the usual static library. See section Shared library.
Build only the shared library. Implies `--enable-shared'.
Enables make targets that are useful for the maintainer and likely to be a pain for anyone else; the makefiles created when this option is enabled may not work at all for you. You have been warned.

configure environment

configure uses the value of the following environment variables in determining your system's characteristics, and substitutes for them in Makefile's:

The compiler to use: default is gcc if it's installed, otherwise cc.
Options to give the compiler: default is `-g -O2' for gcc, `-g' otherwise. CFLAGS comes after any other options. You may need to include -w here if your compilations commonly have useless warnings (e.g., NULL redefined), or configure may fail to detect the presence of header files (it takes the messages on standard error to mean the header file doesn't exist).
Options to pass to the compiler preprocessor; this matters most for configuration, not the actual source compilation. The configure script often does only preprocessing (e.g., to check for the existence of #include files), and CFLAGS is not used for this. You may need to set this to something like `-I/usr/local/include/wwwhatever' if you have the libwww library installed for hyper-xdvik (see `xdvik/INSTALL').
Additional preprocessor options, but not used by configure. Provided for enabling or disabling program features, as documented in the various program-specific installation instructions. DEFS comes before any compiler options included by the distribution `Makefile's or by configure.
Additional options to give to the loader. LDFLAGS comes before any other linker options.
Additional libraries to link with.

configure scenarios

Here are some common installation scenarios:

Shared library

You can compile Kpathsea as a shared library on a few systems, by specifying the option `--enable-shared' when you run `configure'.

The main advantage in doing this is that the executables can then share the code, thus decreasing memory and disk space requirements.

On some systems, you can record the location of shared libraries in a binary, usually by giving certain options to the linker. Then individual users do not need to set their system's environment variable (e.g., LD_LIBRARY_PATH) to find shared libraries. If you want to do this, you will need to add the necessary options to LDFLAGS yourself; for example, on Solaris, include something like `-R${prefix}/lib', on IRIX or Linux, use `-rpath${prefix}/lib'. (Unfortunately, making this happen by default is very difficult, because of interactions with an existing installed shared library.)

Currently, shared library support is implemented only on Linux, SunOS 4 (Solaris 1), SunOS 5 (Solaris 2), IRIX 5, and IRIX 6. If you're interested and willing in adding support for other systems, please see the `configure' mode in the `klibtool' script, especially the host-specific case statement around line 250.

Running make

make (still in the top-level directory). This also creates the `texmf.cnf' and `paths.h' files that define the default search paths, and (by default) the `plain' and `latex' TeX formats.

You can override directory names and other values at make-time. `make/paths.make' lists the variables most commonly reset. For example, `make default_texsizes=600' changes the list of fallback resolutions.

You can also override each of configure's environment variables (see section configure environment). The Make variables have the same names.

Finally, you can supply additional options via the following variables. (configure does not use these.)

Preprocessor options.
Compiler options.
Loader options (included at beginning of link commands).
More loader options (included at end of link commands).
Additional Make arguments passed to all sub-make's. You may need to include assignments to the other variables here via XMAKEARGS; for example: `make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'.

It's generally a bad idea to use a different compiler (`CC') or libraries (LIBS) for compilation than you did for configuration, since the values configure determined may then be incorrect.

Adding compiler options to change the "universe" you are using (typically BSD vs. system V) is generally a cause of trouble. It's best to use the native environment, whatever that is; configure and the software usually adapt best to that. In particular, under Solaris 2.x, you should not use the BSD-compatibility library (`libucb') or include files (`ucbinclude').

If you want to use the Babel LaTeX package for support of non-English typesetting, you need to modify some files before making the LaTeX format. See the file `install.txt' in the Babel distribution.

Installing files

The basic command is the usual make install. For security issues, see section Security.

The first time you install any manual in the GNU Info system, you should add a line (you choose where) to the file `dir' in your `$(infodir)' directory. Sample text for this is given near the top of the Texinfo source files (`kpathsea/kpathsea.texi', `dvipsk/dvips.texi', and `web2c/doc/web2c.texi'). If you have a recent version of the GNU Texinfo distribution installed (ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz or later), this should happen automatically.

On the offchance that this is your first Info installation, the `dir' file I use is included in the distribution as `etc/dir-example'.

You may wish to use one of the following targets, especially if you are installing on multiple architectures:

If you use the Andrew File System, the normal path (e.g., prefix/bin) only gets you to a read-only copy of the files, and you must specify a different path for installation. The best way to do this is by setting the `prefix' variable on the make command line. The sequence becomes something like this:

configure --prefix=/whatever
make install prefix=/afs/.system.name/system/1.3/@sys/whatever

With AFS, you will definitely want to use relative filenames in `ls-R' (see section Filename database (ls-R)), not absolute filenames. This is done by default, but check anyway.

Cleaning up

The basic command is make distclean. This removes all files created by the build.


Filename database generation

You will probably want to set up a cron entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in:

0 0 * * * cd texmf && /bindir/mktexlsr

See section Filename database (ls-R).

Although the mktex... scripts make every effort to add newly-created files on the fly, it can't hurt to make sure you get a fresh version every so often.

`mktex' scripts

If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it dynamically (see section `mktex' configuration). This is most useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), since any given document can use fonts never before referenced. Trying to build all fonts in advance is therefore impractical, if not impossible.

The script is passed the name of the file to create and possibly other arguments, as explained below. It must echo the full pathname of the file it created (and nothing else) to standard output; it can write diagnostics to standard error.

`mktex' configuration

The following file types can run an external program to create missing files: `pk', `tfm', `mf', `tex'; the scripts are named `mktexpk', `mktextfm', `mktexmf', and `mktextex'.

In the absence of configure options specifying otherwise, everything but `mktextex' will be enabled by default. The configure options to change the defaults are:


The configure setting is overridden if the environment variable or configuration file value named for the script is set; e.g., `MKTEXPK' (see section `mktex' script arguments).

As distributed, all the scripts source a file `texmf/web2c/mktex.cnf' if it exists, so you can override various defaults. See `mktex.opt', for instance, which defines the default mode, resolution, some special directory names, etc. If you prefer not to change the distributed scripts, you can simply create `mktex.cnf' with the appropriate definitions (you do not need to create it if you have nothing to put in it). `mktex.cnf' has no special syntax; it's an arbitrary Bourne shell script. The distribution contains a sample `mktex.cnf' for you to copy and modify as you please (it is not installed anywhere).

In addition, you can configure a number of features with the MT_FEATURES variable, which you can define:

If none of the options below are enabled, mktexpk, mktextfm, and mktexmf follow the following procedure to decide where fonts should be installed. Find the tree where the font's sources are, and test the permissions of the `fonts' directory of that tree to determine whether it is writable. If it is, put the files in the tree in appropriate locations. If it isn't writable, see whether the tree is a system tree (named in SYSTEXMF). If so, the VARTEXFONTS tree is used. In all other cases the working directory is used.

The `appendonlydir' option is enabled by default.

Tell mktexdir to create directories append-only, i.e., set their sticky bit (see section `Mode Structure' in GNU File Utilities). This feature is silently ignored on non-Unix platforms (e.g. Windows/NT and MS-DOS) which don't support similar functionality. This feature is enabled by default.
Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. Note that this feature only affects filenames that would otherwise clash with other TeX-related filenames; `mktex' scripts do nothing about filenames which exceed the 8+3 MS-DOS limits but remain unique when truncated (by the OS) to these limits, and nether do the scripts care about possible clashes with files which aren't related with TeX. For example, `cmr10.600pk' would clash with `cmr10.600gf' and is therefore changed when `dosnames' is in effect, but `mf.pool' and `mp.base' don't clash with any TeX-related files and are therefore unchanged. This feature is turned on by default on MS-DOS. If you do not wish `dosnames' to be set on an MS-DOS platform, you need to set the MT_FEATURES environment variable to a value that doesn't include `dosnames'. You can also change the default setting by editing `mktex.opt', but only if you use the `mktex' shell scripts; the emulation programs don't consult `mktex.opt'.
Instead of deriving the location of a font in the destination tree from the location of the sources, the aliases and directory names from the Fontname distribution are used. (see section `Introduction' in Fontname).
Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode.
Omit the font supplier name directory level.
Omit the font typeface name directory level.
Omit the font supplier and typeface name directory levels. This feature is deprecated in favour of `stripsupplier' and `striptypeface'.
When this option is enabled, fonts that would otherwise be written in system texmf tree go to the VARTEXFONTS tree instead. The default value in `kpathsea/Makefile.in' is `/var/tmp/texfonts'. The Linux File System Standard recommends `/var/tex/fonts'. The `varfonts' setting in MT_FEATURES is overridden by the USE_VARTEXFONTS environment variable: if set to `1', the feature is enabled, and if set to `0', the feature is disabled.

`mktex' script names

The following table shows the default name of the script for each possible file types. (The source is the variable kpse_make_specs in `kpathsea/tex-make.c'.)

Glyph fonts.
TeX input files.
Metafont input files.
TFM files.

These names are overridden by an environment variable specific to the program--for example, DVIPSMAKEPK for Dvipsk.

If a mktex... script fails, the invocation is appended to a file `missfont.log' (by default) in the current directory. You can then execute the log file to create the missing files after fixing the problem.

If the current directory is not writable and the environment variable or configuration file value TEXMFOUTPUT is set, its value is used. Otherwise, nothing is written. The name `missfont.log' is overridden by the MISSFONT_LOG environment variable or configuration file value.

`mktex' script arguments

The first argument to a `mktex' script is always the name of the file to be created.

In the default `mktexpk' implementation, additional arguments may also be passed:

`--dpi num'
Sets the resolution of the generated font to num.
`--mfmode name'
Sets the Metafont mode to name.
`--bdpi num'
Sets the the "base dpi" for the font. This must match the mode being used.
`--mag string'
A "magstep" string suitable for the Metafont mag variable. This must match the combination of bdpi and dpi being used.
`--destdir string'
A directory name. If the directory is absolute, it is used as-is. Otherwise, it is appended to the root destination directory set in the script.

Installation testing

Besides the tests listed in section Simple installation, you can try running `make check'. This includes the torture tests (trip, trap, and mptrap) that come with Web2c (see section `Triptrap' in Web2c).


None of the programs in the TeX system require any special system privileges, so there's no first-level security concern of people gaining illegitimate root access.

A TeX document, however, can write to arbitrary files, e.g., `~/.rhosts', and thus an unwitting user who runs TeX on a random document is vulnerable to a trojan horse attack. This loophole is closed by default, but you can be permissive if you so desire in `texmf.cnf'. See section `tex invocation' in Web2c. MetaPost has the same issue.

Dvips, Xdvi, and TeX can also execute shell commands under some circumstances. To disable this, see the `-R' option in section `Option details' in Dvips, the xdvi man page, and section `tex invocation' in Web2c, respectively.

Another security issue arises because it's very useful--almost necessary--to make arbitrary fonts on user demand with mktexpk and friends. Where do these files get installed? By default, the mktexpk distributed with Kpathsea assumes a world-writable `/var/tmp' directory; this is a simple and convenient approach, but it may not suit your situation because it means that a local cache of fonts is created on every machine.

To avoid this duplication, many people consider a shared, globally writable font tree desirable, in spite of the potential security problems. To do this you should change the value of VARTEXFONTS in `texmf.cnf' to refer to some globally known directory. See section `mktex' configuration.

The first restriction you can apply is to make newly-created directories under `texmf' be append-only with an option in `mktex.cnf'. See section `mktex' configuration.

Another approach is to establish a group (or user) for TeX files, make the `texmf' tree writable only to that group (or user), and make mktexpk et al. setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.)

The `mktex...' scripts install files with the same read and write permissions as the directory they are installed in. The executable, sgid, suid, and sticky bits are always cleared.

Any directories created by the `mktex...' scripts have the same permissions as their parent directory, unless the appendonlydir feature is used, in which case the sticky bit is always set.

TeX directory structure

This section describes the default installation hierarchy of the distribution. It conforms to both the GNU coding standards and the TeX directory structure (TDS) standard. For rationale and further explanation, please see those documents. The GNU standard is available as ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi and mirrors. The TDS document is available from `CTAN:/tex-archive/tds' (see section sceault, bus not neegure( NAME="IDT> doll)apply i binarieX144"> makl in arched witd to set tup (or user)orted witr ightly or so, asmktex...and is tes, as documvarious ans NAME="Iat, , `--datadir', and the like; see section >conftable keletR>num

This sty co(ed witd to set newly-crended to a DE> , s to binari t.er, detailsi this to s C may f >, 26"> Putti aria, different coT not uf the Tex*.texi'< d this, DE>make install-databstem Bibmktextex' a DDE>b, Bibmkte nes and direco set thcircumnt va.bRIX or Lin) a DDu>`mc, inarie-ages o The a5"> a DDEst, Bibmktestyle a DDupnes and direco set thcircumcreat.Estfeature isdoing `mc, inarie-ages style a DDundrew kgSystem, The a5"> a D>`dv efault itecture-inde a D>ion v doing <.252feature isdoing <.t `mkt thcircumcspk'`mp.base' M>`mkt thcircumckfeature ) a DDundrewe dpSystem, < f nameche it crendevicecoIDX193hcircumckfeature in favour o00pk'es. Topar) a DDudpi The a5X220"> numode tonnSystem, < f 5X220"-dpi noIDX193hcircumckfeature in favour o00pk'es. Topar) a Dm

A ,
A "(E>).> A )extex' a DDEnes and direco set thcircumcreat.mffeature ) a DD>`mc, inarie-ages "> sco set thcircume dps.mffeature ) a DDndrew kgSystem, < The a5"> co set thcircumefpIcfeature ) a Dm a DDEnes and direco set thcircumcreat.mpfeature ) a DD>`mc, inarie-ages "> s a DDndrew kgSystem, < The a5"> a DD (e.g. , f you're The fction `mp.bauction `Mco set thcircum a DDndrewmodifySystem, < /A> The a5X2difyco set thcircumcreatfeature ) a DDuEnes and direcompildrewmodifySystemco set thcircumcreat.lt) the `mc, inarie-ages "> sco set thcircumwebmac.lt) the The a5"> co set thcircumgrapapp `mkt thcircummfnfss the `kpa, modifyall-data s a DD youher, youhere ` passnsco set thcircumyouher.lt) the s, Pm

co set tEncapsu`mp.bax inSories) a DDu>`mc, inarie-ages modifyall-data sco set thcircumnuthe t) the The a5"> co set thcircumbe th the

In the--data, reso)AR> && ,valttd to set t.er,.er1/ptio.1 ed to set thiA>,f the TexhiA> ed to set tria,t uf the Texa ed to set t this,that ,E>bstemEst,ETeX direc"> changes thF="IDX229"e exare usidocumvarious aX132 Thiinterested This.rhoDX168"> ac None CODEs (trihe lndir(creat)l#SE,"IDX165(2e), Bibmkt,

A ,ion `mp.ba NAME="Ifor and wr256"rrenttow It le archit trees wi256gvari destinationse ( CODE>inmodifyDE> ve isl files c "> scstallation, the `--e if yo aserumentsht Thewww.tug.org,we, and d, ails> changes thP For A> To avojo2.html5"> Uat grGODE>mkTUGut rehelp f you'reorms. < texpkerumentsht Thewww.tug.orghe program--inmodifyDE> changes thF=ris matteocumented in the various e the loea_2.htmltare thoroughldestinati, `--datadir', and the like3NAME="SEC25" Hml#SE As a saiIDX245">

r>) aInstal6

rchy a wri s on a--destdir st >configure &&es, etc. exec the script.)

wo a;nder some144"> oAs distriREADME.b/gnu/stributiotreeH2>

sytadir'aont's sou#SEC2DX21have a recentIDX245"><144"> oAs distri./MIRRORed forure you &es, etc. ir-example'. <27ory structure WODE>s (, Gouher, rlMP>r>) as. l, texNFSable on ed. striREADME.b/gnu/stributioult o creatsure you &es, etc. ME="IDX169"> availas, -data shmodgeX183"> may transFONs)n, additional arguments mayors. The TDS documend and w, all t ftp://> Metafont iAup`--d> Iniguratmktextfm'Topar)ample acro "> s `i invo when NU coding >ME="x}/lfor multiple archit aserreatedlude ths.h'rep.ai /49"ehen ribuths.h'rep.aihtml#SECIfirs P> Nonedame permP> relmktexpkappendonlyhan `when `dosn/prep.ai.ing ant to doable (e.AMPmable oonfigure name"> sc b TeX documened wie ext u>ftp://> Metaowever,ftp://> MetaoThis also cdf ext u>ftp://> Metaoy not srcode, thud rchw> DvDX178">ftp://> Metafont ies, etc. `m wi256gvari WEB this is give, is enablL> rel, tributit can'tof the sWEB this is`when , Metafont iTODEs (tritever mblRe, thudE Aaseru ">, ftp://> Metafont iAfault le archite-mktSECOplt , ftp://> Metafont iAfault le architO/CgaSECOplt , ftp://> Metafont iAfault le architcdfX16SECOplt , Metafont iTODE al IRIX (tritestinatipluX262">efault (trtipluX262">dvi dr AddiUL>

  • itnmen, pluX2. dvi dr AddiUDE>mCoolE="IDX"> d AMparP>`-rmblReLedvDX178">"IDX183"fonts nke clletemtever m Un">`kpathkdvtp://> Metafont iDVI-to-x inSories transC25olly Un"> Metafont iXoDXtly ime you DVI MEevi Metafont iDVI-to-xCL (HP"IDserJee) transC25olly Un">
    mknes and dires (ack."IDXmuch hname trees wiistribut/sea assumes a woke eveot wriure you get a fresh version3/SAMP> targets.

    Instal8> organizt the led? By de f' X165CD-ROM' ere are so by the build.

    <2NAME="IDX185"> <2P>

    mGUTenberg (Fn dohklibng, yoX165ost nCODE>) /HllaboSAMP> not e disblish a sectX165Lilahe sect5CD-ROM, appenX245urentID itecture-inde); emd anNetBSD/Amigat's an arbitranstalestina;xpkerumentsht Thewww.netbsd.org/S Thi/cdtres < the next machindardInmoMagiciCD-ROM"tablex/ TDSt ME=Mhen);xpke umentsht Thewww.inmomagic.e c the next machine, rm 2 scripts

    )g e disbs antever m machine, rm 2 `/var/tePrSEC2TSEC2TeXc`fonaiCD-ROM"tablasernex/ TDS; emd < texpkerumentsht Thewww.ptf.e c/ptf/ the next machine, rm 2 >

    X165CD-ROM"tablasernex/ TDS; emd < texpke umentsht Thewww.cdtre.e c:/tit pet rm 2 > `nes and dires patibilie I`ntecture-inde, as jucircumDes and dire-HOWTO is writtariaa r Solris--d> I `nes and dires,s an(ronment var)tina umentsht Thewww.l.orghe prog. hierarchy); <78">texmThe afault X165CD-ROM"nes and dires mktex. nottO va defrd. For inmodiCatadir'Instalpt arguments). <30configuration`appendonlydir'

    lndirA NAMEhtmlW (trtie evape. Cy Boctthe filenPierr-clecKay / Denny H>n/ SeattctorWA 98195n/ USA phE>e: 206-543-2268; emdrd isee setion rd i="kpaP> &&Astead ois en an> Thevtp the ne> coifycns 1/4rA Nh 4- d4mu DATto t andg"ICODE>mCOD r sfirstUS$210gidMdllation< if yho runs 5">, draw> ve i U.S.IihFrgg >ME$10 Cot ayram--invoicecME="IDXODErECOAddi FoAd Thi,nf'ex. $20 If Kphipmog finala> scricelmitst, tex$30 If Kphipmog finaitabCOerure you get a fresh version3standard error.

    direOX165"> ea_toc.html#TOC21">`mkte303/@sys/whatever

    In theiUD isa/CODE> an> MetaoyA NAMEhtml nes and dires con Th, Amiga, AcordirVMS,dMdcllinsh, DOSCODE>mently i ion h).atabase ( .eritophsea_ng, fontsICODE>mctoryctre Aunand make teatedaNAME="IDX199"not wi opt Thof tP Forary B By de o buov

    Is!ould write a C wrapper t3T>`nomode'

    `nes and direisODuODE> scrbovet vt is we to bo lndfor the running rchy e clletemtstalled.is pe Make ifo> .eri popare `uitabe filA NAMEhtml .aIfirst, `mp.ba NAME="I rchw> Dure you &es, etc. `stripsupplier'`/var/te wriftfo>drd i="kpat vt is 256gvari destin/VAR>' fo> appenD ToE>USEistribut.>, tributowever,creat.lt) thDE>, reso HA> r"IDX183"fonts convmes > b TeX for ab >`mktey is absmany gili> If permeateds. nemktexpk e.he aE>) all destin/VAR>wi scrpt w>a> ftfo>dOX165"rojged wsois turnere fine andts of tftpAd Thtion of p-to-dmp.in which case the sticky b3re is disabled.

    < ogea_toc.hhtml#TOC27">TeX dire3>`striptypeface' iTOC27">TeX dire3>t arguments). <3>
    < ushtmltare ogation< defand pos changes thP For reou're ogeDX245"> Tosle fandioniororbto une, sg m--ine clletemTDS) standaatioyits, wrlevenigur, ..ure you get a fresh version3ion file value.

    Bogation< defa_toc.html#TOC21">`mkte32
    ae ogrd. For filenonmentf you dunlesn the trel//CODCE> scerable, iC28roup (ounixtexBogagiou're following sog finalrlMP>r>) a md ant to doVAR>reoe distribable oon any, scri"E> aninvF="kgaIDX201"> <32> DEcrl the enve circums-t can'tce name didden by an enCODE>mCODEl passxbymEC4">Simple instype appens-t can'tce name .A NAME="IDNEWSe_specThis also ehen eLtion is atexpkrm 32
    mentsThe the ne> followiP> removushtml(of tit cren. To do u/A> T-aconfiguratia sttrtke every /A>. twotionse (make s-ine clleteystem ttare ogainvolv ation'XoDXtly ime you ipatibiliXlt can't nstal chw> D (ent varI: X11R6 treeMIT; X11R4 treeHP; Openently i<3.3e ondlefault, SunOS 4.1.4)xt machine, rm 32`stripsuAritopdires or theatedlue section <3> script Iefinitany giou'rODE>ae ogn> A mcterwise, eunand makebase x'DX178">meeemakn ou'reornsteaus-DE>- in arst to dafault eate: If Kpaths ogethsea_2.h lookDX245">on < If SAMP>` thea NA leve`mktee cleaA a mktnstalestin> followi>< IXMFOUTPU/Acircumcon will be enabl but only iftetssar,'T> e acrote that>' e section , the-1 is writt e any gC4">Simen by an enentP For lookDaME="IDren conssarxA> The fdunleconf dioniorminee `ae ognbe any giou'rODE>it; phshaps "old"237"> These names aIDX226s D isach,en executecial d bIDX2undariousent varst machindarddy BE>ted f c ant to doablreoe dise>conf ogand is ogeDX24DVI-`it maya4DVIipt fa the CnynEPSiintereste/TT> candx'e matt followi>rm 32

    e sect thi the ne>, /CODE> and micuments. The GNU standard is availaconfigurat a/tmp' dwaVAR>/">and multisect(s the dyAord th)ated byomp rlMP>r>) a md con't o yoig183">rm 32t arguments). <33SAMP>`fontmaps'nt <(dDX178">E="!)rd. For dDnE="IDX2rm he a5dy BExprboff ( variabloff -cfeature ) ano f tree w256gvari 's an arbitrasript E AritfilenamodiCDX21hff : ify edit"IDXa>ftpentP For aser).tibilia also ehen eLtion is aT> ryxt machine, rm 33pool files, etc. `nomode' scripts TFM files.

    inmodifyDE> ">wise, ehelp/TT thereoe disn

    <">`mkte3/CODE> for Dvipsk. <33t arguments). <3ixing thether casess (tri < `ae dnrary Toslribuifre are soktextsubME="ID/ The78"docume@ The78"r.pEXFONhudEemd &&the changes thYe is turneAMP> to jo2.183">ubNAMEa giou'rODE>rA>wiseAMEaangediate locaor theMEa gi`t> Teable oonfME="I UatneneAMwsCODE>me, tuilpts (DX178">E=" bIDof tine to be setss tp, emdmcsse menheurc> Thede, e tsdidden bo that iable onbe trwaVAAMP>`CODE>DX178">"IDX183"jo2.1oit"IDXrs P>adre riure you TOC21">`mkte34pool files, etc. Thed f Aoogagiou're DE> bo cusADX201jo2.1atadir' <)ure you TOC21">`mkte34 scripts TFM files. , respectively. <34t arguments). <350script Iefinitany looken exousare usit to help,l in archhentf yussbIDX16,nf'ing e `mkte35
    `mkte3 exec the script.) <3P>

    `- itnmen AME="Iir="IDX236nd to dmkopdires DE> TDt rectof tit creup (ounixtexrun numer a uileme NAME="ID, th appe,ram--for ex36nd.,ifo> .exiIf yit creu -for ex36nd Dure you &es, etc.

    numbt gand posfeature iA> tare followipply i de og ). , aserung numbt g nd pos changes th cleared. <3PE>, respe , the-1 is writ, >appen>wis 5urenne de og ribuit cresic comminethappen t icare wiseyieldtof tit cre 's changes th cleared. <3Pt arguments). <3"> ' Dsthe filenkpath -d -1 ..u 2>T>`kpde ogAR> &&es, etc. tareion, pline Kype appenuctiony /"> E> ung E_toc.hEM> nd po;178">mustdecutablung e fo> <' in /PE>,Subboth the GTDSansirethse). Iefinitany h,en eles,p-to-dmp. also ls-Rsea assu/Pt a/var/A> Tu <),etaommential oe dise>"I it crexme perma ninexosle fa ult nIat1oup (exoslrations.h'P> hpoolbinari: also ls-Rsea asshis also aliFors> Metaf/Pt a/var/A> Tu <);5X220"aliFors'/ pooF220mapP> <);5var/tmpfig DE> enviros'/P1ODCEpfigwault) SgedP> nviros'any "ID ion ofX2undar sett tages sns.h'Pstany looken eaME="IDbo kee go toO=l h,en ealso ls-Rsea as.nts may sectKPSE_DEBUG_FOPEN (4)ould chaont ies, etc. TFM files. wault convefonts's DE> ehings.e diuSimple insfoheifeature mkple insf a trfeature ) iddbemple instype_fohei_tracace name d(ple instype_f a tr_tracace name ).nts may sectKPSE_DEBUG_PATHS (8)ould chaont ies, etc.

    , ils, >on Metao DX237"> These names,An `Oe cleaA-#SEC2deWhere dreso p commineCOD r BE>ted f< TheME="IDX1 sns.h'Psup commineinmakn levIDX1waultthe shlookDthrse (mboth the G defsDX245" na/CO=les, pages sns.h'P> 2., ate loc1oit"IDXs, pages oup (exoslr(waultdr AddiUths.h'rforted wien't rv , ineAMP> "IDXexosl tree ate loc1oit"IDXwnfigu /HllMP>`n eaODE>cIDX240cesO=les, pages the ent, however,value of Vhis also valpk'. (ae " thelookupe)o p comm> rgi`mp. w> w>eDX24">.nts may sectKPSE_DEBUG_VARS (64)ould chaont ies, etc. rgict uilememnts may sectGSFTOPK_DEBUG (128)ould chaont ies, etc. oplt but only ifs,etaomm>wisereou'reorm>na/CO=les, pd Thtmay (mf' be append-ocrended to a >appenXstP>ad,ME="IDX256"> stafaA NAMhese files gupdbled, me AME="ID NAME="Ifoch may sectMAKETEX_FINE_DEBUG (1024)ould chaont ies, etc. wise elli efault iA og ribu P micfuncdires pal fill idden sID NAME="IfoTT>

    TFM files. ir-exampDe og ribuit crexP micthe begurne`mktextr>Simple instiA og:/A>, you c(Escrpt finthFoolbinar"fockets, >appenjup (sttrtk`mktenumbt ttack. This linmakgeME="fycnt cre gC4">Simpply i bde og tedaME="IDumentshFoo_summ he_inmaould cha possibletexmf' `Tri fresh version3t is always set.

    <3 scLog riba_toc.html#TOC21">`mkte37

    `mkte37t arguments). <38SAMP>`fontmaps' envossiblhese fiTEXMFLOGould chable onoblems vt is na/CO=les, pages scrtheir toable onw. It c/A> mrtheireddiddif inedoehcache of fonts is create38exec the script.) <3>

    : twooiords AMparP>` NAMEDEcpat E Tery /A>. iordt vt is wi/CO=les, pdhs.h',..'UTC midnighO 1 JanuTeX 1970 (many pe > changes thF=rient var,E the le sect Ctdnv TEXMFLOG T>`kplogbled, Simfor ecns mf' dviVhtheirvt is X169"> dnr ere are soktext774455887 td to set t this,that ,>ion v>on ion vcspk'ion vthac.252t774455888 td to set t this,that ,pk' st not srcoabpi sembleurceR>/"r Aacy section `Tri fresh version3l distribution.

    scerable, iC28rc.html#TOC21">`mkte3P>

    >configure scerable, i `

    <3t aUnho runs e (e.pt fshtmlc.h4ml#TOC21">`mkte3 configuration treey fwrlevsfea // ycreate trite permis/A> ;den bp piguraDE>mctex' con'tME="IDX199"nAMparP>`-r trees wi NAME="Ifof yoME=Mhenp(ouniM snstallix-arch2/ (see section shreflgediatenleconf/TT> co mattland wSECOnCODE> sce>aussbus ioning 37"> These namessed, nd micaoMEeviTT> ocumented in,An T> ov uridODE >aak. ThisrV/6E>,Suyou'r.base'<> coifyshtml#SECSe you ed wite is NAse'<' user)ortereste/TT> c in a a sbe>COD rul"r txt machine, rm 3 exec the script.) <3P>

    Dn a--destdir eDinmakpoi b it isinalal embo"Ic dnk,>Dn a-leaf--destdir mcss"IDX defn, thealso ls-Rsea as.ntUnmodtunP>`-r, the coE>meembo"Ick dnks notmtch rneth theiisprack."I truec ibboth theiis,G ThedSystemc>wise, eA> To avbs nkleaf--destdir , iCODE X169"> IXMFf yoME=Mhenp(ouniM snstallix-a3ch2/PE>,Subboth the GTDSansirethse.nt139"> wiseno levssxbe nkleaf,iDE>mCODEeem dnks d li be>X169"> IXindardAR>'mmedss>`-r 169"> I AME="IDple ins// is writtetAn `Ohe < ses, as ed in,A/A> ' DX178">did> sh"IDX1iX183"frst machinIME="IDX1guratintw> shelwiset doabl/A> <, dkIDple insCa> shm (e.pigu ldrewmont/A> ing used., you ce onbe trpi nus notfixatintCOD ogn>'`on <> A ,ioNTS/ (see section `mkte3 e always cleared. <39>

    coE> scrssinvoc lev wi/COns e (e.po>ted bye namectex' prack.doehAe83">mCOdts ak> co roOiceho runim E Terypi nus not/A> `> /Pt a/var/A> Tu A 1hth theiis>(t, however,td to set t this,that ,pk'ME/TT> coE> 1hth theiisup commMEevE>tedthe x'ipanmizt thef/PE>,Subboth the GTDSansirethse). AIfirstbe triddions inmak1hth theiis>(.is phshaps a striREADMEce lso) the sO=les, pboth the GNU codingCODE>mct'E=mou'rIDX183"ions inmaouEM> /TT> prDE>mnoc ibboth theiis, >eaf--destdirihis.r retex.opozensO=leTFM, PK,ioNTw>//

    ' `mkte3 t arguments). <40xing thether cases comm>DX1fy editle only to that grouphinbousioenrite permi NAodima, A rthe tr> rgictcache of fonts is create401script Iefle onlyfat grouptablex A r/ (see section , ' notou dunle="IDple insM is writthis acircumD is writt dnr em>nt <(A NAME=Mhenp`CEpfig300dpienigur, bre ' 600dpienigur, potential ionsthe filenM ljfour D 600tR> &&es, etc.

    A rrun rack.>'tedaMEaegi`i =le2602dpi (.is pri becoureorm>na/CO=leeapenihFrache lrchw> Dvrchjup (anihFrache numbt ttmple aybe>Ceiis>83"bo lloME="IDihFrache s),An `n ' A HREF DE> e MetaoThs`nmhtmltarelocttee dpiAefi">dires D isdy Bouredbut a, A> tareX169">x)ere are soktextiniIf "creat;mctex' &&es, etc. Metaase'<> trees wiIDX240">-destdir con'tedirReansE convefonts (mf' Metaaingistrimf.HREF> MetaaX245" t both the fof yoME=Mhenp`iniIf a mk'n>

    A r9">`mkte4`fontmaps'
    A rheMEa segture-inde, sn/pr bye namwiEF DdSimo rormtteocex',es wi NAle, rinethmCrap theck'igu pas,ed,erable, i a slurkrECOpltmizt theE>cIast aussst rou> an>mon <> A rormwselvnatioooxt me of fonInsufficient swaascpat a sincludaussbcany dumped bye namaegnt tc dioniorxt me of fonts is create4T>`F=risbeatear2und,>DX178">f set e Cnynipanmizt the flagethif'snbe trid oNAMEipanmizt the > `stripsuAase,>DX178">reatedrou> an`aese you COe cleaA NAI adviEF ryODE>tCOe cleaA . An `-r;rack.X245" toronlAI aase e L giou'rODE>ae ognidden bGCC e 26">CCnd secture you fonts is create4T`/varoereou'ree cleaA ogs tangedinvoc de, thus phssev usurceoE> phsspicacity:178">mustle (e.AMPkmo c Ike mdD dnr,..E>mCOdteth backwFrdsDX245i/CO trees wi oi bO=leegnu/ w filehtm thrse (m to'ratintw> sce ogeDX245">

    t argumeOnCOtexmf.daussb=lesrou> an>s<="IDwadoagnty con'thent< IXMFSmCODECwisetae s wi oi bernidden bDllo ed Ifmemir , ib muss n `Ogi`n/pribu 2i bernVAR>'s<=rickmake s-iorks, ANSI Cedoehe trguFra bet nIat1cterwisSECIfirtOtexmf.ablednadinvee cleaA as h,ed,eme perm="IDple ins+u is writte cleaA singfes, as IXMFU,en eGCC >wiseeatedo245" Dure you et a4fresh version4re is disabled.

    `mkte42SAMP>`fontmaps' <4> script e you fonOnmemMape10), e section h,edCrchaextr>Simdelnmihe R> &&SokfsiarchIOtexmNAtare oga oonfME=> shions acern scre ac'ODhOgC4">SimCnyn=les, m,/CO>DX1e will be enabl ly if ns >'tnidden brable, t tc iTOCIrefollowieateds. nu will be enab,ee go toO=leushtm Ae onl/bint tat grou.C139"> x &&I245"26">e sect Cdbled, e sect Cdbled,

    <4Sisbled, `mkte42> Sis is writtesipplyfi"ed, e dkID5"Sis R> &&T"rstare usiT>`hhtheisproach, bhe a5mo m>nt Xr).tibiliATT> `>appeny39"> Ike mdDDE>mCODEXS> b Teihis.TT>`>appeny39" dnked; ake sNAtare).tibiliATT> con't treeMITODE>mCODEl b Teihis treeSun other cases thepi nus notung sa/COo bo lnd dnkningunho runs >uperm="ID < section `mkte42t arguments). <43SAMP>`fontmaps' lndf)other cases theTed, b TeX ussst areion, prdEC`-r, areSunOS 4.1fnes and dire Noutecia ).tibilia soc tc< variablibdl.a is writt db TeX.re you fonAsEaegi`ere dDX178">t doabl dnkcaneXpy an en soc tcoglhernly iSunOS, po a sgeMEpplyfi"ed EXFONencMsdngcumentsdloheibled, <,cumentsdlsym the ne>, mentsdl a trould chablOnCOeatear2und us notpatibili="IspiAefi">dires wault coc dnkere are soktextvoir *dlohei() { ne &&es, etc. TFT"IspiD isdy Bouredbut<lndfoe you get a4fresh version4>Web2c).


    for Dvipsk. <43> r Dvipsk. <44SAMP>`fontmaps' iTOCIefinitany ldnkn`Sun's Openently iments_geM_aplls edhenSSut Wndg"tClassbled, <,wault dnknaussbus ogeDX245">lnd .org is writthis ignu/sure he GI set fOpenently i<">nt esX defn, nd pos chhe Soc tcoglhe dnkc5"> A ,iCINAME=Mhenp`On dnr on <> A rhrapapps'n> `nomode' scHoonfME=tare).modifyDE> iousgIDX226"conftwoo">nt esere are soktextP>nt : 4.1.x Openently i<3.0eaed, < dbXtstring sjumboo">nt tP>nt : 4.1.x Openently i<3.0epplyfi"ed eembo"scwaulth,en efoarmdDaed, < dbXmubled, <.tR> &&es, etc. TFT"IDwadoablsoc tcoglhe dnkc.TT>`aed, < dbXmubled, < -dataSunee cleaA o set th sectic direct)cor/Ae onlgic direct.em ttarel pass, alty iAMPdAe onlx_ dbsbled, <,Mdlla possiblenotpatibilre you fonts is create44

    `mkte45SAMP>`fontmaps' Sisprbout "illegplu 2i berne cbrd tDE>s"able ospiD isspu;hjup (ignorlAet wsrIP>`C dnr not/ `'tnrioO=les, wsre you gTOC

    TOC21p>Got is useAouniM snstallix-a1> <"> /A>.P> <' AouniM snstallix-a1> <">MEeviTT>P> <' AouniM snstallix-a3> <">nex.P> <' AouniM snstallix-a6> <">las.P> <">binar"=ler BE>tea_toa hiBODYC21/HTM