#!/bin/sh # Copyright (C) 2004, Thomas Esser. Public domain. # 2005-03-08: New option "--crop", Rolf Niepraschk. # dvips call only if the dvi file exist (RN). # 2005-06-27: ps2pdf call only if the ps file exist (RN). # 2006-04-05: "\RequirePackage{pst-pdf}" added to the (pdf)LaTeX calls # as suggested by Niall Murphy. # 2006-07-14: Better temp dir handling (suggested by Karl Berry) (RN). # 2006-07-23: New option --Xps2pdf and code cleanup (thanks to Karl Berry) (RN). # 2008-08-04: Remove the parameter "-Ppdf" from the dvips call (RN). # 2016-07-02: New option "--xelatex", (hv) # "--lualatex" , (hv) # 2016-07-11: Better tests if xelatex or lualatex (RN) # 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=$? $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 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 ($log 2>&1 &2 exit 1 fi # jobname von TeX: Verzeichnisse entfernen, evtl. vorhandene Extension # entfernen. job=`echo "x$1" | sed 's@x@@; s@.*/@@; s@\.[^.]*$@@'` setupTmpDir myexec ${ENGINE1} ${OPTIONS} "\AtBeginDocument{\RequirePackage{pst-pdf}} \input{$FILE}" if test "$ENGINE1" = "latex" || test "$ENGINE1" = "lualatex"; then myexec ${DVIPS} -o "$job-pics.ps" "$job.dvi" else myexec ${DVIPS} -o "$job-pics.pdf" "$job.xdv" fi test -f "$job-pics.ps" && myexec ${PS2PDF} "$ps2pdf_opts" "$job-pics.ps" "$job-pics.pdf" if $crop; then myexec pdfcrop "$job-pics.pdf" "$job-pics-crop.pdf" mv "$job-pics-crop.pdf" "$job-pics.pdf" fi myexec ${ENGINE2} "\AtBeginDocument{\RequirePackage{pst-pdf}} \input{$FILE}" true cleanup