diff options
Diffstat (limited to 'templates/ef/ordo.tex')
| -rw-r--r-- | templates/ef/ordo.tex | 80 |
1 files changed, 68 insertions, 12 deletions
diff --git a/templates/ef/ordo.tex b/templates/ef/ordo.tex index 4b5bed9..a7fcbb3 100644 --- a/templates/ef/ordo.tex +++ b/templates/ef/ordo.tex @@ -2,11 +2,61 @@ % Build: colitur table --year 2027 --template ordo.tex > ordo.tex && pdflatex ordo.tex && % pdflatex ordo.tex (twice, so \pageref in the table of contents settles) % -% A5, one week per page, each day in a framed box with a colour swatch. Every -% fixed string (headings, the Epistle/Gospel/Commemoration/Week labels) -% comes from the view's term vocabulary rather than being written into this -% file, so a translated booklet needs no template edit -- only a different -% --lang. +% A5, CONTINUOUS: days flow one after another with no forced page break per +% week (Defect 2 -- the original one-week-per-page layout filled roughly +% the top third of every page and cost 65 pages for a year that needed far +% fewer; that requirement is reversed here on purpose, not merely relaxed). +% Structure stays scannable through two header weights instead: every +% week still opens with its existing small header line ({{month_name}} . +% {{term.week}} N), and the month's own FIRST week additionally gets a +% large, ruled banner above that line ({{#first}}...{{/first}}, a real +% view field -- lib/render/view.ml -- not template-side arithmetic, since +% this engine has no way to test "is this the first item" any other way). +% \needspace (a genuine, tiny dependency, not one of the deps this project +% freezes at the OCaml level -- LaTeX packages are a template author's own +% concern) keeps a header from being stranded alone at a page's bottom +% with its first day box pushed to the next one: 29mm covers the month +% banner's own rule+title (~11.5mm) plus the week header below it +% (~5.5mm) plus room for at least one day box (~10mm); 16mm covers just +% the week header plus one day box. Both re-verified against the actual +% typeset output, not derived from theory alone (the task report has the +% before/after page counts and a scan proving no header is ever left +% alone at a page's foot with nothing under it). +% +% \label fires AFTER both \needspace calls below, not before: a \label +% placed before a \needspace that goes on to force a break captures the +% OLD page number (\thepage at the point \label is processed, not where +% its content actually lands) -- a step-stale \pageref found live in an +% early draft's own TOC (week 3 read "page 3" while its own content +% demonstrably started on page 4). Moving the label to fire only once the +% page a week ACTUALLY starts on is already decided fixes it at the +% source, cheaper than a third pdflatex pass, which would not have fixed +% it either (the wrong page number was already committed to the .aux by +% the second pass). +% +% Each day in a framed box with a colour swatch, tightened from an +% earlier draft (top/bottom padding 0.4mm, before skip 0.5mm, \scriptsize +% meta text, rank/colour and the citations on separate lines) for this +% same continuous flow: a full 7-day week already occupies most of an A5 +% page even at reduced size (measured: 55-65% of the text height for a +% typical week, more with commemorations), so simply dropping the forced +% per-week \clearpage only let the year's many PARTIAL boundary weeks +% double up, not full ones -- a real but small saving on its own. Three +% changes together fit a genuinely useful second (often third, on a short +% week) week onto the same page: \fontsize explicitly (not \scriptsize, +% whose 7pt/8.4pt leading is looser than a dense booklet needs), the +% feast name still a clearly-bolder 9pt, and rank/colour folded onto the +% SAME line as the citations rather than a line of its own -- an A5 box +% is far wider than it is tall (roughly 120mm of usable width here), so +% "I classis . albus Epistola ... Evangelium ..." fits with room to +% spare even on Holy Week's own longest citations (measured against the +% rendered output, not assumed; see the task report for the page count +% this bought). +% +% Every fixed string (headings, the Epistle/Gospel/Commemoration/Week +% labels) comes from the view's term vocabulary rather than being written +% into this file, so a translated booklet needs no template edit -- only +% a different --lang. % % The observed day's own display name is a PLAIN resolved string % (View.of_days, Task 5), never a lang-keyed object -- there is no @@ -49,6 +99,7 @@ \usepackage{tcolorbox} \usepackage{fancyhdr} \usepackage[hidelinks]{hyperref} +\usepackage{needspace} \definecolor{licolwhite}{HTML}{FFFFFF} \definecolor{licolred}{HTML}{C1272D} \definecolor{licolgreen}{HTML}{2E7D32} @@ -84,20 +135,25 @@ \clearpage {{#months}} {{#weeks}} +{{#first}} +\needspace{29mm} +\vspace{2mm}\noindent\rule{\linewidth}{1pt}\par\vspace{0.8mm} +{\LARGE\bfseries {{month_name}} {{year}} }\par\vspace{1mm} +{{/first}} +\needspace{16mm} \label{w{{month_num}}-{{num}}} {\bfseries\large {{month_name}} }\hfill{\small {{term.week}} {{num}}}\par\vspace{0.5mm} {{#days}} {{#in_month}} -\begin{tcolorbox}[colback=white,colframe=black!35,boxrule=0.4pt,left=1.6mm,right=1.6mm,top=0.4mm,bottom=0.4mm,before skip=0.5mm,after skip=0mm] -{\bfseries {{dom}} } \;\; {\scriptsize {{weekday}} } \hfill \swatch{licol{{colour}}}\par -{\bfseries {{name}} }\par -{\scriptsize {{rank_name}} \textperiodcentered\ {{colour_name}} }\par -{{#first}}{\scriptsize {{term.epistle}}\ {{first}} }\quad{{/first}}{{#gospel}}{\scriptsize {{term.gospel}}\ {{gospel}} }{{/gospel}} -{{#comms}}\par{\scriptsize {{term.commemoration}}\ {{name}} }{{/comms}} +\begin{tcolorbox}[colback=white,colframe=black!35,boxrule=0.3pt,left=1.4mm,right=1.4mm,top=0.2mm,bottom=0.2mm,before skip=0.2mm,after skip=0mm] +{\bfseries {{dom}} } \;{\fontsize{6.5}{7.4}\selectfont {{weekday}} }\hfill\swatch{licol{{colour}}}\par +{\fontsize{9}{10.2}\selectfont\bfseries {{name}} }\par +{\fontsize{6.5}{7.4}\selectfont {{rank_name}} \textperiodcentered\ {{colour_name}} {{#first}}\quad {{term.epistle}}\ {{first}} {{/first}}{{#gospel}}\quad {{term.gospel}}\ {{gospel}} {{/gospel}}} +{{#comms}}\par{\fontsize{6.5}{7.4}\selectfont {{term.commemoration}}\ {{name}} }{{/comms}} \end{tcolorbox} {{/in_month}} {{/days}} -\clearpage +\vspace{1mm} {{/weeks}} {{/months}} \end{document} |
