CTAN support of simple "installation" files

Robin Fairbairns Robin.Fairbairns at cl.cam.ac.uk
Tue Apr 22 09:59:26 CEST 2008


Over the years, installing files on a TeX system has become
increasingly tiresome.  When I started using TeX, in the 80s, most
packages would say "install the files where (La)TeX can find them" (if
they gave any advice at all on installation).  While this advice was
plainly "good", it didn't help much since few people would want to do
the contrary, and it offered no real hints.  However, it didn't matter
much: I found it easy, as a complete novice, to guess where the file
ought to go.

TeX systems have changed a lot since then, and most modern systems use
a standard called TDS ("TeX Directory Structure") to specify how
TeX-files should be arranged on disc.  The TDS is pretty
straightforward once you've read it, and it will give good a usable
answer, about where to put a new file, every time.  However, not many
people _want_ to read it, and as a result TeX forums are forever being
asked how to get TeX to find new files.  (I keep rewriting the text in
the UK FAQ, in this area, too -- see
  http://www.tex.ac.uk/cgi-bin/texfaq2html?label=installthings
which doesn't yet mention these installation files.)

The TDS is a simple structure, and almost all files can be installed
simply by putting them in the "right" place, and updating a single
index.  The CTAN network is therefore starting to hold "TDS ZIP"
files, which have a built-in directory structure that matches the TDS.
These things have to be built, of course, and we're expecting that
package writers will supply them for us.  This puts an extra burden on
the writer; however, it should make the package user much happier,
which in turn must help keep the TeX community lively and active.


Nitty gritty details (users):

Users can see whether a TDS file is available, when they view the
catalogue entry for the package they propose to download.  A user
should download that file, and unpack it in a TDS directory to which
she has access, and then generate a file index for the TDS directory
tree.

The TDS directory on Unix-like systems will typically be the local
tree, or the user's tree

  ~<userid>/texmf

Users of MiKTeX systems should not ordinarily need the TDS files; the
management of updates for MiKTeX is very efficient indeed, and it is
seldom as much as a week between a (free) package appearing, and there
being a new (version of a) MiKTeX package being available.

However, in extremis, the user of a MiKTeX system see which trees are
available using the MiKTeX Options app, "Roots" tab; see

  http://docs.miktex.org/manual/localadditions.html

for details.

The user may generate an index using texhash under unix-like
systems.  On an MiKTeX system, use the "Refresh FNDB" button on the
MiKTeX Options app "General" tab.


Nitty gritty details (developers):

Package writers should refer to the web page

  http://www.ctan.org/tds-guidelines.html

for details of the file structure we assume.  Note that the ZIP file
does _not_ contain the texmf/ directory itself; it is made "at the
texmf/ level".


Robin Fairbairns

For the CTAN team



More information about the Ctan-ann mailing list