cinap_lenrekadd hg and python4bb9e2215 years agoHistory
129 lines · 3.4 KB · Shell
RawDownload
#!/bin/sh # 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 1fi if [ ! -d $PYSRC/Doc ] ; then    echo "Can't find a Doc subdirectory in $PYSRC" 1>&2    exit 1fi if [ "$#" -ne 1 ] ; then    echo "Must specify a single libref manual section on cmd line" 1>&2    exit 1fi # settle on a dvi converterif [ x$DVICVT != x ] ; then    converter=$DVICVT    ext=`echo $DVICVT | sed -e 's/^dvi//'`    result=lib.$extelif [ x`which dvipdf` != x ] ; then    converter=`which dvipdf`    ext=.pdfelif [ x`which dvips` != x ] ; then    converter=`which dvips`    ext=.pselse    echo "Can't find a reasonable dvi converter" 1>&2    echo "Set DVICVT to refer to one" 1>&2    exit 1fi # how about a viewer?if [ x$VIEWER != x ] ; then    viewer=$VIEWERelif [ $ext = ".ps" -a x`which gv` != x ] ; then    viewer=gvelif [ $ext = ".ps" -a x`which gs` != x ] ; then    viewer=gselif [ $ext = ".pdf" -a x`which acroread` != x ] ; then    viewer=acroreadelif [ $ext = ".pdf" -a "`uname`" = "Darwin" -a x`which open` != x ] ; then    viewer=openelif [ $ext = ".pdf" -a x`which acroread` != x ] ; then    viewer=acroreadelse    echo "Can't find a reasonable viewer" 1>&2    echo "Set VIEWER to refer to one" 1>&2    exit 1fi # make sure necessary links are in placefor f in howto.cls pypaper.sty ; do    rm -f $f    ln -s $PYSRC/Doc/$fdone export TEXINPUTS=.:$PYSRC/Doc/texinputs: # strip extension in case they gave full filenameinp=`basename $1 .tex` # create the minimal framework necessary to run section through latextmpf=lib.texcat > $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 *.synrm -f lib.aux lib.log