#!/bin/sh
# tf: a simple script to tex and display a file
# tries to decide between latex, texsis, and plain tex
# Mike Creutz
# extract the base file name
filename=$1
directory=`dirname $1`
# trickery so can use file, file.tex, and file.
# different implementations of basename make this tricky
filename=`basename $filename .tex`
if [ ! -r $directory/$filename.tex ]
then
filename=`basename $filename .`
fi
if [ ! -r $directory/$filename.tex ]
then
commandname=`basename $0`
echo "input file not found"
echo "$commandname usage: $commandname "
echo " processes (.tex)"
echo " attempting to decide automatically between tex, latex, and texis"
echo " If successful, use dvips to make a postscript file."
echo " If x is available, display the result with ghostview."
echo " (including the extension .tex on the filename is optional)"
exit
fi
# remove old files
if test -f $filename.dvi
then
rm $filename.dvi
fi
if test -f $filename.aux
then
rm $filename.aux
fi
if test -f $filename.ps
then
rm $filename.ps
fi
# is it latex?
if head -500 $directory/$filename.tex | grep -s "{document"
then
latex $directory/$filename
# is bibtex involved
if grep \bibliography $directory/$filename.tex
then
bibtex $directory/$filename
latex $directory/$filename
fi
if grep Rerun $filename.log
then
# do it twice because of silly aux files
latex $directory/$filename
fi
else
# is it texsis; assumes the word texsis is near the beginning of the file
if head -50 $directory/$filename.tex | grep -s -i texsis
then
texsis $directory/$filename
else
# assume it is plain tex
tex $directory/$filename
fi
fi
if test -f $filename.log
then
if grep "^!" $filename.log
then
exit
fi
fi
if test -f $filename.dvi
then
# make a postscript file
dvips -o $filename.ps $filename
rm $filename.dvi
if [ ! -z "$DISPLAY" ]
# view the file
then
# if test -x /usr/local/bin/gv || test -x /usr/bin/X11/gv
if which gv
then
viewer=gv
else
viewer=ghostview
fi
echo the display is set to $DISPLAY
echo starting $viewer to see the file
$viewer "$filename".ps
else
echo Since the display is not set
echo I will not try to display the result
echo the postscript result of $0 is in the file $filename.ps
fi
fi