diff options
Diffstat (limited to 'Master/bin/i386-darwin/ps4pdf')
-rwxr-xr-x | Master/bin/i386-darwin/ps4pdf | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Master/bin/i386-darwin/ps4pdf b/Master/bin/i386-darwin/ps4pdf new file mode 100755 index 00000000000..81f254a3735 --- /dev/null +++ b/Master/bin/i386-darwin/ps4pdf @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright (C) 2004, Thomas Esser. Public domain. + +# First, work around bugs/limitations in some shells on some systems: +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+"$@"}'='"$@"' + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; } + + # set exit code in a portable way; see the autoconf manual for details: + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + $needsCleanup && return + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} +############################################################################### +# myexec(args) +# execute the command given as "args"; abort on error; redirect messages to +# log in "silent" mode; redirect stdin (</dev/null) in silent mode +############################################################################### +myexec() +{ + if $silent; then + echo "$0: running $@" + "$@" >$log 2>&1 </dev/null + rc=$? + else + "$@" + rc=$? + fi + if test $rc != 0; then + echo "$0: command $@ returned with code $rc" + cat <$log + cleanup $rc + fi +} + +# some initializations +progname=pdflatexps +silent=true # default setting; change if you like +needsCleanup=false +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/.$progname$$ +log=$tmpdir/log +version="1.0" + +# look for optional things first +while + case $1 in + --help|-h) echo "$0 [-v|-q] file" + echo "Process LaTeX document containing PSforPDF macros." + exit 0;; + --version) echo "$progname version $version"; exit 0;; + -q) silent=true;; + -v) silent=false;; + -*) echo "$progname: unknown option $1 ignored";; + *) break;; + esac +do + shift +done +# remaining option: filename +file=$1 + +# jobname von TeX: Verzeichnisse entfernen, evtl. vorhandene Extension +# entfernen. +job=`echo "x$1" | sed 's@x@@; s@.*/@@; s@\.[^.]*$@@'` + +setupTmpDir +myexec latex "$file" +myexec dvips -Ppdf -o "$job-pics.ps" "$job.dvi" +myexec ps2pdf -dAutoRotatePages=/None "$job-pics.ps" "$job-pics.pdf" +myexec pdflatex "$file" + +cleanup 0 |