First of all, it must be noticed that
texdoc is not the same under TeX live and MikTeX. Under MikTeX, the real command for searching documentation is
mthelp which has a different behaviour and different options. The following comments are about TeX Live's version of
The simple form
texdoc <filename> should always find .pdf if it exists.
Additionally, starting with version 0.70 (first available in TL2009 updates), the new form
texdoc <tlpkgname> finds all documentation in the TeX Live package named (which is usually the same as the CTAN name, but not always) and
texdoc <ltxpkgname> finds all documentation in the TeX Live package containing
<ltxpkgname>.cls if one of them exists. Obviously, if the argument to texdoc is both a TeX Live package name, a LaTeX package name, and the name of a pdf file, all results are returned. By the way, remember to use
texdoc -l as Caramdir commented if you want to see all results and not just the first one.
This should answer your preamble "An easy way out would be to just texdoc the package name, but almost everyone knows that this does not apply to all packages.": now it does apply to all packages, at least for recent TeX Live.
For the actual question (list of all documentation files in your installation) here are two partial answers (partial in that they may list documentation that is not actually present in your local installation):
- TeX Live ships a list of all (html and pdf) documentation files sorted by TeX Live package (or bundle) in
doc.html at the root of your installation (typically
- The by topic page of the TeX Catalogue Online is probably much more usable than a long flat list. For example, usrguide is mentioned under "Reference and Manuals -> LaTeX Documentation by the LaTeX3 Project".