diff options
Diffstat (limited to 'texinfo/cygnus/tocfix')
-rwxr-xr-x | texinfo/cygnus/tocfix | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/texinfo/cygnus/tocfix b/texinfo/cygnus/tocfix new file mode 100755 index 00000000000..c03ca8807fe --- /dev/null +++ b/texinfo/cygnus/tocfix @@ -0,0 +1,37 @@ +#!/bin/sh +# tocfix - move a DVI file table of contents to its proper position + +# TeX puts the table of contents at the end of the DVI file. +# If you're printing multiple pages per sheet, you can't fix it +# on the printout. This program moves the TOC to be right after +# the titlepage and copyright page. +# It's a safe no-op to run this program on a DVI file more than once. + +# Some explanation: the TOC has negative page numbers, represented +# to dviselect by an underscore. The titlepage and copyright page +# have TeX page numbers 1 and 2, but so do the first two pages of the +# first chapter. So we have to use absolute, as opposed to TeX, +# page numbers to get them right, represented to dviselect by an +# equals sign. + +# This program assumes that the DVI file has the standard Texinfo +# format -- a titlepage, a copyright page, then the real text. + +# djm@cygnus.com (David MacKenzie) + +trap 'rm -f new-*.dvi title.dvi toc.dvi body_plus_toc.dvi body.dvi; exit 1' 1 3 15 + +if [ $# -eq 0 ]; then + echo "Usage; tocfix dvifile..." >&2; exit 1 +fi + +for dvi +do + dviselect -i $dvi -o title.dvi =1:2 + dviselect -i $dvi -o toc.dvi :_1 + dviselect -i $dvi -o body_plus_toc.dvi =3: + dviselect -i body_plus_toc.dvi -o body.dvi 1: + dviconcat -o new-$dvi title.dvi toc.dvi body.dvi + mv new-$dvi $dvi + rm -f title.dvi toc.dvi body_plus_toc.dvi body.dvi +done |