Drop small caps for acronyms; ninth diacritic fix; verify forces a build
Abbreviations are now plain uppercase throughout (Sammay). The pass small-capped an explicit whitelist, which could only ever be partial: on the Abbreviations and Conventions page BFBS, LMS and MLCo stood unconverted in one column beside small-capped BL, BMS, EIC, IOL, OUP, SOAS and SPG, and "MS EUR 30" split a single shelfmark across two styles. Completing the whitelist was the obvious fix and the wrong one. The original is a typescript — a typewriter cannot set small caps — so the source defines none, and rule 3 leaves every acronym as the plain uppercase it prints. smallcaps() is now a documented no-op. p0431: Rtusamhāra -> Ṛtusaṃhāra, verified at 700 dpi (dot under the R, dot under the m). It was catchable because it broke the Bibliography's own pattern: the author gives a title in full transliteration and its anglicised form plain — "Ānanda Bājāra Patrikā (Ananda Bazar Patrika)" — so a Bibliography entry with the marks stripped is an anomaly, while most of the remaining flags there are her distinction rather than our error. Makefile: verify now depends on `build`, not `pdf`. `pdf` is timestamp-conditional, and a source edited while a build is running leaves a PDF newer than the source it does not contain — make then skips the rebuild and verify passes against stale output. That happened here, and reprocheck caught it correctly twice while I twice misread it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,8 +91,12 @@ the latter. **The transcription in `src/pages` always stays exactly as typed**
|
||||
polished copies. The pass applies what the typewriter could not (Sammay, 2026-09-13):
|
||||
* ties, so a reference or unit never breaks across a line (`p.~63`, `Part~II`, `240~lbs`)
|
||||
* en-dashes for numeric ranges (1778--1978)
|
||||
* small caps for institutional acronyms — an explicit whitelist in the script (IOL, BMS, OUP, SOAS,
|
||||
MS, BL …). Fount codes (CW1, SB4, BM V, VF1) and Roman numerals are deliberately excluded
|
||||
* **no small caps.** The pass small-capped a whitelist of institutional acronyms until 2026-09-15
|
||||
(Sammay). Abbreviations are now plain uppercase throughout: the whitelist could only ever be
|
||||
partial, and on the Abbreviations page BFBS, LMS and MLCo stood unconverted beside small-capped
|
||||
BL, BMS, EIC, IOL, OUP, SOAS, SPG — it also split `MS EUR 30` across two styles. Completing the
|
||||
list is the wrong fix: the original is a **typescript**, a typewriter cannot set small caps, so
|
||||
the source defines none and rule 3 leaves every acronym as the plain uppercase it prints
|
||||
* `\mbox` round every inline specimen so it never breaks from adjacent punctuation
|
||||
* **cross-reference links**: `pl. N` and `chapter N` always link (they can only be this thesis's own);
|
||||
`p. N`/`pp. N` link **only where the thesis cites itself**. A page reference inside a citation
|
||||
|
||||
@@ -38,7 +38,10 @@ check: ## consistency checks (manifest <-> files <-> macros), no buil
|
||||
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
|
||||
# Depends on `build`, not `pdf`: `pdf` is timestamp-conditional, and a source edited
|
||||
# while a build is running leaves a PDF NEWER than the source it does not contain,
|
||||
# so make would skip the rebuild and verify would pass against stale output.
|
||||
verify: check build reprocheck ## the full gate: check, typeset unconditionally, then prove nothing was dropped
|
||||
|
||||
shell: ## interactive shell in the container
|
||||
docker compose run --rm tex bash
|
||||
|
||||
@@ -13,7 +13,7 @@ Character from 1778 to 1978*, Ph.D., SOAS, 1988. ProQuest scan, 431 PDF pages,
|
||||
| Structure | `\chapstart{Title}` = new page + centred bold head + PDF bookmark + notes group. One `.tex` per original page in `src/pages/pNNNN.tex` (NNNN = PDF page); `\chapstart` must come *before* `\origpage` in a file |
|
||||
| Plates | Cropped from the 300 dpi scan by `tools/crop_plate.py` (scanner bars, page number, caption stripped; gutter shadow swept; deskewed when the page is out of square — the one step that resamples), embedded lossless at native resolution. `\plateop{N}{no}{img}{caption}` for a plate that begins page N; `\plate{no}{img}{caption}` otherwise. Per-page crop recipe recorded in the manifest `notes` column |
|
||||
| Colophon | `src/colophon.tex` = leaf 2: description of the conversion + ProQuest notice text. Blank stamped leaf (PDF p.3) dropped and noted there |
|
||||
| Editorial | Original spelling and typography stand. **Handwritten corrections** in the scan are adopted silently and logged in QUESTIONS.md. **The author's own slips** are corrected via `\erratum{corrected}{as printed}` and listed in the Errata section. **Slips inside quoted matter** are never corrected — mark `\qslip{as printed}` and table them in QUESTIONS.md so they can be checked against the source. A grammatical slip in the author's own prose stands **exactly as printed and unmarked** (Sammay, 2026-09-14, reversing the editorial `[sic]` first added on 2026-09-13): the seven `[sic]`s in this edition are all hers, and an eighth in her own notation would have been indistinguishable from them. The edition now makes no interpolation into the text at all. Other decisions confirmed by Sammay, 2026-09-13. The three typographic intentions the typewriter could not realise — en-dashes for numeric ranges, true quotation marks, small caps for institutional acronyms — are applied at set time by `tools/polish.py`; the transcription itself stays as typed (Sammay, 2026-09-13) |
|
||||
| Editorial | Original spelling and typography stand. **Handwritten corrections** in the scan are adopted silently and logged in QUESTIONS.md. **The author's own slips** are corrected via `\erratum{corrected}{as printed}` and listed in the Errata section. **Slips inside quoted matter** are never corrected — mark `\qslip{as printed}` and table them in QUESTIONS.md so they can be checked against the source. A grammatical slip in the author's own prose stands **exactly as printed and unmarked** (Sammay, 2026-09-14, reversing the editorial `[sic]` first added on 2026-09-13): the seven `[sic]`s in this edition are all hers, and an eighth in her own notation would have been indistinguishable from them. The edition now makes no interpolation into the text at all. Other decisions confirmed by Sammay, 2026-09-13. The typographic intentions the typewriter could not realise — en-dashes for numeric ranges, true quotation marks — are applied at set time by `tools/polish.py`. **Small caps for acronyms were removed on 2026-09-15 (Sammay)**: a typescript cannot set small caps, so the source defines none, and a partial whitelist left the Abbreviations page visibly inconsistent; the transcription itself stays as typed (Sammay, 2026-09-13) |
|
||||
| Uncertain | `\unsure{...}` → `unsure.log` → QUESTIONS.md; never silently guessed |
|
||||
| Contents | Contents and List-of-Plates entries are whole-line hyperlinks to the original page target (`page.N`) |
|
||||
| Versioning | **Git** (from 2026-09-14, Sammay). The built PDF is not tracked and not archived — `make` regenerates it from `src/` and `plates/`. The ProQuest scan (`source/`) is untracked too, being third-party; only `make prep` and `make plate` need it. Superseded design drafts stay in `older-versions/` as text |
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
\bibgroup{3. Other Languages}
|
||||
\emph{Hitopadeśa. The Sanskrit Text.} Ed. by Francis Johnson. Stephen Austin: London, 1857.
|
||||
|
||||
Kālidāsa, Rtusamhāra. \emph{The Seasons: a Descriptive Poem, by Cālidās, in the Original Sanscrit.} Ed. by Sir William Jones, Calcutta, 1792. [In Bengali characters.]
|
||||
Kālidāsa, Ṛtusaṃhāra. \emph{The Seasons: a Descriptive Poem, by Cālidās, in the Original Sanscrit.} Ed. by Sir William Jones, Calcutta, 1792. [In Bengali characters.]
|
||||
|
||||
Forbes, Duncan, ed.. \emph{The Baitāl Paichīsī.} Stephen Austin: London, 1857.
|
||||
|
||||
|
||||
+17
-5
@@ -8,7 +8,7 @@ should have:
|
||||
|
||||
* ties, so a reference or a unit never breaks across a line
|
||||
* en-dashes for numeric ranges (1778-1978, pp. 315-320)
|
||||
* small caps for institutional acronyms (explicit whitelist below)
|
||||
* (no small caps: see smallcaps() below — the pass was removed 2026-09-15)
|
||||
* p./pp., pl./pls. and chapter references become links to the original page
|
||||
they name — note that the original's page numbers are the targets, not the
|
||||
edition's, since `\origpage{N}` plants `page.N` where original page N begins
|
||||
@@ -22,8 +22,9 @@ import re, glob, os, sys
|
||||
|
||||
SRC, OUT = "src/pages", "work/pages"
|
||||
|
||||
ACRONYMS = ["CSBC", "MSS", "SOAS", "BMS", "IOL", "IOR", "OUP", "SPG", "EIC",
|
||||
"DCL", "FRS", "BEN", "MS", "BL"]
|
||||
# Kept only as a record of what the removed pass covered. See smallcaps().
|
||||
_FORMER_ACRONYMS = ["CSBC", "MSS", "SOAS", "BMS", "IOL", "IOR", "OUP", "SPG",
|
||||
"EIC", "DCL", "FRS", "BEN", "MS", "BL"]
|
||||
|
||||
def build_maps():
|
||||
plate, chap, subsec = {}, {}, {}
|
||||
@@ -140,8 +141,19 @@ def endashes(t):
|
||||
return re.sub(r"(?<=\d)-(?=\d)", "--", t)
|
||||
|
||||
def smallcaps(t):
|
||||
for a in ACRONYMS:
|
||||
t = re.sub(r"(?<![A-Za-z0-9\\])%s(?![A-Za-z0-9])" % a, r"\\textsc{%s}" % a.lower(), t)
|
||||
"""No-op since 2026-09-15 (Sammay): abbreviations stay plain uppercase.
|
||||
|
||||
The pass small-capped an explicit whitelist of institutional acronyms. That
|
||||
whitelist could only ever be partial, and on the Abbreviations and
|
||||
Conventions page the gap was plain: BFBS, LMS and MLCo sat in one column
|
||||
against small-capped BL, BMS, EIC, IOL, OUP, SOAS and SPG. It also split a
|
||||
shelfmark, setting a small-cap MS against a full-cap EUR in "MS EUR 30".
|
||||
|
||||
Completing the list was the obvious fix and is the wrong one. The original
|
||||
is a typescript: a typewriter cannot set small caps, so the source defines
|
||||
no abbreviation in them and every acronym on the page is plain uppercase.
|
||||
Small caps were this edition's invention, and an inconsistent one. Rule 3 —
|
||||
the original's typography stands — settles it."""
|
||||
return t
|
||||
|
||||
def mbox_specimens(t):
|
||||
|
||||
Reference in New Issue
Block a user