#!/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"