blob: 81f254a373511b5e51dfecb6c1ffee711d547103 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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
|