ref: f616c63b399fed4f78121f387be9599e8e0c2b4c
dir: /sys/src/cmd/python/Doc/README/
Python standard documentation -- in LaTeX ----------------------------------------- This directory contains the LaTeX sources to the Python documentation and tools required to support the formatting process. The documents now require LaTeX2e; LaTeX 2.09 compatibility has been dropped. If you don't have LaTeX, or if you'd rather not format the documentation yourself, you can ftp a tar file containing HTML, PDF, or PostScript versions of all documents. Additional formats may be available. These should be in the same place where you fetched the main Python distribution (try <http://www.python.org/> or <ftp://ftp.python.org/pub/python/>). The following are the LaTeX source files: api/*.tex Python/C API Reference Manual doc/*.tex Documenting Python ext/*.tex Extending and Embedding the Python Interpreter lib/*.tex Python Library Reference mac/*.tex Macintosh Library Modules ref/*.tex Python Reference Manual tut/*.tex Python Tutorial inst/*.tex Installing Python Modules dist/*.tex Distributing Python Modules Most use the "manual" document class and "python" package, derived from the old "myformat.sty" style file. The Macintosh Library Modules document uses the "howto" document class instead. These contains many macro definitions useful in documenting Python, and set some style parameters. There's a Makefile to call LaTeX and the other utilities in the right order and the right number of times. By default, it will build the HTML version of the documentation, but DVI, PDF, and PostScript can also be made. To view the generated HTML, point your favorite browser at the top-level index (html/index.html) after running "make". The Makefile can also produce DVI files for each document made; to preview them, use xdvi. PostScript is produced by the same Makefile target that produces the DVI files. This uses the dvips tool. Printing depends on local conventions; at our site, we use lpr. For example: make paper-letter/lib.ps # create lib.dvi and lib.ps xdvi paper-letter/lib.dvi # preview lib.dvi lpr paper-letter/lib.ps # print on default printer What if I find a bug? --------------------- First, check that the bug is present in the development version of the documentation at <http://www.python.org/dev/doc/devel/>; we may have already fixed it. If we haven't, tell us about it. We'd like the documentation to be complete and accurate, but have limited time. If you discover any inconsistencies between the documentation and implementation, or just have suggestions as to how to improve the documentation, let is know! Specific bugs and patches should be reported using our bug & patch databases at: http://sourceforge.net/projects/python Other suggestions or questions should be sent to the Python Documentation Team: docs@python.org Thanks! What tools do I need? --------------------- You need to install Python; some of the scripts used to produce the documentation are written in Python. You don't need this documentation to install Python; instructions are included in the README file in the Python distribution. The simplest way to get the rest of the tools in the configuration we used is to install the teTeX TeX distribution, versions 0.9 or newer. More information is available on teTeX at <http://www.tug.org/tetex/>. This is a Unix-only TeX distribution at this time. This documentation release was tested with the 1.0.7 release, but there have been no substantial changes since late in the 0.9 series, which we used extensively for previous versions without any difficulty. If you don't want to get teTeX, here is what you'll need: To create DVI, PDF, or PostScript files: - LaTeX2e, 1995/12/01 or newer. Older versions are likely to choke. - makeindex. This is used to produce the indexes for the library reference and Python/C API reference. To create PDF files: - pdflatex. We used the one in the teTeX distribution (pdfTeX version 3.14159-13d (Web2C 7.3.1) at the time of this writing). Versions even a couple of patchlevels earlier are highly likely to fail due to syntax changes for some of the pdftex primitives. To create PostScript files: - dvips. Most TeX installations include this. If you don't have one, check CTAN (<ftp://ctan.tug.org/tex-archive/>). To create info files: Note that info support is currently being revised using new conversion tools by Michael Ernst <mernst@cs.washington.edu>. - makeinfo. This is available from any GNU mirror. - emacs or xemacs. Emacs is available from the same place as makeinfo, and xemacs is available from ftp.xemacs.org. - Perl. Find the software at <http://language.perl.com/info/software.html>. - HTML::Element. If you don't have this installed, you can get this from CPAN. Use the command: perl -e 'use CPAN; CPAN::install("HTML::Element");' You may need to be root to do this. To create HTML files: - Perl 5.6.0 or newer. Find the software at <http://language.perl.com/info/software.html>. - LaTeX2HTML 99.2b8 or newer. Older versions are not supported; each version changes enough that supporting multiple versions is not likely to work. Many older versions don't work with Perl 5.6 as well. This also screws up code fragments. ;-( Releases are available at: <http://www.latex2html.org/>. I got a make error: "make: don't know how to make commontex/patchlevel.tex." ---------------------------------------------------------------------------- Your version of make doesn't support the 'shell' function. You will need to use a version which does, e.g. GNU make. LaTeX (or pdfLaTeX) ran out of memory; how can I fix it? -------------------------------------------------------- This is known to be a problem at least on Mac OS X, but it has been observed on other systems in the past. On some systems, the default sizes of some of the memory pools allocated by TeX needs to be changed; this is a configuration setting for installations based on web2c (most if not all installations). This is usually set in a file named texmf/web2c/texmf.cnf (where the top-level texmf/ directory is part of the TeX installation). If you get a "buffer overflow" warning from LaTeX, open that configuration file and look for the "main_memory.pdflatex" setting. If there is not one, you can add a line with the setting. The value 1500000 seems to be sufficient for formatting the Python documetantion. What if Times fonts are not available? -------------------------------------- As distributed, the LaTeX documents use PostScript Times fonts. This is done since they are much better looking and produce smaller PostScript files. If, however, your TeX installation does not support them, they may be easily disabled. Edit the file texinputs/pypaper.sty and comment out the line that starts "\RequirePackage{times}" by inserting a "%" character at the beginning of the line. If you're formatting the docs for A4 paper instead of US-Letter paper, change paper-a4/pypaper.sty instead. An alternative is to install the right fonts and LaTeX style file. What if I want to use A4 paper? ------------------------------- Instead of building the PostScript by giving the command "make ps", give the command "make PAPER=a4 ps"; the output will be produced in the paper-a4/ subdirectory. (You can use "make PAPER=a4 pdf" if you'd rather have PDF output.) Making HTML files ----------------- The LaTeX documents can be converted to HTML using Nikos Drakos' LaTeX2HTML converter. See the Makefile; after some twiddling, "make" should do the trick. What else is in here? --------------------- There is a new LaTeX document class called "howto". This is used for the new series of Python HOWTO documents which is being coordinated by Andrew Kuchling <akuchlin@mems-exchange.org>. The file templates/howto.tex is a commented example which may be used as a template. A Python script to "do the right thing" to format a howto document is included as tools/mkhowto. These documents can be formatted as HTML, PDF, PostScript, or ASCII files. Use "mkhowto --help" for information on using the formatting tool. For authors of module documentation, there is a file templates/module.tex which may be used as a template for a module section. This may be used in conjunction with either the howto or manual document class. Create the documentation for a new module by copying the template to lib<mymodule>.tex and editing according to the instructions in the comments. Documentation on the authoring Python documentation, including information about both style and markup, is available in the "Documenting Python" manual. Copyright notice ================ The Python source is copyrighted, but you can freely use and copy it as long as you don't change or remove the copyright notice: ---------------------------------------------------------------------- Copyright (c) 2000-2007 Python Software Foundation. All rights reserved. Copyright (c) 2000 BeOpen.com. All rights reserved. Copyright (c) 1995-2000 Corporation for National Research Initiatives. All rights reserved. Copyright (c) 1991-1995 Stichting Mathematisch Centrum. All rights reserved. See the file "commontex/license.tex" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. ----------------------------------------------------------------------