diff --git a/CLAUDE.md b/CLAUDE.md index ea52a12..646fd43 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -72,8 +72,10 @@ Read those three files first, every session. | `\emph{}` for italics, `` ` '' `` for quotes, `\ldots\ ` for …, `\&`, `\%`. | Typewriter conventions of the original (no ligatures etc.) need no special handling. | ## Typography (set once in `src/preamble.tex` — do not re-litigate per page) -12pt **XCharter** (Carter's Charter, extended; loaded by path from the TeX tree, which fontconfig does -not index — note the upright face is `*-Roman`, not `*-Regular`) on a 5.95in measure, ~73 characters a line; Liberation Sans for margin marks and running +13pt **XCharter** (Carter's Charter, extended; loaded by path from the TeX tree, which fontconfig does +not index — note the upright face is `*-Roman`, not `*-Regular`; set via fontspec `Scale=1.0833` over a +12pt class, which scales every size in the family but leaves `\baselineskip` class-derived so the +leading stays put) on a 5.95in measure — **73 characters a line, measured off the built PDF**; Liberation Sans for margin marks and running heads; Tiro Bangla for Bengali. **Leading 1.59 — a 22.9pt line, the original's own, measured off the scan at 300 dpi; the inline specimens set it, not the text** (see CONTINUATION.md). Inline specimens at native size (`\igscale` = 72.27/300), which is the 74% of the line the original gives them. First line indented diff --git a/PLAN.md b/PLAN.md index 4ac8c8c..107053d 100644 --- a/PLAN.md +++ b/PLAN.md @@ -9,7 +9,7 @@ Character from 1778 to 1978*, Ph.D., SOAS, 1988. ProQuest scan, 431 PDF pages, |---|---| | Layout | **Reflowed** text. `\origpage{N}` marks where original page N begins: bold sans number in the outer margin + thin bar in the line + `page.N` hyper-target. Running head shows the original page range on each edition page; edition page number in the footer | | Notes | Footnotes become **endnotes** (enotez) in a final *Notes* section, grouped "Notes to ", keeping original numbers via `\fn{n}{text}`; marks link to notes, notes link back | -| Type | 12pt **XCharter** (Matthew Carter's Charter, extended; TeX Live, loaded by path) on a 5.95in measure — about 73 characters a line. Replaced TeX Gyre ScholaX on 2026-09-15 (Sammay): measured off the metrics, ScholaX had the smallest lowercase relative to its capitals of the faces considered, x-height/cap 0.645 against XCharter's 0.717, so its caps and ascenders dominated the page. XCharter covers all 35 non-ASCII characters here (the dots-below set defeats ETbb, Domitian, STEP, Tempora) with real small caps and oldstyle figures; Liberation Sans for marks and heads. **Leading 1.59 — a 22.9pt line, which is the original's own, measured off the scan at 300 dpi by autocorrelating the row-ink profile; the inline specimens set it, not the text.** Inline specimens at **native size** (`\igscale` = 72.27/300), the 74% of the line the original gives them. First line indented 1.6em, `\parskip` 0.15em (ragged2e resets `\parindent` from `\RaggedRightParindent`, so both are set). **Ragged right and unhyphenated** (`\RaggedRight`, `\hyphenpenalty=10000`, `\lefthyphenmin=62`) — the typescript breaks only at spaces and at hyphens it actually typed. Hanging punctuation (microtype protrusion, dashes hang far less); widows and orphans forbidden with `\raggedbottom`. **Tiro Bangla** for Bengali that shows the modern script (the Scheme of Transliteration). Bengali that shows a **historical** typeface is never typed: it is cut from the scan by `tools/crop_inline.py` and set with `\ig` | +| Type | 13pt **XCharter** (Matthew Carter's Charter, extended; TeX Live, loaded by path) on a 5.95in measure — **73 characters a line, measured** (79 full lines off the built PDF, glyphs plus inter-word gaps). At 12pt it ran 78, above the 60-75 comfortable band; raised to 13pt on 2026-09-15 (Sammay) via fontspec `Scale=1.0833` over the 12pt class, which leaves `\baselineskip` class-derived so the specimen-anchored 22.9pt leading does not drift. An earlier note in these files put the 12pt line at "~73 characters" — that was a font-metric estimate, unweighted over the lowercase alphabet and counting no spaces, and it was wrong. Replaced TeX Gyre ScholaX on 2026-09-15 (Sammay): measured off the metrics, ScholaX had the smallest lowercase relative to its capitals of the faces considered, x-height/cap 0.645 against XCharter's 0.717, so its caps and ascenders dominated the page. XCharter covers all 35 non-ASCII characters here (the dots-below set defeats ETbb, Domitian, STEP, Tempora) with real small caps and oldstyle figures; Liberation Sans for marks and heads. **Leading 1.59 — a 22.9pt line, which is the original's own, measured off the scan at 300 dpi by autocorrelating the row-ink profile; the inline specimens set it, not the text.** Inline specimens at **native size** (`\igscale` = 72.27/300), the 74% of the line the original gives them. First line indented 1.6em, `\parskip` 0.15em (ragged2e resets `\parindent` from `\RaggedRightParindent`, so both are set). **Ragged right and unhyphenated** (`\RaggedRight`, `\hyphenpenalty=10000`, `\lefthyphenmin=62`) — the typescript breaks only at spaces and at hyphens it actually typed. Hanging punctuation (microtype protrusion, dashes hang far less); widows and orphans forbidden with `\raggedbottom`. **Tiro Bangla** for Bengali that shows the modern script (the Scheme of Transliteration). Bengali that shows a **historical** typeface is never typed: it is cut from the scan by `tools/crop_inline.py` and set with `\ig` | | 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 | diff --git a/src/preamble.tex b/src/preamble.tex index a69b70d..8f999b3 100644 --- a/src/preamble.tex +++ b/src/preamble.tex @@ -19,11 +19,23 @@ % transliteration set defeats ETbb, Domitian, STEP and Tempora) and has real small % caps and oldstyle figures. It ships with TeX Live, so no font is added. % NB the upright face is *-Roman here, not *-Regular. +% Scale=1.0833 sets the text at 13pt while the class stays 12pt. Measured off the +% built PDF (79 full lines, glyphs plus inter-word gaps) the 12pt line ran 78 +% characters — above the 60-75 comfortable band. 13pt brings it to 72. The earlier +% figure of "~73 characters" in these notes was a font-metric estimate (measure +% divided by the unweighted mean lowercase advance, counting no spaces) and was +% simply wrong; only the direct measurement is trustworthy (work/cpl2.py). +% +% Scaling through fontspec rather than the class option is deliberate: it scales +% every size in the family (\small, \footnotesize, the plate captions) but leaves +% \baselineskip class-derived at 12pt, so \setstretch{1.59} still yields the 22.9pt +% line measured off the original. That leading is anchored to the inline specimens +% and must not drift with the type size. \setmainfont{XCharter}[ Path=/usr/share/texlive/texmf-dist/fonts/opentype/public/xcharter/, Extension=.otf, UprightFont=*-Roman, ItalicFont=*-Italic, - BoldFont=*-Bold, BoldItalicFont=*-BoldItalic] -\setsansfont{Liberation Sans} + BoldFont=*-Bold, BoldItalicFont=*-BoldItalic, Scale=1.0833] +\setsansfont{Liberation Sans}[Scale=1.0833] % margin marks and running heads track the text % Scale=MatchLowercase re-derives the Bengali size from whatever the main font's % x-height is, so the switch to XCharter (x-height 0.466 -> 0.481) rescales Tiro % Bangla by +3.2% on its own. Verified against the Scheme of Transliteration.