Files
dotfiles/claude/memory/project-arc-pdf-print-postures-session-plan.md
T
David F GliddenandClaude Opus 4.8 3f9a89b00c chore(memory): Basic Memory trial begins — sync normalization baseline (283 files)
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>
2026-06-06 09:52:17 +02:00

12 KiB

permalink
permalink
claude-memory/project-arc-pdf-print-postures-session-plan

name: ARC PDF + Print posture rendering session plan — XeLaTeX templates + AldineXXI sample images description: Dedicated session to build both Postures (PDF + Print) as LaTeX templates, render the Readings typology spec as PDF, and produce sample-image pairs for the AldineXXI page rewrite's Postures section. Two-birds: deliver the deferred Print/PDF posture spec sections AND the AldineXXI assets in one focused session. type: project originSessionId: a5411fd1-4a96-43e7-aa1a-1a50d8951a8f

Context

The Print/PDF posture is named in AldineXXI-specification.md (Prologue Postures line 64; §II.d line 1237) but the actual stylesheet/template work is deferred. Per the spec:

  • Print posture: browser/PDF rendering for a reader who prints from the site. Asymmetric Van de Graaf canon (paper has its own tradition; spread is a fold). Always asymmetric, regardless of marginalia density.
  • PDF posture: downloadable finely-set form, mirrors the screen's per-piece composition (§II.d). Asymmetric when the piece carries marginalia; symmetric when it does not.

This session does both postures in one focused day, using the Readings typology-spec amendment (commit 5792286, 2026-05-14) as test substrate. The Readings entry is dense enough to stress page-flow, multi-language typography (French + Latin + Greek), block quotation, marginalia, italic discipline, and small caps — most of what posture work must handle. Tier-1 typography choice: XeLaTeX + pandoc (per steward 2026-05-14: do this properly once; revisit Typst when it overtakes LaTeX for this domain).

Two-birds rationale

The AldineXXI page rewrite (memory: session-2026-05-10-aldine-xxi-chavruta-and-capsule-design.md) will want sample images illustrating each posture in §I (Postures section). Building both posture templates in the same session produces those images as a natural byproduct.

Pre-session verification (already confirmed 2026-05-14)

  • pandoc — 3.9.0.2 installed at /opt/homebrew/bin/pandoc
  • MacTeX 2026 — installed at /usr/local/texlive/2026; xelatex / lualatex / pdflatex / tlmgr at /Library/TeX/texbin/
  • IBM Plex Sans — 12+ weights+styles as TTF in ~/Library/Fonts/
  • IBM Plex Mono — 10 weights+styles as TTF in ~/Library/Fonts/
  • EB Garamond — installed (including SC small-caps variant as OTF: EBGaramondSC.otf); also Garamond Premier Pro (Adobe) for richer fallback if needed
  • pdftoppm — installed at /opt/homebrew/bin/pdftoppm (for PDF → PNG image extraction)

Optional (nice-to-have, not required):

  • ImageMagick (brew install imagemagick) — for advanced PNG manipulation; pdftoppm covers basic extraction needs
  • Verify specific EB Garamond weights when session opens: Regular, Italic, Bold, Bold-Italic. If any are missing, install via Homebrew cask (brew install --cask font-eb-garamond) — but the steward has the Adobe Garamond Premier Pro as premium fallback regardless

Session goals (~6 hours, structured)

Hour 1 — Setup + minimal XeLaTeX template

  • Working directory: ~/_Dev/animal-davidglidden-eu/tools/latex/ (new)
  • template-pdf-posture.tex — minimal XeLaTeX template
  • template-print-posture.tex — minimal XeLaTeX template (twoside)
  • Font registration via fontspec:
    • \setmainfont{EB Garamond} (reading layer per §I)
    • \setsansfont{IBM Plex Sans} (navigation register)
    • \setmonofont{IBM Plex Mono} (apparatus register)
  • Basic \usepackage{geometry} with reasonable defaults
  • Pompeian palette as xcolor definitions (light theme; dark theme deferred)
  • First render of a single Readings entry paragraph; confirm fonts render correctly

