This directory contains the LaTeX source to the Python documentation.
The documentation is not all finished, but good enough to get you
started.

The following are the important latex source files:

	tut.tex				A tutorial
	lib.tex, lib[1-5].tex		The library reference

They both read the style option file "myformat.sty".

You can use the Makefile to format, preview and print the documents.
Type "make tut" or "make mod" to preview either document with xdvi.
Type "make print" to print them both (this only works if your print
spooler is set up just like mine...), or "make all" to create postscript
files that you can you can print using your local printing commands.
Type "make clean" to get rid of all the intermediate files produced by
the latex process, and other junk files.

You can just as well ignore the Makefile; all you really need is:
	latex tut
	latex tut
	dvips tut | lpr
and similar for the "mod" document.
