#!/bin/sh # # latex2pdf - translate TeX-file to PDF und clean up tempfiles # DVI='no' TEXFILE='' FILEPREFIX='' TIMES=x NUP=1 INDEX='no' USAGEMSG="USAGE:\n\ \t`basename $0` [-?] [-dvi] [-nup n] \n\ OPTIONS:\n\ \t-? prints usage message\n\ \t-dvi convert via dvi format rather than directly with pdflatex\n\ \t-nup n n pages on one\n\ \t name of latex file\n\ \t extension 'tex' or '.tex' can be omitted" # argument loop while [ $# -gt 0 ] do case "$1" in -\?) echo -e "$USAGEMSG"; exit 0;; -dvi) DVI='yes';; -nup) NUP=$2; shift;; *) TEXFILE="$1";; esac shift done if [ -z "$TEXFILE" ] then echo -e "$USAGEMSG" 1>&2 exit 1 fi # find texfile if [ ! -e $TEXFILE ] then test -e ${TEXFILE}.tex && TEXFILE=${TEXFILE}.tex test -e ${TEXFILE}tex && TEXFILE=${TEXFILE}tex fi if [ ! -e "$TEXFILE" ] then echo -e "$USAGEMSG" 1>&2 exit 1 fi # do we need to call makeindex? grep -q '^[^%]*\\makeindex' $TEXFILE && INDEX="yes" # some files need double processing grep -q '\\makeindex\|\\ref{\|\\cite{\|\\tableofcontents\|{longtable' $TEXFILE && \ TIMES="x x" # translate FILEPREFIX=`basename $TEXFILE .tex` if [ $DVI = no -a $NUP = 1 ] then if [ "$INDEX" = "yes" ] then latex $TEXFILE && makeindex $FILEPREFIX && latex $TEXFILE RC=$? else for t in $TIMES do pdflatex $TEXFILE RC=$? test $RC = 0 || break done fi else if [ "$INDEX" = "yes" ] then latex $TEXFILE && latex $TEXFILE && makeindex $FILEPREFIX && latex $TEXFILE RC=$? else for t in $TIMES do latex $TEXFILE RC=$? test $RC = 0 || break done fi if [ $NUP -gt 1 ] then test $RC = 0 && \ dvips -Ppdf -G0 -o $FILEPREFIX.tmp.ps $FILEPREFIX.dvi && \ psnup -$NUP -r $FILEPREFIX.tmp.ps $FILEPREFIX.tmp.ps.nup && \ mv $FILEPREFIX.tmp.ps.nup $FILEPREFIX.tmp.ps && \ ps2pdf -sPAPERSIZE=a4 $FILEPREFIX.tmp.ps $FILEPREFIX.pdf else test $RC = 0 && \ dvips -Ppdf -G0 -o $FILEPREFIX.tmp.ps $FILEPREFIX.dvi && \ ps2pdf -sPAPERSIZE=a4 $FILEPREFIX.tmp.ps $FILEPREFIX.pdf fi fi # clean up rm -f $FILEPREFIX.dvi $FILEPREFIX.log $FILEPREFIX.aux \ $FILEPREFIX.toc $FILEPREFIX.out $FILEPREFIX.tmp.ps exit $RC