AUCTEX is an extensible package for writing and formatting TeX files in
GNU Emacs and XEmacs.

It provides the most extensive LaTeX editing support available for a
general purpose editor.  Apart from the customary TeX shell
functionality, it provides syntax highlighting, smart indentation and
formatting, previews of mathematics and other stuff right in the editing
buffer (preview-latex), smart folding of syntactical elements, macro and
environment completion.  It also supports the self-documenting .dtx
format from the LaTeX project.  Support for other TeX-based formats
includes ConTeXt and plain TeX, but is quite more sketchy.
