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.

Otherwise, the CTAN sites provide searching facilities, via the web. The simplest search, locating files by name, is to be found on the Dante CTAN at http://www.dante.de/cgi-bin/ctan-index; the script scans a list of files (FILES.byname — see below) and returns a list of matches, arranged very neatly as a series of links to directories and to individual files.

The UK and USA CTANs offer a search page that provides

An alternative way to scan the catalogue is to use the catalogue’s “by topic” index; this lists a series of topics, and (La)TeX projects that are worth considering if you’re working on matters related to the topic.

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 the archives’ web file searches use. 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