Hour 2 — PDF posture template (per §II.d, content-driven)

Build out PDF posture support for:

  • §I Typographic Core — fontspec stack, font-scale factors per §I (Plex Sans/Mono scale to match Garamond optical size)
  • §II Spacing Scale — silence taxonomy (the leading, paragraph spacing, between-section breathing)
  • §II.d Page composition — content-driven: asymmetric when piece carries marginalia, symmetric when it does not. Implement as a posture flag in the document preamble; default behavior is content-driven
  • §III Color — light-theme Pompeian palette; dark theme deferred
  • §I.b Lists — both bullet and definition lists; navigation lists vs reading lists
  • §VII Apparatus — dateline (Plex Mono mono-but-not-code register), Sources block (hanging indent), footnotes, captions
  • §XII Sidenotes / marginalia — using sidenotes package or custom marginalia commands; markerless default, marker-anchored fallback
  • Code blocks — code.sourceCode styling per §I.c (warm-tinted background)

Render the Readings entry; iterate until the page reads as a faithful translation of the screen version.

Hour 3 — Critique + iterate on PDF posture

  • Surface what breaks: page breaks at wrong places, hyphenation issues, multi-language quirks, small-caps inconsistencies, microtypography gaps
  • Pull out microtype package (production microtypography: character protrusion, font expansion, additional kerning)
  • Address discoveries; tune the template
  • This is where the §II.e+ Print/PDF posture spec sections get their rough draft material: write down what posture rules emerged from rendering

Hour 4 — Print posture template (twoside, Van de Graaf, asymmetric-always)

Switch posture flag to print:

  • \documentclass[twoside]{book} or memoir class
  • geometry with Van de Graaf canon proportions (margins 1:1:2:2 or finer Tschichold ratios)
  • Mirrored margins (oddsidemargin / evensidemargin) so verso/recto compose as a spread
  • Asymmetric vessel always active regardless of marginalia content (per spec line 1239)
  • Header/footer matter: running heads per §VII.f; folios
  • Render the same Readings entry — now as a spread

Hour 5 — Sample-image preparation for AldineXXI page rewrite

Render both postures of representative pieces, capture as PNG via pdftoppm:

  • PDF posture sample: a piece WITH marginalia (asymmetric — e.g., a Hearth-style piece, or the AldineXXI spec itself) at typical screen-mirror scale; single-page or stacked-pages view
  • PDF posture sample: a piece WITHOUT marginalia (symmetric — e.g., a Glimpse caption-only piece or short Fragment); single-page
  • Print posture sample: the same WITH-marginalia piece, now as a Van de Graaf spread (two facing pages); the asymmetry of the spread is the point
  • Print posture sample: a piece without marginalia, still asymmetric (per the always-asymmetric rule); contrast with PDF symmetric version

Naming: static/img/postures/posture-pdf-asymmetric.png, posture-pdf-symmetric.png, posture-print-spread-with-marginalia.png, posture-print-spread-without-marginalia.png. Resolution: high enough for retina display in the AldineXXI page (likely 2x intended display, ~300dpi from pdftoppm).

Hour 6 — Document the template + rough-draft posture spec sections

  • Capture the rendering session's learnings as rough notes for the §II.e+ Print/PDF posture spec sections in AldineXXI
  • Document the templates: tools/latex/README.md explaining build commands, posture flags, font requirements, what each template handles
  • Surface unresolved questions for steward decision (e.g., specific Van de Graaf ratio, whether ARC adopts strict Tschichold or a refined variant, dark-theme PDF rendering)
  • Pickup notes for the next iteration (font kerning if it bothers you, baseline grid if it matters)

Test substrate

Primary: the Readings entry in content-typology-specification.md (lines after Gloss, before "### Draft definitions"). Dense, multi-language, marginalia-friendly, ~2500 words. Stresses everything posture work must handle.

Secondary (if Hour 5 has time): the AldineXXI spec §I-§II.d itself — a longer document that exercises multi-page layout, running heads, folios, cross-references.

Output artifacts

After session, working directory should contain:

