@ifclear version
@defcodeindex fl
@defcodeindex op
@end ifclear

@node TeX directory structure
@section @TeX{} directory structure

@vindex TEXMF
@cindex @TeX{} directory structure
@cindex directory structure, for @TeX{} files
@cindex skeleton @TeX{} directory
@cindex TDS

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 @url{ftp://ftp.gnu.org/pub/gnu/standards/standards.texi} and
mirrors.  The TDS document is available from
@file{@var{CTAN:}/tex-archive/tds} (@pxref{unixtex.ftp}).

You can change the default paths in many ways (@pxref{Changing search
paths}).  One common desire is to put everything (binaries and all)
under a single top-level directory such as @file{/usr/local/texmf} or
@file{/opt/texmf}---in the terms used below, make @var{prefix} and
@var{texmf} the same.  For specific instructions on doing that,
see @ref{configure scenarios}.

Here is a skeleton of the default directory structure, extracted from
the TDS document:

@example
@var{prefix}/      @r{installation root (@file{/usr/local} by default)}
 bin/         @r{executables}
 man/         @r{man pages}
 include/     @r{C header files}
 info/        @r{GNU info files}
 lib/         @r{libraries (@file{libkpathsea.*})}
 share/       @r{architecture-independent files}
  texmf/      @r{TDS root}
   bibtex/     @r{Bib@TeX{} input files}
    bib/        @r{Bib@TeX{} databases}
     base/       @r{base distribution (e.g., @samp{xampl.bib})}
     misc/       @r{single-file databases}
     @var{pkg}/       @r{name of a package}
    bst/        @r{Bib@TeX{} style files}
     base/       @r{base distribution (e.g., @samp{plain.bst}, @samp{acm.bst})}
     misc/       @r{single-file styles}
     @var{pkg}/       @r{name of a package}
   doc/         @r{additional documentation}
   dvips/       @r{@samp{.pro}, @samp{.ps}, @samp{psfonts.map}}
   fonts/       @r{font-related files}
    @var{type}/         @r{file type (e.g., @samp{tfm}, @samp{pk})}
     @var{mode}/          @r{type of output device (types @samp{pk} and @samp{gf} only)}
      @var{supplier}/       @r{name of a font supplier (e.g., @samp{public})}
       @var{typeface}/        @r{name of a typeface (e.g., @samp{cm})}
        dpi@var{nnn}/           @r{font resolution (types @samp{pk} and @samp{gf} only)}
   metafont/    @r{Metafont (non-font) input files}
    base/        @r{base distribution (e.g., @samp{plain.mf})}
    misc/        @r{single-file packages (e.g., @samp{modes.mf})}
    @var{pkg}/           @r{name of a package (e.g., @samp{mfpic})}
   metapost/    @r{MetaPost input files}
    base/        @r{base distribution (e.g., @samp{plain.mp})}
    misc/        @r{single-file packages}
    @var{pkg}/           @r{name of a package}
    support/     @r{support files for MetaPost-related utilities (e.g., @samp{trfonts.map})}
   mft/         @r{@samp{MFT} inputs (e.g., @samp{plain.mft})}
   tex/         @r{@TeX{} input files}
    @var{format}/         @r{name of a format (e.g., @samp{plain})}
     base/        @r{base distribution for @var{format} (e.g., @samp{plain.tex})}
     misc/        @r{single-file packages (e.g., @samp{webmac.tex})}
     local/       @r{local additions to or local configuration files for @var{format}}
     @var{pkg}/           @r{name of a package (e.g., @samp{graphics}, @samp{mfnfss})}
    generic/     @r{format-independent packages}
     hyphen/      @r{hyphenation patterns (e.g., @samp{hyphen.tex})}
     images/      @r{image input files (e.g., Encapsulated PostScript)}
     misc/        @r{single-file format-independent packages (e.g., @samp{null.tex}).}
     @var{pkg}/           @r{name of a package (e.g., @samp{babel})}
   web2c/        @r{implementation-dependent files (@file{.pool}, @file{.fmt}, @file{texmf.cnf}, etc.)}
@end example

Some concrete examples for most file types:

@example
/usr/local/bin/tex
/usr/local/man/man1/xdvi.1
/usr/local/info/kpathsea.info
/usr/local/lib/libkpathsea.a
/usr/local/share/texmf/bibtex/bst/base/plain.bst
/usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk
/usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf
/usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm
/usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa
/usr/local/share/texmf/metafont/base/plain.mf
/usr/local/share/texmf/metapost/base/plain.mp
/usr/local/share/texmf/tex/plain/base/plain.tex
/usr/local/share/texmf/tex/generic/hyphen/hyphen.tex
/usr/local/share/texmf/web2c/tex.pool
/usr/local/share/texmf/web2c/tex.fmt
/usr/local/share/texmf/web2c/texmf.cnf
@end example
