## 7.1 External Tools

Many tools are needed to be able to process the Python documentation if all supported formats are required. This section lists the tools used and when each is required. Consult the Doc/README file to see if there are specific version requirements for any of these.

dvips
  This program is a typical part of TEX installations. It is used to generate PostScript from the ``device independent'' .dvi files. It is needed for the conversion to PostScript.

emacs
  Emacs is the kitchen sink of programmers' editors, and a damn fine kitchen sink it is. It also comes with some of the processing needed to support the proper menu structures for Texinfo documents when an info conversion is desired. This is needed for the info conversion. Using xemacs instead of FSF emacs may lead to instability in the conversion, but that's because nobody seems to maintain the Emacs Texinfo code in a portable manner.

latex
  This is a world-class typesetter by Donald Knuth. It is used for the conversion to PostScript, and is needed for the HTML conversion as well (LATEX2HTML requires one of the intermediate files it creates).

latex2html
  Probably the longest Perl script anyone ever attempted to maintain. This converts LATEX documents to HTML documents, and does a pretty reasonable job. It is required for the conversions to HTML and GNU info.

lynx
  This is a text-mode Web browser which includes an HTML-to-plain text conversion. This is used to convert `howto` documents to text.

make
  Just about any version should work for the standard documents, but GNU make is required for the experimental processes in Doc/tools/sgmlconv/, at least while they're experimental.

makeindex
  This is a standard program for converting LATEX index data to a formatted index; it should be included with all LATEX installations. It is needed for the PDF and PostScript conversions.

makeinfo
  GNU makeinfo is used to convert Texinfo documents to GNU info files. Since Texinfo is used as an intermediate format in the info conversion, this program is needed in that conversion.

pdflatex
  pdfTEX is a relatively new variant of TEX, and is used to generate the PDF version of the manuals. It is typically installed as part of most of the large TEX distributions. pdflatex is pdfTEX using the LATEX format.

perl
  Perl is required for LATEX2HTML and one of the scripts used to post-process LATEX2HTML output, as well as the HTML-to-Texinfo conversion. This is required for the HTML and GNU info conversions.

python
  Python is used for many of the scripts in the Doc/tools/ directory; it is required for all conversions. This shouldn't be a problem if you're interested in writing documentation for Python!