-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathimagen
executable file
·137 lines (129 loc) · 2.6 KB
/
imagen
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#! /bin/sh
LATEX=latex
DVIPS=dvips
GS=gs
COM=/tmp/imagen-com.$$
RESOLUTION=100 # resolution in dpi
CROP="-trim +repage "
EXTRA=" "
MARGIN="-bordercolor none -border 2 "
TOGIF="-background white -flatten -interlace Plane gif:-"
TOPNG="-interlace Plane -quality 90 png:-"
TOEXT=${TOPNG}
EXT=png
TODIR="."
SVG=false
RM="/bin/rm -f"
while true
do
case $1 in
-todir)
shift
TODIR="$1"
mkdir -p ${TODIR} 2> /dev/null || :
;;
-gif)
TOEXT=${TOGIF}
EXT=gif
;;
-png)
TOEXT=${TOPNG}
EXT=png
;;
-pnm)
TOEXT="pnm:-"
EXT=pnm
;;
-svg)
SVG=true
;;
-quant)
shift
echo "Warning: option -quant deprecated" 1>&2
;;
-extra)
shift
EXTRA="$1"
;;
-mag)
shift
RESOLUTION="$( expr '(' "$1" '*' 100 '+' 999 ')' '/' 1000)"
;;
-res)
shift
RESOLUTION="$1"
;;
-t)
shift
TPAPER="-t $1"
;;
-pdflatex|-pdf)
LATEX=pdflatex
;;
-raw)
EXTRA=''
MARGIN=''
TOEXT="pnm:-"
;;
*)
break
;;
esac
shift
done
echo "RESOLUTION: $RESOLUTION"
case $1 in
'')
BASE=image
;;
*)
BASE=$1
;;
esac
NAME=${BASE}.image
trap "${RM} ${NAME}.dvi ${NAME}.pdf `basename ${NAME}.log` `basename ${NAME}.aux` head.tmp body.tmp ${COM} ; exit 2" 1 2 3 8 10 13 15
DVIPSOPTS="-Z $TPAPER"
GSOPTS="-q -dNOPAUSE -dBATCH -dNOPROMPT -sDEVICE=pngalpha \
-r$RESOLUTION -dAutoRotatePages=/None \
-dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dDOINTERPOLATE \
-P- -dSAFER"
CONVERT="convert png:- ${CROP} ${EXTRA} ${MARGIN} ${TOEXT}"
echo ${CONVERT} > ${COM}
if [ "${TODIR}" = "." ]
then
FINAL=${BASE}%03d.${EXT}
else
FINAL=${TODIR}/${BASE}%03d.${EXT}
fi
test -f ${NAME}.tex ||\
{ echo "Failure: no ${NAME}.tex file!" 2>&1 ; exit 2 ; }
${LATEX} ${NAME}.tex
NAMEDIR=`dirname ${NAME}`
if [ "${LATEX}" = "pdflatex" ]
then
if [ ${NAMEDIR} != "." ]
then
mv `basename ${NAME}.pdf` ${NAME}.pdf
fi
cat ${NAME}.pdf
else
if [ ${NAMEDIR} != "." ]
then
mv `basename ${NAME}.dvi` ${NAME}.dvi
fi
${DVIPS} ${DVIPSOPTS} -o - ${NAME}.dvi
fi |\
${GS} ${GSOPTS} -sOutputFile="| sh ${COM} > ${FINAL}" -
if $SVG
then
pdflatex ${NAME}.tex
if [ ${NAMEDIR} != "." ]
then
mv `basename ${NAME}.pdf` ${NAME}.pdf
fi
pdfcrop ${NAME}.pdf ${NAME}.crop.pdf
pdf2svg ${NAME}.crop.pdf "${TODIR}/${BASE}%03d.svg" all
${RM} ${NAME}.crop.pdf
fi
${RM} ${COM} ${NAME}.dvi ${NAME}.pdf head.tmp body.tmp
${RM} `basename ${NAME}.log` `basename ${NAME}.aux`