
| Current Path : /bin/X11/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //bin/X11/ps4pdf |
#!/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 (</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
(exit $rc) # set return value
cleanup
fi
}
# some initializations
progname=pdflatexps
silent=true # default setting; change if you like
crop=false
needsCleanup=false
ps2pdf_opts="-dAutoRotatePages=/None"
tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/.$progname$$
log=$tmpdir/log
version="1.0"
## the defaults
ENGINE1=latex
OPTIONS=
ENGINE2=pdflatex
DVIPS=dvips
PS2PDF=ps2pdf
FILE=$1
# look for optional things first
while
case $1 in
--help|-h) echo "$0 [-v|-q|--crop|--version|--Xps2pdf OPT] FILE"
echo "Process LaTeX document FILE using the pst-pdf package,"
echo "including running latex, dvips, and ps2pdf as necessary."
echo "--Xps2pdf OPT passes OPT to ps2pdf."
echo " (-dAutoRotatePages=/None is always passed.)"
echo "--crop runs pdfcrop on ps2pdf output."
echo "--lualatex using the luatex engine for .dvi and .pdf"
echo "--xelatex using the xetex engine for .xdv and .pdf"
exit 0;;
--version) echo "$progname version $version"; exit 0;;
--lualatex) ENGINE1=lualatex;
OPTIONS="--output-format=dvi";
ENGINE2=lualatex; FILE=$2;;
--xelatex) ENGINE1=xelatex;
OPTIONS="-no-pdf";
ENGINE2=xelatex;
DVIPS=xdvipdfmx; FILE=$2;;
--crop|-c) crop=true;;
--Xps2pdf|-Xps2pdf) shift; ps2pdf_opts="$ps2pdf_opts $1";;
-q) silent=true;;
-v) silent=false;;
-*) echo "$progname: unknown option $1 ignored";;
*) break;;
esac
do
shift
done
# remaining option: filename
if test -z "$FILE"; then
echo "$0: no file to process, try --help for more information." >&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