#!/bin/sh # Assemble: preamble, title (p0001), colophon, remaining pages in PDF-page order, # endnotes; compile with XeLaTeX (3 passes: marks/backrefs). set -e cd "$(dirname "$0")" OUT=ross-1988-retypeset.pdf python3 tools/polish.py >/dev/null # typographic pass: src/pages -> work/pages { cat src/preamble.tex printf '%s\n' '\begin{document}\immediate\openout\unsurefile=unsure.log\immediate\openout\erratafile=errata.log\immediate\openout\qslipfile=qslips.log' printf '\\input{%s}\n' work/pages/p0001.tex src/colophon.tex for f in work/pages/p*.tex; do [ "$f" = work/pages/p0001.tex ] || printf '\\input{%s}\n' "$f"; done printf '%s\n' '\notesection' '\printerrata' '\immediate\closeout\unsurefile\immediate\closeout\erratafile\immediate\closeout\qslipfile\end{document}' } > src/main.tex for i in 1 2; do xelatex -interaction=nonstopmode -halt-on-error -output-directory=work src/main.tex >work/pass$i.log 2>&1 || { grep -E "^!" -A3 work/pass$i.log; exit 1; }; done xelatex -interaction=nonstopmode -halt-on-error -output-directory=work src/main.tex | grep -E "Overfull|Warning: .*(undefined|multiply)" | sort | uniq -c || true cp work/main.pdf "$OUT"; cp work/unsure.log . 2>/dev/null || true; cp work/errata.log . 2>/dev/null || true; cp work/qslips.log . 2>/dev/null || true echo "built $OUT: $(pdfinfo "$OUT" | grep Pages)"