summaryrefslogtreecommitdiff
path: root/templates/ef/ordo.tex
diff options
context:
space:
mode:
Diffstat (limited to 'templates/ef/ordo.tex')
-rw-r--r--templates/ef/ordo.tex112
1 files changed, 91 insertions, 21 deletions
diff --git a/templates/ef/ordo.tex b/templates/ef/ordo.tex
index 6012753..6a298df 100644
--- a/templates/ef/ordo.tex
+++ b/templates/ef/ordo.tex
@@ -1,33 +1,103 @@
% colitur ordo booklet -- LaTeX. flavour: latex
-% Build: colitur table --year 2027 --template ordo.tex > ordo.tex && pdflatex ordo.tex
+% 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)
%
-% Day label falls back to the slug when the day carries no Latin name (most
-% temporal days, and most sanctoral entries, which are Latin-less in the
-% shipped data). The fallback is written as a name-section wrapping a plain
-% var and its inverse, deliberately NOT as a single dotted-path lookup
-% followed by its own inverse: a dotted lookup that misses climbs to the
-% enclosing scope for the WHOLE path, and the month object also carries a
-% same-named key one level up, so the naive form would render the month's
-% own Latin name on every day lacking one, and never fall back at all.
-\documentclass[10pt,twoside]{article}
-\usepackage[a5paper,margin=15mm]{geometry}
+% 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.
+%
+% 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
+% dotted-la-with-slug-fallback idiom to write here at all; a day with no
+% name in the shipped data still resolves to something printable (its slug,
+% under --raw, or the lang table's own miss-echoes-the-key behaviour), so
+% the plain name field alone is always enough.
+%
+% The engine has no parent-path syntax: nested inside a month's own week
+% loop, a bare week-number reference finds the WEEK's own number, and there
+% is no way to reach the enclosing month's from there. That is why each
+% week object carries its own month number and month name fields
+% (lib/render/view.ml, Task 5) -- used throughout below instead of a
+% parent-path reference, which this engine cannot express.
+%
+% This template's own %-comments are plain text to the engine: it has no
+% awareness of LaTeX's comment syntax, and a stray double-brace pair inside
+% one would still be parsed as a tag -- which is why this whole header is
+% deliberately written without ever typing two curly braces next to each
+% other, even to name a field.
+\documentclass[10pt]{article}
+% includehead/includefoot: without them geometry seats the text block at
+% top=/bottom= and fancyhdr then places the running header/footer OUTSIDE
+% that block -- above the top margin and below the bottom one -- which on
+% this page's original top=11mm/bottom=12mm pushed the header partly above
+% the physical page edge (measured: yMin -5.5pt on a 0..595pt page) and the
+% footer to within 1pt of the bottom edge. With includehead/includefoot the
+% header/footer live INSIDE top=/bottom= instead, so headsep/footskip are
+% also set explicitly (3mm/7mm) rather than left at article's defaults
+% (25pt/30pt) -- those defaults alone would still overflow a 10mm margin
+% and, measured, silently added 20 extra pages to the whole booklet by
+% shrinking every day box. \headheight is left at fancyhdr's own default
+% (12pt, confirmed by the log, no "increase \headheight" warning) since a
+% single \small header line fits it without complaint.
+\usepackage[a5paper,top=10mm,bottom=10mm,inner=14mm,outer=10mm,includehead,includefoot,headsep=3mm,footskip=7mm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
+\usepackage{xcolor}
+\usepackage{tikz}
+\usepackage{tcolorbox}
\usepackage{fancyhdr}
-\pagestyle{fancy}
-\fancyhead[C]{ORDO {{year}} \textperiodcentered\ {{rite}}}
+\usepackage[hidelinks]{hyperref}
+\definecolor{licolwhite}{HTML}{FFFFFF}
+\definecolor{licolred}{HTML}{C1272D}
+\definecolor{licolgreen}{HTML}{2E7D32}
+\definecolor{licolviolet}{HTML}{6A1B9A}
+\definecolor{licolrose}{HTML}{E91E8C}
+\definecolor{licolblack}{HTML}{000000}
+% A framed square, always outlined in black regardless of fill -- so white
+% (and, on a black background page, black) still reads as a swatch rather
+% than a gap. tikz (a tcolorbox dependency already) draws the border; xcolor
+% alone cannot outline a filled rule.
+\newcommand{\swatch}[1]{\tikz[baseline=-0.6ex]{\fill[draw=black,line width=0.4pt,fill=#1] (0,0) rectangle (2.4ex,2.4ex);}}
+\pagestyle{fancy}\fancyhf{}
+\fancyhead[C]{\small {{term.ordo}} {{year}} \textperiodcentered\ {{rite}}}
+\fancyfoot[C]{\small\thepage}
+\renewcommand{\headrulewidth}{0.4pt}
\setlength{\parindent}{0pt}
\begin{document}
+
+\begin{center}
+\Large\bfseries {{term.ordo}} {{year}}\\[2pt]
+\normalsize\mdseries {{rite}}
+\end{center}
+\vspace{4mm}
+{\bfseries {{term.contents}}}\par\vspace{2mm}
+\begin{small}
{{#months}}
-\section*{ {{name.la}} }
-{{#days}}
-\textbf{ {{dom}} } \quad {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}}\\
-\small {{rank}} \textperiodcentered\ {{colour}}\\
-{{#first}}\small Ep. {{first}}\quad{{/first}}{{#gospel}}\small Ev. {{gospel}}{{/gospel}}\\
-{{#comms}}\small Com. {{slug}}\\
-{{/comms}}
-\medskip
+\textbf{ {{name}} }\par
+{{#weeks}}\hspace*{4mm}{{term.week}} {{num}}\dotfill\pageref{w{{month_num}}-{{num}}}\par
+{{/weeks}}
+{{/months}}
+\end{small}
+\clearpage
+{{#months}}
+{{#weeks}}
+\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}}
+\end{tcolorbox}
+{{/in_month}}
{{/days}}
+\clearpage
+{{/weeks}}
{{/months}}
\end{document}