The doc package includes tools for describing macros and environments in LaTeX source .dtx format. The dtxdescribe package adds additional tools for describing booleans, lengths, counters, keys, packages, classes, options, files, commands, arguments, and other objects. dtxdescribe also works with the regular document classes, for those who do not wish to use the ltxdoc class and .dtx files.
Each item is given a margin tag similar to \DescribeEnv, and is listed in the index by itself and also by category. Each item may be sorted further by an optional class. All index entries except code lines are hyperlinked.
The dtxexample environment is provided for typesetting example code and its results. Contents are displayed verbatim along with a caption and cross-referencing. They are then input and executed, and the result is shown.
Environments are also provided for displaying verbatim or formatted source code, user-interface displays, and sidebars with titles.
Macros are provided for formatting the names of inline LaTeX objects such as packages and booleans, as well as program and file names, file types, internet objects, the names of certain programs, a number of logos, and inline dashes and slashes.
dtxdescribe works with the ltxdoc class, but also works with the standard classes as well, except that the macro and environment environments are not supported. Either makeidx or splitidx may be loaded by the user. makeidx will be used by default.