tools/latex/
├── README.md                              # build instructions, posture flags
├── template-pdf-posture.tex               # PDF posture template
├── template-print-posture.tex             # Print posture template
├── arc-typography.sty                     # shared font + color + spacing definitions
├── pandoc-pdf-posture.yaml                # pandoc invocation config
├── pandoc-print-posture.yaml              # pandoc invocation config
└── samples/
    ├── readings-entry-pdf-posture.pdf
    ├── readings-entry-print-posture.pdf
    └── images/
        ├── posture-pdf-asymmetric.png
        ├── posture-pdf-symmetric.png
        ├── posture-print-spread-with-marginalia.png
        └── posture-print-spread-without-marginalia.png

Plus:

  • Rough draft of §II.e (or wherever they land) — Print posture spec section + PDF posture spec section — saved to docs/AldineXXI-Codex/drafts/postures-rough-draft-YYYY-MM-DD.md
  • Sample images copied to static/img/postures/ for AldineXXI page rewrite use

Pickup notes for future-Claude or steward

  • Read this file first; it's self-contained.
  • DO NOT touch code before confirming the pre-session checklist; if anything is missing, install before starting
  • Per CLAUDE.md governance, this session is [HARDENING] at minimum (addresses class of failure in deferred-posture-spec; brings two specs to first-render) — though arguably it's spec implementation against an already-agreed direction, which is fine to proceed as [FIX]-style execution. Steward to clarify if escalation needed.
  • The Readings spec amendment 5792286 is the test substrate; the spec already references the typology entry by name in commit body
  • The session should result in TWO commits: (1) tools/latex/ template scaffolding; (2) AldineXXI §II.e+ posture spec rough draft + sample image attachment
  • DO NOT deploy the site during this session — the work is template + assets + spec rough draft, not site-content
  • The font stack is the steward's installed system fonts (TTF in ~/Library/Fonts/), not the site's _site/fonts/ woff2 files. fontspec uses system fonts directly. The woff2 files remain authoritative for the WEB delivery; LaTeX uses TTF/OTF for the PDF/Print delivery. Two delivery surfaces, two font formats, same typeface intent.
  • Microtypography is the quality lift. \usepackage{microtype} with appropriate config (character protrusion, font expansion, additional kerning, tracking for all-caps) is the single most important quality move. Don't skip.
  • Hyphenation patterns: French + Latin + Greek + English content needs polyglossia or babel with appropriate language packages. \usepackage{polyglossia} is current best.
  • The image-capture trick: pdftoppm -r 300 -png input.pdf output_prefix produces high-resolution PNG; trim/frame in Preview or via convert (if ImageMagick installed).

Connection to other open arcs

  • AldineXXI page rewrite (memory: session-2026-05-10-aldine-xxi-chavruta-and-capsule-design.md) needs sample images for the §I Postures section. This session produces them.
  • Readings spec (commit 5792286, memory: project-gloss-vs-commentary-distinction.md) is the substrate. This session is its first rendered exercise.
  • Chamber cruft restoration (memory: project-chamber-cruft-restoration.md) is independent of this session; runs on its own arc.
  • L1 recall fix (memory: project-L1-recall-fix-session-plan.md) is independent; runs on its own arc.

Open questions for the session itself

  1. Which Van de Graaf ratio variant? The classic canon (1:1:2:2 margins) or a refined Tschichold ratio? The masters in chamber (Tschichold, Bringhurst) likely have the answer; check the chamber if uncertain.
  2. Hyphenation: strict Knuth-style or relaxed for narrow measures? Print and PDF may want different settings (Print's spread allows wider measures; PDF's screen-mirror may need narrower).
  3. Drop caps: §I governs in HTML; how does this translate to LaTeX? lettrine package is standard; check if it honors the right typeface and integrates with EB Garamond cleanly.
  4. Small caps: \textsc{} vs proper SC font (EB Garamond SC is available as separate OTF). The SC OTF gives true small-caps; \textsc{} synthesizes from regular if no SC font is registered. For Aldine-grade work, true SC is the floor.
  5. Dark-theme PDF rendering: deferred from this session, but worth noting whether the template can be extended later via a --variable=theme=dark pandoc flag.