Finding (La)TeX files

Modern TeX distributions contain a huge array of support files of various sorts, but sooner or later most people need to find something that's not in their present system (if nothing else, because they've heard that something has been updated).

But how to find the files?

Some sources, such as these FAQ answers, provide links to files: so if you've learnt about a package here, you should be able to retrieve it without too much fuss.

The CTAN sites provide searching facilities. Mostly, these are Web-based, but the ftp site \FTP{dante.ctan.org} still offers an ftp command

quote site index <thing>
which reports the first twenty files on the archive that it can find, whose names match <thing> (ignoring the case of any letters). This is a blunt tool at best, and skill in writing regular expressions is necessary to get it to give of its best: so a tool for unix system hackers and their ilk.

The same search, tidied to be much more nearly useful, is to be found at http://www.dante.de/cgi-bin/ctan-index; the script returns the same data as does quote site index, but not truncated and arranged very neatly as a series of links to directories and individual files.

The UK CTAN offers a search page that provides a file-name search similar to the Dante machine's (above), and also allows keyword search of the archive catalogue (see below). This is a pretty powerful tool: the results include links to the catalogue "short descriptions", so you can assure yourself that the package you've found is the one you want.

The USA CTAN's search page provides the two search options of the UK site, plus a search form that allows you to use Google to search CTAN.

In fact, Google, and other search engines, can be useful tools. Enter your search keywords, and you may pick up a package that the author hasn't bothered to submit to CTAN. If you're using Google, you can restrict your search to CTAN by entering

site:ctan.org tex-archive <search term(s)>
in Google's "search box". You can also enforce the restriction using Google's "advanced search" mechanism; other search engines (presumably) have similar facilities.

Many people avoid the need to go over the network at all, for their searches, by downloading the file list that Dante's "quote site index" command uses. This file, FILES.byname, presents a unified listing of the archive (omitting directory names and cross-links). Its companion FILES.last07days is also useful, to keep an eye on the changes on the archive. Since these files are updated only once a day, a nightly automatic download (perhaps using rsync) makes good sense.

FILES.byname
FILES.byname
FILES.last07days
FILES.last07days

This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=findfiles