Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds long YAML description lines, strips final newlines. Bodies untouched — verified via full diff classification. From this commit forward, any diff in claude/memory shows only what Basic Memory or the session writes. Trial design: MemPalace untouched as incumbent; git status check on this dir at every wrap; end-of-day evaluation (recall quality, sync robustness, rebuild-from-files, malformed-file behavior). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
124 lines
9.0 KiB
Markdown
124 lines
9.0 KiB
Markdown
---
|
||
name: EB Garamond + EBGaramondSC font update — Phase 1 / 2 / 3 + LaTeX + SC corrective
|
||
+ feature expansion all DONE 2026-05-15
|
||
description: Five commits across two days. Phase 1 (2026-05-14, d9efb88) — core TTFs
|
||
+ Regular/Italic/Bold WOFF2 from Pardo v1.131. Phase 2+3 (2026-05-15, 6763b54) —
|
||
Medium/SemiBold WOFF2 subsets + EBGaramondSC{08,12}-Regular built from Duffner source.
|
||
LaTeX integration (2026-05-15, e3478e0) — arc-typography.sty \scfont references
|
||
EBGaramondSC12-Regular.ttf. SC subset corrective (2026-05-15, 4512b9a) — retained
|
||
403 .sc glyphs + smcp/c2sc in Medium/SemiBold (versalita verdadera). Feature expansion
|
||
(2026-05-15, 9d2cccb) — added case + ss06 (Garamond long-tail Q) + ordn (proper
|
||
ordinals per Hart's §3.3) + swsh + frontispiece-epigraph italic swash CSS pattern
|
||
(chancery flourishes on every capital of threshold quotations; title stays sober
|
||
roman per Aldine practice given roman swsh has only 3 Q.long subs). One pre-existing
|
||
issue still parked — \textsc TeX-capacity crash from yesterday's Phase 1 — flagged
|
||
at bottom of this memory.
|
||
type: project
|
||
originSessionId: 6cef24d0-242b-474e-b8d4-fd568edf5dc2
|
||
permalink: claude-memory/project-eb-garamond-update-2026-05-14
|
||
---
|
||
|
||
## State as of 2026-05-14
|
||
|
||
Steward's installed EB Garamond v1.000 (2017 release; installed to `~/Library/Fonts/` 2019-03-14) is ~6 years out of date. Upstream `octaviopardo/EBGaramond12` is alive with active development through 2026-03-27 (master `106a4a6`). Upgrade gains: language coverage refinements, kerning improvements, bug fixes accumulated since v1.000.
|
||
|
||
Plus: `EBGaramondSC` (the separate small-caps face from Georg Duffner's original `georgd/EB-Garamond`) is also stuck at the 2019 OTF. Duffner's repo last pushed 2024-03-16; ships source files (SFD/UFO/featurefiles) only — no pre-built TTF/OTF/WOFF2 available. Building requires fontforge/UFO tooling.
|
||
|
||
## Phase 1 — DONE 2026-05-14
|
||
|
||
Core face TTF (10 files) + 3 live web WOFF2 (Regular, Italic, Bold) replaced with upstream `octaviopardo/EBGaramond12` master (sha `106a4a6`, 2026-03-27). Old files backed up to dated `_backup_2026-05-14/` directories.
|
||
|
||
**Files updated:**
|
||
- `~/Library/Fonts/EBGaramond-{Regular,Italic,Bold,BoldItalic,Medium,MediumItalic,SemiBold,SemiBoldItalic,ExtraBold,ExtraBoldItalic}.ttf`
|
||
- `~/_Dev/animal-davidglidden-eu/static/fonts/eb-garamond/EBGaramond-{Regular,Italic,Bold}.woff2`
|
||
|
||
**Verification:**
|
||
- LaTeX hour1-fontcheck.tex re-rendered: substrate clean, no regressions
|
||
- Readings-entry PDF posture re-rendered: text rendering matches v1.000 character; advance widths landed slightly differently but rhythm holds
|
||
|
||
## Phase 2 — DEFERRED (re-subset Medium / SemiBold web subsets)
|
||
|
||
Four WOFF2 subset files are used live in the screen render:
|
||
- `EBGaramond-Medium-Latin.woff2` (23 KB; basic Latin block)
|
||
- `EBGaramond-Medium-LatinExt.woff2` (65 KB; Latin Extended)
|
||
- `EBGaramond-SemiBold-Latin.woff2`
|
||
- `EBGaramond-SemiBold-LatinExt.woff2`
|
||
|
||
These were produced via subsetting (probably `pyftsubset`) from full Medium / SemiBold WOFF2 with unicode-range CSS to split. After Phase 1, the SOURCE Medium/SemiBold has changed but the SUBSET files haven't been regenerated — so the weights 500/600 on screen still serve the May 2026 subsets which were derived from a slightly older upstream.
|
||
|
||
**To complete Phase 2:**
|
||
1. `pipx install fonttools[woff]` (or `brew install fonttools` — verify pipx vs brew for the right binary; the pipx route is the steward's preferred installation path per the toolchain feedback memory)
|
||
2. From the new `EBGaramond-Medium.ttf` and `EBGaramond-SemiBold.ttf` (in `~/Library/Fonts/`), produce:
|
||
- Latin subset (U+0020–U+007F + common Latin-1)
|
||
- LatinExtended subset (U+0080–U+024F + commonly-needed extended Latin)
|
||
3. Save as WOFF2 with optimal compression
|
||
4. Replace the four files in `static/fonts/eb-garamond/`
|
||
5. Visual-diff a screen render to confirm the new subsets are consistent
|
||
|
||
Approximate effort: ~30 min hands-on + the install of fonttools.
|
||
|
||
## Phase 3 — DEFERRED (EBGaramondSC update)
|
||
|
||
`EBGaramondSC.otf` (local) and `EBGaramondSC-{Display,Regular}.woff2` (web) are stuck at the 2019 Duffner version. The Pardo continuation (`octaviopardo/EBGaramond12`) does NOT include SC — the modern approach bakes small caps into the main face via OpenType `+smcp` feature.
|
||
|
||
**Two paths for Phase 3:**
|
||
|
||
A. **Build from Duffner source** — clone `georgd/EB-Garamond`, install fontforge tooling, build EBGaramondSC.otf from the SFD/UFO sources. Last upstream push 2024-03-16, so a fresh build may capture some updates since 2019 — though Duffner's repo has been quiet enough that gains are uncertain.
|
||
|
||
B. **Migrate to +smcp on the main face** — if Pardo's `EBGaramond-Regular.ttf` includes the `+smcp` feature, the separate SC face can be retired entirely. The LaTeX `\scfont` declaration becomes `\rmfamily\addfontfeatures{Letters=SmallCaps}`. CSS-side, `font-variant-caps: small-caps` works against the regular WOFF2.
|
||
|
||
The cleanest move is **B if Pardo has +smcp**. Verify by:
|
||
```
|
||
otfinfo -f ~/Library/Fonts/EBGaramond-Regular.ttf | grep -i smcp
|
||
```
|
||
or `fc-list -v 'EB Garamond' | grep -i small`.
|
||
|
||
If +smcp is present, retiring the separate SC face simplifies the stack across both LaTeX and web. If absent, Path A is the fallback.
|
||
|
||
Approximate effort:
|
||
- Path B (if +smcp present): ~20 min (verify, edit arc-typography.sty + SCSS, test)
|
||
- Path A (build from source): half-day session — fontforge + ufo2ft pipeline learning curve
|
||
|
||
## Sequencing recommendation
|
||
|
||
When the steward returns to this:
|
||
1. **First**: verify Pardo's +smcp presence (5 min check). Settles whether Phase 3 is the simpler Path B or the heavier Path A.
|
||
2. **Then**: install fonttools via pipx and complete Phase 2 (~30 min). Closes the subset-regression gap from Phase 1.
|
||
3. **Finally**: execute Phase 3 — Path B if +smcp confirmed; Path A if not.
|
||
|
||
## Filing discipline
|
||
|
||
- Local backups at `~/Library/Fonts/_backup_2026-05-14/`. Restore via `cp _backup_2026-05-14/*.ttf .` if a regression surfaces.
|
||
- Web font backups at `static/fonts/eb-garamond/_backup_2026-05-14/`. Restore via the same pattern.
|
||
- Per `feedback-tool-installation-pipx-default.md`: install fonttools via `pipx install fonttools[woff]` (general-purpose CLI tool, isolated deps, on PATH).
|
||
|
||
## Related memory
|
||
|
||
- `feedback-tool-installation-pipx-default.md` — pipx-default rule applies to the fonttools install.
|
||
- `project-arc-pdf-print-postures-session-plan.md` — LaTeX templates that consume the updated TTFs.
|
||
- `project-chamber-cruft-restoration.md` — independent thread; no font dependency.
|
||
|
||
---
|
||
|
||
## Pre-existing issue surfaced during 2026-05-15 verification — needs separate investigation
|
||
|
||
While verifying the LaTeX integration (commit `e3478e0`), `xelatex` on `tools/latex/samples/hour1-fontcheck.tex` crashed with **"TeX capacity exceeded, sorry [input stack size=10000]"** at line 49 — the `\textsc{small-caps via the synthesized command}` invocation. Confirmed by isolation test: failure persists with `\scfont` block entirely commented out, so it is NOT caused by today's SC font work.
|
||
|
||
**Likely root cause:** microtype tracking config (`mt-EBGaramond.cfg`) interaction with Pardo v1.131 OpenType feature table introduced in Phase 1 commit `d9efb88` (yesterday). The failure happens in expl3 csname construction (`exp_args:Nc`) shortly after `mt-EBGaramond.cfg` loads. The expansion never produces output; the PDF is not written.
|
||
|
||
**Verified scope:**
|
||
- `\textsc` (synthesized small caps on main EB Garamond Regular face) — BROKEN
|
||
- `\scfont` (true SC face via EBGaramondSC12-Regular) — WORKS (verified by minimal isolation test producing a clean 14 KB PDF)
|
||
- `\emph`, `\textbf`, `\textit{\textbf{...}}`, colour — not directly tested but no errors before line 49
|
||
|
||
**Last known working state:** `tools/latex/samples/hour1-fontcheck.pdf` dated `14 May 13:47` (just after Phase 1 commit at ~13:05). Whether that PDF actually reflects a successful post-Phase-1 render or was stale from an earlier successful render is not certain.
|
||
|
||
**Diagnostic path when picked up:**
|
||
1. Render `hour1-fontcheck.tex` with `microtype` disabled (`\usepackage[disable]{microtype}` or comment out the `microtype` `\RequirePackage` in arc-typography.sty). If render succeeds, microtype is implicated.
|
||
2. If microtype is the cause, inspect `mt-EBGaramond.cfg` for tracking rules that depend on font metadata that may have changed between EB Garamond v1.000 (2017) and Pardo v1.131 (2026-03-27).
|
||
3. Workaround if needed: drop `tracking = true` from the microtype options in `arc-typography.sty:28-32` and accept slightly less polished all-caps / small-caps spacing.
|
||
4. Real fix if microtype config is at fault: file a small fix to microtype's mt-EBGaramond.cfg, or override the relevant tracking config locally in arc-typography.sty.
|
||
|
||
**Where to find the working LaTeX setup once fixed:** the existing test `tools/latex/samples/hour1-fontcheck.tex` exercises every component arc-typography.sty registers — it's the right substrate for verifying any fix.
|
||
|
||
**Not blocking:** the SC font work (commits `6763b54` + `e3478e0`) is complete and independently verified. This issue is older than today's work and warrants its own session. |