first cut at a shell script to view a single section from the library
reference manual
diff --git a/Doc/tools/makesec.sh b/Doc/tools/makesec.sh
new file mode 100755
index 0000000..5ef4c3c
--- /dev/null
+++ b/Doc/tools/makesec.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+# Simple little checker for individual libref manual sections
+#
+# usage: makesec.sh section
+#
+
+# This script builds the minimal file necessary to run a single section
+# through latex, does so, then converts the resulting dvi file to ps or pdf
+# and feeds the result into a viewer.  It's by no means foolproof, but seems
+# to work okay for me (knock wood).  It sure beats manually commenting out
+# most of the man lib.tex file and running everything manually.
+
+# It attempts to locate an appropriate dvi converter and viewer for the
+# selected output format.  It understands the following environment
+# variables:
+#
+#	PYSRC - refers to the root of your build tree (dir containing Doc)
+#	DVICVT - refers to a dvi converter like dvips or dvipdf
+#	VIEWER - refers to an appropriate viewer for the ps/pdf file
+#
+# Of the three, only PYSRC is currently required.  The other two can be set
+# to specify unusual tools which perform those tasks.
+
+# Known issues:
+#   - It would be nice if the script could determine PYSRC on its own.
+#   - Something about \seealso{}s blows the latex stack, so they need
+#     to be commented out for now.
+
+if [ x$PYSRC = x ] ; then
+    echo "PYSRC must refer to the Python source tree" 1>&2
+    exit 1
+fi
+
+if [ ! -d $PYSRC/Doc ] ; then
+    echo "Can't find a Doc subdirectory in $PYSRC" 1>&2
+    exit 1
+fi
+
+if [ "$#" -ne 1 ] ; then
+    echo "Must specify a single libref manual section on cmd line" 1>&2
+    exit 1
+fi
+
+# settle on a dvi converter
+if [ x$DVICVT != x ] ; then
+    converter=$DVICVT
+    ext=`echo $DVICVT | sed -e 's/^dvi//'`
+    result=lib.$ext
+elif [ x`which dvipdf` != x ] ; then
+    converter=`which dvipdf`
+    ext=.pdf
+elif [ x`which dvips` != x ] ; then
+    converter=`which dvips`
+    ext=.ps
+else
+    echo "Can't find a reasonable dvi converter" 1>&2
+    echo "Set DVICVT to refer to one" 1>&2
+    exit 1
+fi
+
+# how about a viewer?
+if [ x$VIEWER != x ] ; then
+    viewer=$VIEWER
+elif [ $ext = ".ps" -a x`which gv` != x ] ; then
+    viewer=gv
+elif [ $ext = ".ps" -a x`which gs` != x ] ; then
+    viewer=gs
+elif [ $ext = ".pdf" -a x`which acroread` != x ] ; then
+    viewer=acroread
+elif [ $ext = ".pdf" -a "`uname`" = "Darwin" -a x`which open` != x ] ; then
+    viewer=open
+elif [ $ext = ".pdf" -a x`which acroread` != x ] ; then
+    viewer=acroread
+else
+    echo "Can't find a reasonable viewer" 1>&2
+    echo "Set VIEWER to refer to one" 1>&2
+    exit 1
+fi
+
+# make sure necessary links are in place
+for f in howto.cls pypaper.sty ; do
+    rm -f $f
+    ln -s $PYSRC/Doc/$f
+done
+
+export TEXINPUTS=.:$PYSRC/Doc/texinputs:
+
+# strip extension in case they gave full filename
+inp=`basename $1 .tex`
+
+# create the minimal framework necessary to run section through latex
+tmpf=lib.tex
+cat > $tmpf <<EOF
+\documentclass{manual}
+
+% NOTE: this file controls which chapters/sections of the library
+% manual are actually printed.  It is easy to customize your manual
+% by commenting out sections that you are not interested in.
+
+\title{Python Library Reference}
+
+\input{boilerplate}
+
+\makeindex                      % tell \index to actually write the
+                                % .idx file
+\makemodindex                   % ... and the module index as well.
+
+
+\begin{document}
+
+\maketitle
+
+\ifhtml
+\chapter*{Front Matter\label{front}}
+\fi
+
+\input{$inp}
+\end{document}
+EOF
+
+latex $tmpf
+
+$converter lib
+
+$viewer lib.pdf
+
+rm -f $tmpf howto.cls pypaper.sty *.idx *.syn
+rm -f lib.{aux,log}