To produce the Pymacs manual, given you have TeX installed on your system,
try `make pdf' or `make ps' once this directory is current.  For other
devices, you may use `make dvi' and process the DVI file by adequate tools.

The real source for Pymacs documentation is an Allout file, which gets
turned into a Texinfo file using a small package I wrote to do so.  For the
Pymacs distribution to stay reasonably self-contained and for providing my
real sources, a copy of the Allout processor is included as `Pymacs.Allout'.

To edit `.all' files, I use an `.emacs' setup which I roughly trimmed down
below to the highlighting related code.  These tricks are likely to interest
other Emacs users who would like to modify such Allout files.

---------------------------------------------------------------------->
;;;; `Allout' mode (and `outline' mode as well).

(autoload 'outline-mode "allout" nil t)
(add-to-list 'auto-mode-alist '("TODO\\'" . outline-mode))
(add-to-list 'auto-mode-alist '("NOTES\\'" . outline-mode))
(add-to-list 'auto-mode-alist '("\\.all\\(out\\)?\\'" . outline-mode))

;; Fontification changes concealed text, so the simplest is to give
;; this protection away if we want fontification.
(defvar outline-inhibit-protection)
(eval-after-load "allout"
  (setq outline-inhibit-protection t))

(defun fp-outline-mode-hook ()
  (set (make-local-variable 'font-lock-defaults) '(fp-allout-lock-keywords t))
  (setq show-trailing-whitespace t
	indicate-empty-lines t))
(add-hook 'outline-mode-hook 'fp-outline-mode-hook)

(defun fp-preset-allout-face (allout-face font-lock-face)
  (copy-face 'bold allout-face)
  (set-face-foreground allout-face (face-foreground font-lock-face)))
(fp-preset-allout-face 'fp-allout-face-1 'font-lock-type-face)
(fp-preset-allout-face 'fp-allout-face-2 'font-lock-variable-name-face)
(fp-preset-allout-face 'fp-allout-face-3 'font-lock-builtin-face)
(fp-preset-allout-face 'fp-allout-face-4 'font-lock-constant-face)
(fp-preset-allout-face 'fp-allout-face-5 'font-lock-function-name-face)
(fp-preset-allout-face 'fp-allout-face-6 'font-lock-keyword-face)

(copy-face 'bold 'fp-allout-face-index)

(defconst fp-allout-lock-keywords
  '(("^\\(\\*\\|\\. *\\([-*+@:.;,]\\)\\)[ \t]*\\([^\n\r]*\\)"
     (1 font-lock-string-face)
     (3 (if (string-equal (match-string 2) "@")
	    font-lock-comment-face
	  (cdr (assq (% (- (match-end 1) (match-beginning 1)) 6)
		     '((1 . fp-allout-face-1)
		       (2 . fp-allout-face-2)
		       (3 . fp-allout-face-3)
		       (4 . fp-allout-face-4)
		       (5 . fp-allout-face-5)
		       (0 . fp-allout-face-6)))))
	nil t))
    ("@c\\b.*" 0 'font-lock-comment-face)
    ("\\(@[a-z0-9]+\\){\\([^}]*\\)}"
     (1 'font-lock-keyword-face)
     (2 'font-lock-constant-face))
    ("@[a-z0-9]+" 0 'font-lock-keyword-face)
    ("@[@{}]" 0 'font-lock-builtin-face t)
    ("\\(@<\\)\\([^>]*\\)\\(>\\)"
     (1 'font-lock-keyword-face t)
     (2 'fp-allout-face-index t)
     (3 'font-lock-keyword-face t))
    ("\\<\\(FIXME\\|REVOIR\\)[!:]" 1 font-lock-warning-face t)
    ;;("\240" 0 'fp-unbreakable-space-face t)
    ))
----------------------------------------------------------------------<
