Initial commit: Ross 1988 re-typeset edition
A searchable, re-typeset edition of Fiona Ross, "The Evolution of the Printed Bengali Character from 1778 to 1978" (Ph.D., SOAS, 1988), transcribed from the 431-leaf ProQuest scan. All 431 pages done; 178 plates and 410 inline type specimens cut from the scan; 51 errata. Tracked: the transcription (src/pages), the preamble and its typographic decisions, the cut images (plates/ — not reliably regenerable, the crop specs for the inline cuts were never scripted), tools, and the four working documents. Not tracked: the built PDF, which `make` remakes from src/ and plates/; the ProQuest scan under source/, which is third-party and needed only by `make prep` and `make plate`; scans/ and work/, both regenerable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# All heavy tools run inside the container; the host drives via make.
|
||||
# Set NODOCKER=1 to run directly if xelatex/poppler/tesseract are installed locally.
|
||||
# zsh does not export UID/GID; compose.yaml needs them to run as the tree's owner.
|
||||
export UID := $(shell id -u)
|
||||
export GID := $(shell id -g)
|
||||
|
||||
RUN := $(if $(NODOCKER),,docker compose run --rm -T tex)
|
||||
|
||||
OUT := ross-1988-retypeset.pdf
|
||||
SOURCES := build.sh tools/polish.py src/preamble.tex src/colophon.tex src/errata.tex \
|
||||
$(wildcard src/pages/*.tex)
|
||||
|
||||
.DEFAULT_GOAL := pdf
|
||||
.PHONY: pdf build image prep plate check reprocheck verify clean distclean shell help
|
||||
|
||||
# The PDF is a build product and is not in git. This remakes it from src/ and
|
||||
# plates/, neither of which needs the ProQuest scan — only prep and plate do.
|
||||
pdf: $(OUT) ## typeset the edition (only if a source changed)
|
||||
|
||||
$(OUT): $(SOURCES)
|
||||
$(RUN) ./build.sh
|
||||
|
||||
build: ## typeset unconditionally, even if nothing changed
|
||||
$(RUN) ./build.sh
|
||||
|
||||
image: ## build the toolchain image (once)
|
||||
docker compose build
|
||||
|
||||
prep: ## rasterize + OCR-scaffold pages A..B: make prep A=19 B=32 [needs source/]
|
||||
$(RUN) tools/prep.sh $(A) $(B)
|
||||
|
||||
plate: ## crop plate image for PDF page N: make plate N=40 [ARGS="--top 0.06"] [needs source/]
|
||||
$(RUN) python3 tools/crop_plate.py $(N) $(ARGS)
|
||||
|
||||
check: ## consistency checks (manifest <-> files <-> macros), no build
|
||||
$(RUN) python3 tools/check.py
|
||||
|
||||
reprocheck: ## every token of src/pages must reach the built PDF
|
||||
$(RUN) python3 tools/reprocheck.py $(OUT)
|
||||
|
||||
verify: check pdf reprocheck ## the full gate: check, typeset, then prove nothing was dropped
|
||||
|
||||
shell: ## interactive shell in the container
|
||||
docker compose run --rm tex bash
|
||||
|
||||
clean: ## remove LaTeX aux and scratch rasters (keeps plates and the PDF)
|
||||
rm -rf work/*
|
||||
|
||||
distclean: clean ## also drop the page rasters and the built PDF
|
||||
rm -rf scans/* $(OUT)
|
||||
|
||||
help:
|
||||
@grep -E '^[a-z-]+:.*##' Makefile | sed 's/:.*##/ —/'
|
||||
Reference in New Issue
Block a user