3 LATEXFLAGS
="-file-line-error -halt-on-error"
5 docs
=( thesis presentation
)
12 [[ "$1" != *.tex
&& "$1" != *.pre
]] && fn
="$1.tex" || fn
="$1"
14 grep -Po '(?<=\\input{).*(?=})|(?<=\\include{).*(?=})' $fn |\
15 while read l
; do deps
"$l"; done
19 grep -Pzo '\\includegraphics[%\t\n ]*(\[.*\])?[%\t\n ]*\{.*?\}' $1 |\
20 tr '\0' '\n' |
grep -Po '(?<=\{).*?(?=\})' |\
21 while read l
; do echo "$2/$l"; done
29 for dep
in $
(deps
"$1"); do
30 if [ "$dep" -nt "$2" ]; then
31 log
"$dep is newer than $2, thus recompiling"
39 pdflatex
$LATEXFLAGS -ini -jobname="$2" "&pdflatex $1\dump"
42 [ $ret -ne 0 ] && exit 1
46 pdflatex
$LATEXFLAGS $1 ||
exit 1
48 if grep -q '^\\bibdata{' $1.aux
49 then bibtex
$1 ||
exit 1
52 if grep -q '\@istfilename' $1.aux
53 then makeglossaries
$1 ||
exit 1
57 then makeindex
$1 ||
exit 1
61 pdflatex
$LATEXFLAGS $1 |
tee $tmpf ||
exit 1
63 if grep -Fiq "Rerun" $tmpf
64 then pdflatex
$LATEXFLAGS $1 ||
exit 1
72 if [ ! -f $1.tex
]; then
73 log
"Skipping $1, no tex available"
76 [ -f preamble.tex
] && pre
=preamble.tex
77 [ -f $1.pre
] && pre
=$1.pre
79 if [ ! -z $pre ]; then
81 recompile
$pre $1.
fmt\
83 || log
"preamble up to date"
87 recompile
"$1.tex" "$1.pdf"\
89 || log
"document up to date"
94 while [ $# -ne 0 ]; do
96 rm -fv $1.
{acn
,acr
,alg
,aux
,bbl
,blg
,idl
,idx
,ilg
,ind
,fmt,glg
,glo
,gls
,\
97 ist
,loa
,lof
,log
,lol
,lot
,nav
,out
,pdf
,snm
,tdo
,toc
,vrb
}
102 if [ $# -eq 0 ]; then
103 for doc
in "${docs[@]}"; do
108 while [ $# -ne 0 ]; do
109 if [ $1 = "clean" ]; then
112 else clean
"${docs[@]}"