summaryrefslogtreecommitdiff
path: root/templates/ef/ordo.ms
blob: 1bf73ef6185f27f568718d3380ab45dbb6888645 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
.\" colitur ordo booklet -- groff ms. flavour: groff
.\" Build: colitur table --year 2027 --template ordo.ms | groff -ms -t -Tpdf -Kutf8 -P-pa5 > ordo.pdf
.\"
.\" The observed day's own display name is a PLAIN resolved string
.\" (View.of_days, Task 5), not a lang-keyed object -- there is no
.\" dotted-la-with-slug-fallback idiom to write here any more; a
.\" commemoration entry carries its own resolved display name too, so a
.\" commemoration line no longer prints the bare slug. Every fixed label
.\" (Ordo, Epistle, Gospel, Commemoration) comes from the view's term
.\" vocabulary rather than being written into this file, so a translated
.\" booklet needs no template edit.
.\"
.\" Defect 2: groff -ms paginates its own way (no per-week \" clearpage \"
.\" this template ever forced), so it mainly needed the same header
.\" treatment as the paginated flavours, for structural consistency -- a
.\" bold week run-in under each month's own .SH, walking months>weeks>days
.\" (the week's own padded, in-month-guarded day list) in place of the
.\" old months>days flat loop over the month's own flat one. The run-in
.\" is its own Roman numeral plus the span of in-month dates it covers
.\" (e.g. Hebdomada I (Ian 1-2)), not the month name again -- the month's
.\" own .SH heading above already establishes it once.
.\"
.\" Density retune (see ordo.tex's own header for the full before/after
.\" account of the same exercise): several separate, independently-
.\" verified fixes below, not one -- the page geometry, the raw-slug
.\" fields, the actual font/leading tightening, a text-column overflow,
.\" a bottom margin that measured 0.13mm on the real page, and a page
.\" break landing inside a week's own header line, each found only by
.\" rendering and reading the real PDF, never by reasoning about the
.\" source alone.
.\"
.\" First, the page itself was never A5. The rebuild that gave every other
.\" flavour a framed A5 booklet (commit feat(templates): the ordo booklet,
.\" rebuilt) never actually set groff's own page geometry for this one --
.\" the default PDF device paper is Letter/A4-ish, roughly twice an A5
.\" page's area, so the old days-per-page figure looked far better than it
.\" was: normalised for area it was already looser than ordo.tex's own
.\" pre-retune 53-page baseline, not merely comparable to it. Fixed the
.\" same way grid.ms already fixes its own device paper size -- a
.\" -P-p<name> flag at the groff invocation (Makefile's check-templates
.\" target), not a change in this file, since that is the one existing,
.\" precedented mechanism this codebase already uses for a groff flavour's
.\" page geometry (grid.ms's own -P-pa4l).
.\"
.\" Second, the day's rank/colour fields were reading the RAW internal
.\" strings (class-2, green), not the resolved Latin display names --
.\" lib/render/view.ml
.\" carries both a raw field and its lang-resolved twin (rank_name,
.\" colour_name) for exactly this reason, and ordo.tex/ordo.typ both
.\" already read the resolved pair. The same rebuild commit's own message
.\" names this defect outright ("the previous version... printed slugs...
.\" was not usable as a printed booklet") -- this file had regressed to
.\" exactly that, undetected because nothing renders groff to a PDF and
.\" reads it in this project's own test suite (Layer paints over the check
.\" -templates target catches a FAILED build, never a wrong but
.\" successfully-produced one). Fixed below by reading the resolved pair
.\" instead of the raw one.
.\" NOTE: this file's own framed-box-and-swatch promise from that same
.\" rebuild commit is STILL not built for this flavour -- groff has no
.\" equivalent of tcolorbox/Typst's block() reached for here, and adding
.\" one is a real feature, not a density fix; out of THIS task's scope,
.\" left for a future one.
.\"
.\" Third, the actual density tightening: an explicit 9pt/10.5 base size
.\" and leading (was groff -ms's own default ~10pt/12pt), a tighter
.\" paragraph distance between day entries, and the citation/commemoration
.\" lines dropped from a relative \s-2 step (whatever the ambient size
.\" happens to be) to an explicit 7pt -- the same "explicit small sizes,
.\" not relative steps off a base" choice ordo.typ made and ordo.tex's own
.\" retune adopted, for the same reason: a relative step silently rides
.\" whatever the surrounding size is, which is exactly what made the
.\" original ordo.tex's own \small/\scriptsize idiom impossible to reason
.\" about.
.\" -P-pa5 (Makefile) only sets the PHYSICAL device page -- ms's own text
.\" area (po/ll, the page offset and line length) still defaults to a
.\" Letter/A4-width column regardless, so a wide line (the .TL title
.\" below is the worst case, but any long citation could do it) overflows
.\" past the real A5 edge unless set explicitly here too; found by
.\" reading the actual rendered PDF, not assumed.
.po 1.4c
.ll 12.4c
.\" .pl (text page length) otherwise stays at ms's OWN pre-A5 default
.\" (it is not derived from -P-pa5 -- that flag only tells the PDF
.\" DEVICE which physical sheet to draw on, groff's own docs are explicit
.\" that .pl is independent of it) -- found by measuring the rendered
.\" PDF directly: the last content line on a full page sat 0.13mm from
.\" the true page edge, not merely tight but genuinely unprintable on a
.\" real press. Matching .pl to the real A5 height is what makes ms's
.\" own FM (footer margin) register -- s.tmac's \n[FM]-from-the-bottom
.\" trap -- land somewhere on the actual page at all; FM alone, tried
.\" first, measurably did nothing (three different values, identical
.\" output) until .pl agreed with reality.
.pl 21c
.nr FM 1.2c
.nr PS 9
.nr VS 10.5
.ps 9
.vs 10.5
.PD 0.3v
.TL
{{term.ordo}} {{year}} \(bu {{rite_name}}
.ps 9
.vs 10.5
{{#months}}.SH
{{name}}
{{#weeks}}.ne 7v
.LP
\s(11\fB{{term.week}} {{num_roman}} ({{month_abbr}} {{first_dom}}{{^single_day}}\(en{{last_dom}}{{/single_day}})\fR\s9
{{#days}}{{#in_month}}.sp 0.25v
.IP "{{dom}}" 4
\fB{{name}}\fR
.br
\s7{{rank_name}} \(bu {{colour_name}}\s9
{{#first}}.br
\s7{{term.epistle}} {{first}}\s9
{{/first}}{{#gospel}}.br
\s7{{term.gospel}} {{gospel}}\s9
{{/gospel}}{{#comms}}.br
\s7{{term.commemoration}} {{name}}\s9
{{/comms}}{{/in_month}}{{/days}}{{/weeks}}{{/months}}