| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
grid.typ used rows: (auto, 1fr) on the assumption that a Typst
fractional row always shrinks to share whatever space is left. It
does not: an 'fr' track's size is the LARGER of its fair share and
its content's own minimum, so it grows PAST 1fr when content is
taller than that share rather than compressing to fit. Adding the
sigla line (Epistle/Gospel references) grew every cell's natural
content past what a 1/6-of-remaining-space row allows, and a 6-week
month (three of twelve in 2027) split its own table between rows,
stranding the last week alone on a fresh page with no heading -- the
user's screenshot showed a row sliced mid-cell, 'I classis' cut off,
the next month's own heading printed underneath it.
Fixed the same way grid.tex's own \cellh already was: an explicit
row height (cellh, computed from the page's text height divided by
six, budgeted with 6mm of deliberate slack after a zero-slack first
attempt still split a table between rows), with each cell's content
wrapped in a height-clipped block sized to match -- content that
still does not fit is truncated rather than spilling into the next
cell or page. block(breakable: false) around the whole table is a
second, independent backstop: even if the budget is ever wrong
again, the WHOLE table jumps to a fresh page rather than splitting a
row across two, a loud failure (an odd blank page) rather than a
silent one (a sliced row).
This reverts the file's own prior divergence from grid.tex (Typst
stretching every month to fill the page regardless of row count,
disclosed as deliberate at the time) -- overflow safety now matters
more than that cosmetic fill. A 5-week month still leaves a blank
sixth row, the same trade-off grid.tex's own header already accepts.
Verified against all twelve months of 2027 (three 6-week: January,
May, October; nine 5-week), typeset through typst compile: exactly
12 pages, one month title per page, no clipped or duplicated
content, day 31 of a 6-week January fully visible. grid.tex itself
re-checked for the same latent risk and found unaffected -- its
fixed-height \cellh box already had enough margin.
Golden regenerated through the same Test_view.view_of path the
other affected templates already use.
|
|
|
Adds templates/ef/ordo.typ (A5, one week per page, each day framed with
a colour swatch, real names, every fixed string through term.*) and
templates/ef/grid.typ (A4 landscape, one month per page, 7 columns,
colour-filled cells, Epistle/Gospel sigla), matching what ordo.tex and
grid.tex already do.
Typst resolves its own table of contents inside a single compile: no
pageref/aux-file dance, unlike pdflatex's own two-pass need for
ordo.tex. ordo.typ's TOC is one flat heading per week (Month . Week N)
rather than ordo.tex's own month-once/weeks-nested layout, since the
view model has no first-of-month flag for a template to test and
inventing one would be new engine state for a cosmetic grouping.
grid.typ deliberately diverges from grid.tex's own partial-fill
behaviour for a 5-week month: Typst's row-size list repeats its own
last entry for every remaining row, so a two-entry rows spec fills the
page completely regardless of week count, where LaTeX's fixed cellh
leaves a 5-week month's bottom sixth blank on purpose. Both divergences
are documented in the templates' own headers.
Two bugs found and fixed while building these against the real typst
0.14.2 binary: two stray hash characters in grid.typ's header comment
that were not actually inside a line-comment (would have been parsed
as Typst code, not prose); and two lines merging into one wherever they
were separated only by a bare newline (still the same soft-wrapped
paragraph in Typst, unlike LaTeX's own explicit paragraph break) --
fixed with a trailing backslash to force a real line break without
adding inter-paragraph spacing, verified against a full-year render
(zero typst warnings across all 365 days of 2027, in both templates).
Goldens (test/golden/ordo-2027.typ, test/golden/grid-2027.typ) were
generated through the harness's own View.of_days/Template.render_string
path, via a throwaway generator, NOT through the CLI: the CLI's default
language table differs from the harness's own English-chained-to-Latin
table, confirmed live (diffing CLI output against the harness's own
render showed exactly the expected language divergence and nothing
else) -- the same trap this project has hit before.
make check-templates now typesets both templates with the typst binary,
using the same SKIPPED-and-exit-0 shape the pdflatex/groff blocks
already use when their own tool is absent, verified in both directions:
absent (PATH without typst) skips loudly and exits 0, and a
deliberately corrupted template fails the target with a non-zero exit
and typst's own error text.
|