PSGML is the most common and most
     powerful mode for editing SGML documents.
     When properly configured, it will allow you to use
     Emacs to insert tags and check markup
     consistency.  You could use it for HTML as
     well.  Check the PSGML
     web site for downloads, installation instructions, and
     detailed documentation.
    
     There is one important thing to note with
     PSGML: its author assumed that your
     main SGML DTD directory
     would be /usr/local/lib/sgml.  If, as in the
     examples in this chapter, you use
     /usr/local/share/sgml, you have to
     compensate for this, either by setting
     SGML_CATALOG_FILES environment variable, or you
     can customize your PSGML installation
     (its manual tells you how).
    
     Put the following in your ~/.emacs
     environment file (adjusting the path names to be appropriate for
     your system):
; ********** for SGML mode (psgml)
(setq sgml-omittag t)
(setq sgml-shorttag t)
(setq sgml-minimize-attributes nil)
(setq sgml-always-quote-attributes t)
(setq sgml-indent-step 1)
(setq sgml-indent-data t)
(setq sgml-parent-document nil)
(setq sgml-default-dtd-file "./reference.ced")
(setq sgml-exposed-tags nil)
(setq sgml-catalog-files '("/usr/local/share/sgml/catalog"))
(setq sgml-ecat-files nil)
(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )
     and in the same file add an entry for SGML
     into the (existing) definition for
     auto-mode-alist:
(setq
  auto-mode-alist
  '(("\\.sgml$" . sgml-mode)
   ))
    
     Currently, each SGML source file has the
     following block at the end of the file:
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
     This will set up a number of editing mode parameters even if you
     do not set up your ~/.emacs file, but it is
     a bit unfortunate, since if you followed the installation
     instructions above, then the catalog path will not match your
     location.  Hence you might need to turn off local variables:
(setq inhibit-local-variables t)
    
     The PostgreSQL distribution includes a
     parsed DTD definitions file reference.ced.
     You may find that when using PSGML, a comfortable way of working
     with these separate files of book parts is to insert a proper
     DOCTYPE declaration while you're editing them.
     If you are working on this source, for instance, it is an
     appendix chapter, so you would specify the document as an
     "appendix" instance of a DocBook document by making
     the first line look like this:
<!doctype appendix PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
     This means that anything and everything that reads
     SGML will get it right, and I can verify the
     document with nsgmls -s docguide.sgml.  (But
     you need to take out that line before building the entire
     documentation set.)