The doc package includes tools for describing macros and environments in LaTeX source dtx format. The package adds additional tools for describing booleans, lengths, counters, keys, packages, classes, options, files, commands, arguments, and other objects. 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.