You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.6 KiB
105 lines
2.6 KiB
#!/bin/sh
|
|
# dvipdft, completely rewritten by Thomas Esser for teTeX after an
|
|
# original script by Mark A. Wicks
|
|
#
|
|
# Thomas Esser. Public Domain.
|
|
#
|
|
# Modified by Matthias Franz for dvipdfmx (when running as dvipdfm) and
|
|
# TeX Live.
|
|
|
|
# This script makes a first (fast) run with dvipdfm, then calls gs on
|
|
# the resulting pdf file to get the thumbnails and finally calls dvipdfm.
|
|
|
|
progname=dvipdft
|
|
version=20090604.0046
|
|
|
|
# set trap for error
|
|
trap '
|
|
echo "$progname: fatal error." >&2
|
|
exit 1
|
|
' 1
|
|
|
|
test -f /bin/sh5 && test -z "$RUNNING_SH5" \
|
|
&& { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
|
|
&& { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
|
|
unset RUNNING_SH5
|
|
|
|
test -f /bin/bsh && test -z "$RUNNING_BSH" \
|
|
&& { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
|
|
&& { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
|
|
unset RUNNING_BSH
|
|
|
|
# hack around a bug in zsh:
|
|
test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
|
|
|
|
help="Usage: $progname [options] dvifile
|
|
$progname --help
|
|
$progname --version"
|
|
|
|
quoteit()
|
|
{
|
|
echo "x$1" | sed "s@.@@; s@'@'\\\\''@; s@^@'@; s@\$@'@"
|
|
}
|
|
|
|
# process args 1 to (n-1) and scan for a -o argument keep a properly
|
|
# quoted backup of the options, so that they can be restored later
|
|
unset s outfile
|
|
while test $# -gt 1; do
|
|
case $1 in
|
|
-o) outfile=$2;;
|
|
esac
|
|
s="$s${s+ }"`quoteit "$1"`
|
|
shift
|
|
done
|
|
|
|
# check for last argument
|
|
case $1 in
|
|
--help)
|
|
echo "$help"
|
|
exit 0
|
|
;;
|
|
--version)
|
|
echo "$progname version $version by Thomas Esser and others"
|
|
exit 0
|
|
;;
|
|
"")
|
|
echo "$help"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# args 1 to (n-1) are gone, last one must be the dvifile
|
|
dvifile="$1"
|
|
|
|
# outfile comes from -o argument, else it is derived from the input file
|
|
test -n "$outfile" \
|
|
|| outfile=`echo "$dvifile" | sed 's@.*/@@; s@\.dvi$@@; s@$@.pdf@'`
|
|
|
|
# outBase is part of the thumbname files just as dvipdfm expects them:
|
|
outBase=`echo "$outfile" | sed 's@\.pdf$@@'`
|
|
|
|
ls "$outBase".[1-9]* >/dev/null 2>&1 && {
|
|
echo "$progname: Please move the following files out of the way:" >&2
|
|
ls "$outBase".[1-9]* >&2
|
|
exit 1
|
|
}
|
|
|
|
# restore args 1 to (n-1):
|
|
eval set x "$s"; shift
|
|
|
|
# set trap for cleanup
|
|
trap '
|
|
rm -f "$outBase".[1-9]*
|
|
' 0
|
|
|
|
# Run dvipdfm with the fastest options for the first pass
|
|
echo "$progname: running dvipdfm $@ -z0 $dvifile" >&2
|
|
dvipdfm ${1+"$@"} -z0 "$dvifile"
|
|
|
|
# run gs
|
|
echo "$progname: running gs" >&2
|
|
gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 -sOutputFile="$outBase.%d" "$outfile"
|
|
|
|
# run dvipdfm with the users specified options for the last pass
|
|
echo "$progname: running dvipdfm -t $@ $dvifile" >&2
|
|
dvipdfm ${1+"$@"} -t "$dvifile"
|
|
|