From 24de019a3e1d5b9a6d4601bdd65489813baa7e58 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 19 Aug 2026 09:59:47 +0200 Subject: feat(templates): wall calendar grid in LaTeX, groff and HTML Three flavours, not six: a month grid in Markdown or plain text is a worse artefact than the booklet already is, and shipping a template we would not use ourselves is maintenance with no reader. These are the first templates to use weeks and in_month, so this is where the view model earns its keep -- the booklet and the grid come from one model with no second code path. Every cell carries a per-cell 'last' boolean (already in the view). A table row needs a separator BETWEEN cells and the engine deliberately has no 'unless last' construct; the rule is shape the data, not the template. Without it the LaTeX grid emits eight columns for seven cells and pdflatex rejects the file. Day cells resolve their label as {{#name}}{{la}}{{^la}}{{slug}}{{/la}} {{/name}}, never a bare {{name.la}}: the enclosing month object has its own name.la, and the engine's scope lookup falls back outward, so a bare dotted lookup would render the month's own Latin name on every day lacking one -- a wall calendar where every day reads "January". Verified on the goldens: Ianuarius appears exactly once per file, the month heading, never as a day label. --- templates/ef/grid.ms | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 templates/ef/grid.ms (limited to 'templates/ef/grid.ms') diff --git a/templates/ef/grid.ms b/templates/ef/grid.ms new file mode 100644 index 0000000..0ec2fb3 --- /dev/null +++ b/templates/ef/grid.ms @@ -0,0 +1,25 @@ +.\" colitur wall calendar -- groff ms with tbl. flavour: groff +.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf > grid.pdf +.\" +.\" 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) -- see ordo.tex's own comment for why the fallback is +.\" written as a name-section wrapping a plain var and its inverse, rather +.\" than a single dotted lookup and its inverse. +.\" +.\" Every cell also carries a last flag, true on the seventh of its row: tbl +.\" needs the tab separator BETWEEN columns, not after the last one, and the +.\" engine has no unless-last construct, so the flag comes from data. +.TL +Calendarium {{year}} \(bu {{rite}} +{{#months}} +.SH +{{name.la}} +.TS +allbox; +c c c c c c c +l l l l l l l. +Dom Lun Mar Mer Iov Ven Sab +{{#weeks}}{{#days}}{{#in_month}}{{dom}} {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}}{{/in_month}}{{^last}} {{/last}}{{/days}} +{{/weeks}}.TE +{{/months}} -- cgit v1.3 From a9464100bb02d74c90d585f8334f449b1fefa9d7 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 19 Aug 2026 11:35:13 +0200 Subject: fix(templates): grid.ms wall calendar dropped four of seven columns pdftotext -layout of the shipped grid.ms showed only 3-4 of 7 columns and roughly a third of each month's day numbers: tbl's plain columns (no w()) size to their widest single entry and never wrap, so a long fallback slug (some run past 40 characters) forced every column that wide, the table ran far past the page, and whatever fell past the physical edge was gone, not merely ugly. groff exited 0 throughout (warnings, not errors), so make check-templates reported OK on a broken artefact. Fixed both halves. (a) The table now fits: true landscape via gropdf's own -P-pa4l (an in-document Xpapersize=a4l escape was tried and rejected -- it does not rotate the page in this groff), ms's own title macro widened back out after narrowing the line length for the title text (a second, independent way the original lost its width, found by reading s.tmac), and every column rewritten as a genuine tbl text-block (T{/T}, not a plain w() cell -- w() alone does not wrap, confirmed against tbl's own generated troff code) so long, hyphenated slugs wrap at their own hyphens instead of forcing the column wider. (b) check-templates now captures groff's stderr per template and fails the target if it is non-empty, rather than trusting groff's exit code. Verified: 0 warnings (was 12), pdftotext -layout shows all 7 columns and every day number for all 12 months (was 3-4 columns, ~12-23 of each month's day numbers). The golden fixture is regenerated: 0 "{{", 12 month headings, exactly one Ianuarius, and each week's block (now spread across several physical lines by the T{/T} wrap) carries exactly 6 tabs joining its 7 cells. --- Makefile | 19 +- templates/ef/grid.ms | 78 +++- test/golden/grid-2027.ms | 1126 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 1128 insertions(+), 95 deletions(-) (limited to 'templates/ef/grid.ms') diff --git a/Makefile b/Makefile index aa4bce6..d9377df 100644 --- a/Makefile +++ b/Makefile @@ -64,9 +64,22 @@ check-templates: build ## typeset every shipped template (needs pdflatex/groff; else echo "SKIPPED: pdflatex not installed -- LaTeX templates render but are NOT typeset"; fi; \ if command -v groff >/dev/null 2>&1; then \ for t in ordo grid; do \ - opam exec -- dune exec colitur -- table --year 2027 --template templates/ef/$$t.ms > /tmp/$$t.ms && \ - groff -ms -t -Tpdf /tmp/$$t.ms > /tmp/$$t-ms.pdf && \ - echo "groff: $$t.ms OK" || { echo "groff: $$t.ms FAILED"; ok=0; }; \ + gflags=""; \ + [ "$$t" = grid ] && gflags="-P-pa4l"; \ + if opam exec -- dune exec colitur -- table --year 2027 --template templates/ef/$$t.ms \ + > /tmp/$$t.ms 2>/tmp/$$t-render.err; then \ + groff -ms -t -Tpdf $$gflags /tmp/$$t.ms > /tmp/$$t-ms.pdf 2>/tmp/$$t-ms.warnings; \ + if [ -s /tmp/$$t-ms.warnings ]; then \ + echo "groff: $$t.ms FAILED (groff exits 0 on a tbl/troff warning -- this target"; \ + echo " treats ANY stderr output as a failure, since a warning here has meant"; \ + echo " silently lost table columns before):"; \ + cat /tmp/$$t-ms.warnings; ok=0; \ + else \ + echo "groff: $$t.ms OK"; \ + fi; \ + else \ + echo "groff: $$t.ms FAILED (colitur table render):"; cat /tmp/$$t-render.err; ok=0; \ + fi; \ done; \ else echo "SKIPPED: groff not installed -- groff templates render but are NOT typeset"; fi; \ test $$ok -eq 1 diff --git a/templates/ef/grid.ms b/templates/ef/grid.ms index 0ec2fb3..703f46b 100644 --- a/templates/ef/grid.ms +++ b/templates/ef/grid.ms @@ -1,5 +1,67 @@ .\" colitur wall calendar -- groff ms with tbl. flavour: groff -.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf > grid.pdf +.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf -P-pa4l > grid.pdf +.\" +.\" LANDSCAPE, not the ms default portrait: with allbox cells and Latin-less +.\" days falling back to the raw slug (some fallback slugs run past 40 +.\" characters, e.g. "commemoration-of-the-baptism-of-the-lord"), seven +.\" columns of real content do not fit a portrait line length at any +.\" reasonable point size. "-P-pa4l" is gropdf's own landscape papersize +.\" (groff_font(5): a trailing "l" on a papersize name swaps width/height at +.\" the OUTPUT DEVICE level) -- it must be a command-line flag, not a request +.\" inside this file: an in-document "\X'papersize=a4l'" escape was tried and +.\" rejected (it does not actually rotate gropdf's page in this groff, and +.\" throws diagnostics doing it). ".pl"/".po"/".ll" below independently widen +.\" TROFF's OWN idea of the page to match -- ".pl"/".ll" are requests, unlike +.\" the device's own physical page size, and are not implied by "-P-pa4l" -- +.\" so both halves are needed, or one side clips the other. +.\" +.\" ".TL" (the ms title macro, s.tmac) ITSELF narrows the line length to +.\" 5/6 of register "LL" for the title text, and never widens it back +.\" afterward -- there is no third place in s.tmac that ever does. Setting +.\" only the primitive ".ll" before ".TL" is therefore not enough: ".TL" +.\" overwrites it and every table for the rest of the document inherits +.\" the NARROWED value, silently, which is a second, independent way the +.\" original template lost its width (found by reading s.tmac itself, not +.\" guessed). Fixed by setting register "LL" (what ".TL" actually reads) +.\" and re-asserting ".ll" once more, explicitly, right after the title. +.\" +.\" Every column is a FIXED-WIDTH, WRAPPING tbl "w()" block, not a plain "l": +.\" without "w()" tbl sizes a column to its single widest entry and does NOT +.\" wrap, so a 40-character slug forces every column that wide -- seven of +.\" them together run far past any line length, tbl warns "table wider than +.\" line length", and whatever falls past the physical page edge is not a +.\" rendering nicety missing, it is GONE: `pdftotext -layout` (and a printed +.\" page) show only however many columns fit, not all seven. "w()" makes +.\" each column wrap its own text block instead, the same fix grid.tex +.\" already uses via LaTeX's "p{2.6cm}" (see that file's own comment) -- +.\" this is the tbl-native equivalent, not a different design. +.\" +.\" "w()" alone is NOT sufficient, and this is the part that actually cost +.\" the time: tbl only wraps a cell as a text block when its content is +.\" delimited by "T{"/"T}" on their own lines. A PLAIN cell entry in a +.\" "w()" column (what the first attempt at this fix used) is never +.\" wrapped at all -- tbl just widens the column past the requested "w()" +.\" to fit the single longest unbroken entry, exactly reproducing the +.\" original bug. Confirmed directly against tbl's own generated troff +.\" code (`tbl grid.ms`, grep "3w0 .*>?"): every column width register is +.\" `max(w(), \w'cell text')`, so an un-delimited 40-character cell always +.\" wins that max. Every day cell below is therefore its own "T{"/"T}" +.\" block; the closing "T}" and the following column's opening "T{" share +.\" one line with the tab between them (the standard tbl idiom: "T} +.\" T{"). The template writes that as "{{#last}}T}{{/last}}{{^last}}T} +.\" {{/last}}" rather than "T}{{^last}}{{/last}}T{" so that no +.\" literal "T{" ever sits directly against a "{{"/"}}" delimiter in the +.\" source -- three braces in a row there parses as a malformed tag, not +.\" as literal text followed by a tag. +.\" +.\" ".na" (no-adjust, ragged right) is required alongside the wrap, not +.\" cosmetic: a hyphenated slug like "commemoration-of-the-baptism-of-the- +.\" lord" DOES break at its own hyphens once wrapping is active (verified: +.\" troff's filler treats an ASCII hyphen as a break point), but adjusted +.\" (justified) fill in a column this narrow cannot always stretch such a +.\" line to the full measure and troff warns "cannot adjust line" for +.\" every such row -- another warning `make check-templates` must fail on. +.\" Ragged-right removes the stretching, not the wrapping. .\" .\" 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 @@ -10,16 +72,24 @@ .\" Every cell also carries a last flag, true on the seventh of its row: tbl .\" needs the tab separator BETWEEN columns, not after the last one, and the .\" engine has no unless-last construct, so the flag comes from data. +.pl 8.27i +.po 0.3i +.nr LL 10.9i +.ll \n[LL]u .TL Calendarium {{year}} \(bu {{rite}} +.ll \n[LL]u +.na {{#months}} .SH {{name.la}} .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab -{{#weeks}}{{#days}}{{#in_month}}{{dom}} {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}}{{/in_month}}{{^last}} {{/last}}{{/days}} +{{#weeks}}{{#days}}T{ +{{#in_month}}\fB{{dom}}\fP \s-2{{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}}\s+2{{/in_month}} +{{#last}}T}{{/last}}{{^last}}T} {{/last}}{{/days}} {{/weeks}}.TE {{/months}} diff --git a/test/golden/grid-2027.ms b/test/golden/grid-2027.ms index 785d59a..5668b86 100644 --- a/test/golden/grid-2027.ms +++ b/test/golden/grid-2027.ms @@ -1,5 +1,67 @@ .\" colitur wall calendar -- groff ms with tbl. flavour: groff -.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf > grid.pdf +.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf -P-pa4l > grid.pdf +.\" +.\" LANDSCAPE, not the ms default portrait: with allbox cells and Latin-less +.\" days falling back to the raw slug (some fallback slugs run past 40 +.\" characters, e.g. "commemoration-of-the-baptism-of-the-lord"), seven +.\" columns of real content do not fit a portrait line length at any +.\" reasonable point size. "-P-pa4l" is gropdf's own landscape papersize +.\" (groff_font(5): a trailing "l" on a papersize name swaps width/height at +.\" the OUTPUT DEVICE level) -- it must be a command-line flag, not a request +.\" inside this file: an in-document "\X'papersize=a4l'" escape was tried and +.\" rejected (it does not actually rotate gropdf's page in this groff, and +.\" throws diagnostics doing it). ".pl"/".po"/".ll" below independently widen +.\" TROFF's OWN idea of the page to match -- ".pl"/".ll" are requests, unlike +.\" the device's own physical page size, and are not implied by "-P-pa4l" -- +.\" so both halves are needed, or one side clips the other. +.\" +.\" ".TL" (the ms title macro, s.tmac) ITSELF narrows the line length to +.\" 5/6 of register "LL" for the title text, and never widens it back +.\" afterward -- there is no third place in s.tmac that ever does. Setting +.\" only the primitive ".ll" before ".TL" is therefore not enough: ".TL" +.\" overwrites it and every table for the rest of the document inherits +.\" the NARROWED value, silently, which is a second, independent way the +.\" original template lost its width (found by reading s.tmac itself, not +.\" guessed). Fixed by setting register "LL" (what ".TL" actually reads) +.\" and re-asserting ".ll" once more, explicitly, right after the title. +.\" +.\" Every column is a FIXED-WIDTH, WRAPPING tbl "w()" block, not a plain "l": +.\" without "w()" tbl sizes a column to its single widest entry and does NOT +.\" wrap, so a 40-character slug forces every column that wide -- seven of +.\" them together run far past any line length, tbl warns "table wider than +.\" line length", and whatever falls past the physical page edge is not a +.\" rendering nicety missing, it is GONE: `pdftotext -layout` (and a printed +.\" page) show only however many columns fit, not all seven. "w()" makes +.\" each column wrap its own text block instead, the same fix grid.tex +.\" already uses via LaTeX's "p{2.6cm}" (see that file's own comment) -- +.\" this is the tbl-native equivalent, not a different design. +.\" +.\" "w()" alone is NOT sufficient, and this is the part that actually cost +.\" the time: tbl only wraps a cell as a text block when its content is +.\" delimited by "T{"/"T}" on their own lines. A PLAIN cell entry in a +.\" "w()" column (what the first attempt at this fix used) is never +.\" wrapped at all -- tbl just widens the column past the requested "w()" +.\" to fit the single longest unbroken entry, exactly reproducing the +.\" original bug. Confirmed directly against tbl's own generated troff +.\" code (`tbl grid.ms`, grep "3w0 .*>?"): every column width register is +.\" `max(w(), \w'cell text')`, so an un-delimited 40-character cell always +.\" wins that max. Every day cell below is therefore its own "T{"/"T}" +.\" block; the closing "T}" and the following column's opening "T{" share +.\" one line with the tab between them (the standard tbl idiom: "T} +.\" T{"). The template writes that as "T} +.\" " rather than "T}T{" so that no +.\" literal "T{" ever sits directly against a "" delimiter in the +.\" source -- three braces in a row there parses as a malformed tag, not +.\" as literal text followed by a tag. +.\" +.\" ".na" (no-adjust, ragged right) is required alongside the wrap, not +.\" cosmetic: a hyphenated slug like "commemoration-of-the-baptism-of-the- +.\" lord" DOES break at its own hyphens once wrapping is active (verified: +.\" troff's filler treats an ASCII hyphen as a break point), but adjusted +.\" (justified) fill in a column this narrow cannot always stretch such a +.\" line to the full measure and troff warns "cannot adjust line" for +.\" every such row -- another warning `make check-templates` must fail on. +.\" Ragged-right removes the stretching, not the wrapping. .\" .\" 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 @@ -10,177 +72,1065 @@ .\" Every cell also carries a last flag, true on the seventh of its row: tbl .\" needs the tab separator BETWEEN columns, not after the last one, and the .\" engine has no unless-last construct, so the flag comes from data. +.pl 8.27i +.po 0.3i +.nr LL 10.9i +.ll \n[LL]u .TL Calendarium 2027 \(bu ef +.ll \n[LL]u +.na .SH Ianuarius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-circumcision 2 Officium sanctae Mariae in sabbato -3 Sanctissimi Nominis Iesu 4 ef-christmas-1-monday 5 ef-christmas-1-tuesday 6 ef-epiphany 7 ef-christmas-2-thursday 8 ef-christmas-2-friday 9 Officium sanctae Mariae in sabbato -10 Sanctae Familiae Iesu, Mariae, Ioseph 11 ef-time-after-epiphany-1-monday 12 ef-time-after-epiphany-1-tuesday 13 commemoration-of-the-baptism-of-the-lord 14 hilary 15 paul-the-first-hermit 16 marcellus-i -17 ef-time-after-epiphany-sunday-2 18 ef-time-after-epiphany-2-monday 19 ef-time-after-epiphany-2-tuesday 20 sts-fabian-sebastian 21 agnes 22 sts-vincent-anastasius 23 raymond-of-pe-afort -24 ef-septuagesima-sunday-1 25 conversion-of-st-paul 26 polycarp 27 john-chrysostom 28 peter-nolasco 29 francis-de-sales 30 martina -31 ef-septuagesima-sunday-2 +T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2ef-circumcision\s+2 +T} T{ +\fB2\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB3\fP \s-2Sanctissimi Nominis Iesu\s+2 +T} T{ +\fB4\fP \s-2ef-christmas-1-monday\s+2 +T} T{ +\fB5\fP \s-2ef-christmas-1-tuesday\s+2 +T} T{ +\fB6\fP \s-2ef-epiphany\s+2 +T} T{ +\fB7\fP \s-2ef-christmas-2-thursday\s+2 +T} T{ +\fB8\fP \s-2ef-christmas-2-friday\s+2 +T} T{ +\fB9\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB10\fP \s-2Sanctae Familiae Iesu, Mariae, Ioseph\s+2 +T} T{ +\fB11\fP \s-2ef-time-after-epiphany-1-monday\s+2 +T} T{ +\fB12\fP \s-2ef-time-after-epiphany-1-tuesday\s+2 +T} T{ +\fB13\fP \s-2commemoration-of-the-baptism-of-the-lord\s+2 +T} T{ +\fB14\fP \s-2hilary\s+2 +T} T{ +\fB15\fP \s-2paul-the-first-hermit\s+2 +T} T{ +\fB16\fP \s-2marcellus-i\s+2 +T} +T{ +\fB17\fP \s-2ef-time-after-epiphany-sunday-2\s+2 +T} T{ +\fB18\fP \s-2ef-time-after-epiphany-2-monday\s+2 +T} T{ +\fB19\fP \s-2ef-time-after-epiphany-2-tuesday\s+2 +T} T{ +\fB20\fP \s-2sts-fabian-sebastian\s+2 +T} T{ +\fB21\fP \s-2agnes\s+2 +T} T{ +\fB22\fP \s-2sts-vincent-anastasius\s+2 +T} T{ +\fB23\fP \s-2raymond-of-pe-afort\s+2 +T} +T{ +\fB24\fP \s-2ef-septuagesima-sunday-1\s+2 +T} T{ +\fB25\fP \s-2conversion-of-st-paul\s+2 +T} T{ +\fB26\fP \s-2polycarp\s+2 +T} T{ +\fB27\fP \s-2john-chrysostom\s+2 +T} T{ +\fB28\fP \s-2peter-nolasco\s+2 +T} T{ +\fB29\fP \s-2francis-de-sales\s+2 +T} T{ +\fB30\fP \s-2martina\s+2 +T} +T{ +\fB31\fP \s-2ef-septuagesima-sunday-2\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH Februarius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ignatius-of-antioch 2 purification-of-the-blessed-virgin-mary 3 ef-septuagesima-2-wednesday 4 andrew-corsini 5 agatha 6 titus -7 ef-septuagesima-sunday-3 8 john-of-matha 9 cyril-of-alexandria 10 ef-ash-wednesday 11 ef-lent-after-ashes-thursday 12 ef-lent-after-ashes-friday 13 ef-lent-after-ashes-saturday -14 ef-lent-sunday-1 15 ef-lent-1-monday 16 ef-lent-1-tuesday 17 ef-lent-ember-wed 18 ef-lent-1-thursday 19 ef-lent-ember-fri 20 ef-lent-ember-sat -21 ef-lent-sunday-2 22 chair-of-st-peter 23 ef-lent-2-tuesday 24 matthias 25 ef-lent-2-thursday 26 ef-lent-2-friday 27 ef-lent-2-saturday -28 ef-lent-sunday-3 +T{ + +T} T{ +\fB1\fP \s-2ignatius-of-antioch\s+2 +T} T{ +\fB2\fP \s-2purification-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB3\fP \s-2ef-septuagesima-2-wednesday\s+2 +T} T{ +\fB4\fP \s-2andrew-corsini\s+2 +T} T{ +\fB5\fP \s-2agatha\s+2 +T} T{ +\fB6\fP \s-2titus\s+2 +T} +T{ +\fB7\fP \s-2ef-septuagesima-sunday-3\s+2 +T} T{ +\fB8\fP \s-2john-of-matha\s+2 +T} T{ +\fB9\fP \s-2cyril-of-alexandria\s+2 +T} T{ +\fB10\fP \s-2ef-ash-wednesday\s+2 +T} T{ +\fB11\fP \s-2ef-lent-after-ashes-thursday\s+2 +T} T{ +\fB12\fP \s-2ef-lent-after-ashes-friday\s+2 +T} T{ +\fB13\fP \s-2ef-lent-after-ashes-saturday\s+2 +T} +T{ +\fB14\fP \s-2ef-lent-sunday-1\s+2 +T} T{ +\fB15\fP \s-2ef-lent-1-monday\s+2 +T} T{ +\fB16\fP \s-2ef-lent-1-tuesday\s+2 +T} T{ +\fB17\fP \s-2ef-lent-ember-wed\s+2 +T} T{ +\fB18\fP \s-2ef-lent-1-thursday\s+2 +T} T{ +\fB19\fP \s-2ef-lent-ember-fri\s+2 +T} T{ +\fB20\fP \s-2ef-lent-ember-sat\s+2 +T} +T{ +\fB21\fP \s-2ef-lent-sunday-2\s+2 +T} T{ +\fB22\fP \s-2chair-of-st-peter\s+2 +T} T{ +\fB23\fP \s-2ef-lent-2-tuesday\s+2 +T} T{ +\fB24\fP \s-2matthias\s+2 +T} T{ +\fB25\fP \s-2ef-lent-2-thursday\s+2 +T} T{ +\fB26\fP \s-2ef-lent-2-friday\s+2 +T} T{ +\fB27\fP \s-2ef-lent-2-saturday\s+2 +T} +T{ +\fB28\fP \s-2ef-lent-sunday-3\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH Martius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-lent-3-monday 2 ef-lent-3-tuesday 3 ef-lent-3-wednesday 4 ef-lent-3-thursday 5 ef-lent-3-friday 6 ef-lent-3-saturday -7 ef-lent-sunday-4 8 ef-lent-4-monday 9 ef-lent-4-tuesday 10 ef-lent-4-wednesday 11 ef-lent-4-thursday 12 ef-lent-4-friday 13 ef-lent-4-saturday -14 ef-passion-sunday 15 ef-passiontide-1-monday 16 ef-passiontide-1-tuesday 17 ef-passiontide-1-wednesday 18 ef-passiontide-1-thursday 19 joseph-spouse-of-the-bl-virgin-mary 20 ef-passiontide-1-saturday -21 ef-palm-sunday 22 ef-passiontide-2-monday 23 ef-passiontide-2-tuesday 24 ef-passiontide-2-wednesday 25 Feria V in Cena Domini 26 Feria VI in Passione et Morte Domini 27 Sabbato sancto -28 ef-easter-sunday 29 ef-easter-1-monday 30 ef-easter-1-tuesday 31 ef-easter-1-wednesday +T{ + +T} T{ +\fB1\fP \s-2ef-lent-3-monday\s+2 +T} T{ +\fB2\fP \s-2ef-lent-3-tuesday\s+2 +T} T{ +\fB3\fP \s-2ef-lent-3-wednesday\s+2 +T} T{ +\fB4\fP \s-2ef-lent-3-thursday\s+2 +T} T{ +\fB5\fP \s-2ef-lent-3-friday\s+2 +T} T{ +\fB6\fP \s-2ef-lent-3-saturday\s+2 +T} +T{ +\fB7\fP \s-2ef-lent-sunday-4\s+2 +T} T{ +\fB8\fP \s-2ef-lent-4-monday\s+2 +T} T{ +\fB9\fP \s-2ef-lent-4-tuesday\s+2 +T} T{ +\fB10\fP \s-2ef-lent-4-wednesday\s+2 +T} T{ +\fB11\fP \s-2ef-lent-4-thursday\s+2 +T} T{ +\fB12\fP \s-2ef-lent-4-friday\s+2 +T} T{ +\fB13\fP \s-2ef-lent-4-saturday\s+2 +T} +T{ +\fB14\fP \s-2ef-passion-sunday\s+2 +T} T{ +\fB15\fP \s-2ef-passiontide-1-monday\s+2 +T} T{ +\fB16\fP \s-2ef-passiontide-1-tuesday\s+2 +T} T{ +\fB17\fP \s-2ef-passiontide-1-wednesday\s+2 +T} T{ +\fB18\fP \s-2ef-passiontide-1-thursday\s+2 +T} T{ +\fB19\fP \s-2joseph-spouse-of-the-bl-virgin-mary\s+2 +T} T{ +\fB20\fP \s-2ef-passiontide-1-saturday\s+2 +T} +T{ +\fB21\fP \s-2ef-palm-sunday\s+2 +T} T{ +\fB22\fP \s-2ef-passiontide-2-monday\s+2 +T} T{ +\fB23\fP \s-2ef-passiontide-2-tuesday\s+2 +T} T{ +\fB24\fP \s-2ef-passiontide-2-wednesday\s+2 +T} T{ +\fB25\fP \s-2Feria V in Cena Domini\s+2 +T} T{ +\fB26\fP \s-2Feria VI in Passione et Morte Domini\s+2 +T} T{ +\fB27\fP \s-2Sabbato sancto\s+2 +T} +T{ +\fB28\fP \s-2ef-easter-sunday\s+2 +T} T{ +\fB29\fP \s-2ef-easter-1-monday\s+2 +T} T{ +\fB30\fP \s-2ef-easter-1-tuesday\s+2 +T} T{ +\fB31\fP \s-2ef-easter-1-wednesday\s+2 +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH Aprilis .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-easter-1-thursday 2 ef-easter-1-friday 3 ef-easter-1-saturday -4 ef-low-sunday 5 annunciation-of-the-blessed-virgin-mary 6 ef-easter-2-tuesday 7 ef-easter-2-wednesday 8 ef-easter-2-thursday 9 ef-easter-2-friday 10 Officium sanctae Mariae in sabbato -11 ef-easter-sunday-3 12 ef-easter-3-monday 13 hermenegild 14 justin 15 ef-easter-3-thursday 16 ef-easter-3-friday 17 Officium sanctae Mariae in sabbato -18 ef-easter-sunday-4 19 ef-easter-4-monday 20 ef-easter-4-tuesday 21 anselm 22 sts-soter-caius 23 ef-easter-4-friday 24 fidelis-of-sigmaringen -25 ef-easter-sunday-5 26 sts-cletus-marcellinus 27 peter-canisius 28 paul-of-the-cross 29 peter-of-verona 30 catherine-of-siena +T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2ef-easter-1-thursday\s+2 +T} T{ +\fB2\fP \s-2ef-easter-1-friday\s+2 +T} T{ +\fB3\fP \s-2ef-easter-1-saturday\s+2 +T} +T{ +\fB4\fP \s-2ef-low-sunday\s+2 +T} T{ +\fB5\fP \s-2annunciation-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB6\fP \s-2ef-easter-2-tuesday\s+2 +T} T{ +\fB7\fP \s-2ef-easter-2-wednesday\s+2 +T} T{ +\fB8\fP \s-2ef-easter-2-thursday\s+2 +T} T{ +\fB9\fP \s-2ef-easter-2-friday\s+2 +T} T{ +\fB10\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB11\fP \s-2ef-easter-sunday-3\s+2 +T} T{ +\fB12\fP \s-2ef-easter-3-monday\s+2 +T} T{ +\fB13\fP \s-2hermenegild\s+2 +T} T{ +\fB14\fP \s-2justin\s+2 +T} T{ +\fB15\fP \s-2ef-easter-3-thursday\s+2 +T} T{ +\fB16\fP \s-2ef-easter-3-friday\s+2 +T} T{ +\fB17\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB18\fP \s-2ef-easter-sunday-4\s+2 +T} T{ +\fB19\fP \s-2ef-easter-4-monday\s+2 +T} T{ +\fB20\fP \s-2ef-easter-4-tuesday\s+2 +T} T{ +\fB21\fP \s-2anselm\s+2 +T} T{ +\fB22\fP \s-2sts-soter-caius\s+2 +T} T{ +\fB23\fP \s-2ef-easter-4-friday\s+2 +T} T{ +\fB24\fP \s-2fidelis-of-sigmaringen\s+2 +T} +T{ +\fB25\fP \s-2ef-easter-sunday-5\s+2 +T} T{ +\fB26\fP \s-2sts-cletus-marcellinus\s+2 +T} T{ +\fB27\fP \s-2peter-canisius\s+2 +T} T{ +\fB28\fP \s-2paul-of-the-cross\s+2 +T} T{ +\fB29\fP \s-2peter-of-verona\s+2 +T} T{ +\fB30\fP \s-2catherine-of-siena\s+2 +T} T{ + +T} .TE .SH Maius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 joseph-the-workman -2 ef-easter-sunday-6 3 ef-rogation-monday 4 monica 5 ef-ascension-vigil 6 ef-ascension 7 stanislaus 8 Officium sanctae Mariae in sabbato -9 ef-easter-sunday-7 10 antoninus 11 sts-philip-james 12 sts-nereus-achilleus-domitilla-pancras 13 robert-bellarmine 14 ef-easter-7-friday 15 ef-pentecost-vigil -16 ef-pentecost 17 ef-easter-8-monday 18 ef-easter-8-tuesday 19 ef-pentecost-ember-wed 20 ef-easter-8-thursday 21 ef-pentecost-ember-fri 22 ef-pentecost-ember-sat -23 ef-trinity 24 ef-time-after-pentecost-1-monday 25 gregory-vii 26 philip-neri 27 ef-corpus-christi 28 augustine-of-canterbury 29 mary-magdalene-de-pazzi -30 ef-time-after-pentecost-sunday-2 31 queenship-of-the-blessed-virgin-mary +T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2joseph-the-workman\s+2 +T} +T{ +\fB2\fP \s-2ef-easter-sunday-6\s+2 +T} T{ +\fB3\fP \s-2ef-rogation-monday\s+2 +T} T{ +\fB4\fP \s-2monica\s+2 +T} T{ +\fB5\fP \s-2ef-ascension-vigil\s+2 +T} T{ +\fB6\fP \s-2ef-ascension\s+2 +T} T{ +\fB7\fP \s-2stanislaus\s+2 +T} T{ +\fB8\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB9\fP \s-2ef-easter-sunday-7\s+2 +T} T{ +\fB10\fP \s-2antoninus\s+2 +T} T{ +\fB11\fP \s-2sts-philip-james\s+2 +T} T{ +\fB12\fP \s-2sts-nereus-achilleus-domitilla-pancras\s+2 +T} T{ +\fB13\fP \s-2robert-bellarmine\s+2 +T} T{ +\fB14\fP \s-2ef-easter-7-friday\s+2 +T} T{ +\fB15\fP \s-2ef-pentecost-vigil\s+2 +T} +T{ +\fB16\fP \s-2ef-pentecost\s+2 +T} T{ +\fB17\fP \s-2ef-easter-8-monday\s+2 +T} T{ +\fB18\fP \s-2ef-easter-8-tuesday\s+2 +T} T{ +\fB19\fP \s-2ef-pentecost-ember-wed\s+2 +T} T{ +\fB20\fP \s-2ef-easter-8-thursday\s+2 +T} T{ +\fB21\fP \s-2ef-pentecost-ember-fri\s+2 +T} T{ +\fB22\fP \s-2ef-pentecost-ember-sat\s+2 +T} +T{ +\fB23\fP \s-2ef-trinity\s+2 +T} T{ +\fB24\fP \s-2ef-time-after-pentecost-1-monday\s+2 +T} T{ +\fB25\fP \s-2gregory-vii\s+2 +T} T{ +\fB26\fP \s-2philip-neri\s+2 +T} T{ +\fB27\fP \s-2ef-corpus-christi\s+2 +T} T{ +\fB28\fP \s-2augustine-of-canterbury\s+2 +T} T{ +\fB29\fP \s-2mary-magdalene-de-pazzi\s+2 +T} +T{ +\fB30\fP \s-2ef-time-after-pentecost-sunday-2\s+2 +T} T{ +\fB31\fP \s-2queenship-of-the-blessed-virgin-mary\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH Iunius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 angela-merici 2 ef-time-after-pentecost-2-wednesday 3 ef-time-after-pentecost-2-thursday 4 ef-sacred-heart 5 boniface -6 ef-time-after-pentecost-sunday-3 7 ef-time-after-pentecost-3-monday 8 ef-time-after-pentecost-3-tuesday 9 ef-time-after-pentecost-3-wednesday 10 margaret-of-scotland 11 barnabas 12 john-of-san-fecundo -13 ef-time-after-pentecost-sunday-4 14 basil-the-great 15 ef-time-after-pentecost-4-tuesday 16 ef-time-after-pentecost-4-wednesday 17 gregory-barbarigo 18 ephrem-of-syria 19 julia-of-falconieri -20 ef-time-after-pentecost-sunday-5 21 aloysius-gongzaga 22 paulinus-of-nola 23 vigil-of-the-nativity-of-st-john-the-baptist 24 nativity-of-st-john-the-baptist 25 william 26 sts-john-paul -27 ef-time-after-pentecost-sunday-6 28 vigil-of-sts-peter-paul 29 sts-peter-paul 30 in-commemoratione-sancti-pauli-apostoli +T{ + +T} T{ + +T} T{ +\fB1\fP \s-2angela-merici\s+2 +T} T{ +\fB2\fP \s-2ef-time-after-pentecost-2-wednesday\s+2 +T} T{ +\fB3\fP \s-2ef-time-after-pentecost-2-thursday\s+2 +T} T{ +\fB4\fP \s-2ef-sacred-heart\s+2 +T} T{ +\fB5\fP \s-2boniface\s+2 +T} +T{ +\fB6\fP \s-2ef-time-after-pentecost-sunday-3\s+2 +T} T{ +\fB7\fP \s-2ef-time-after-pentecost-3-monday\s+2 +T} T{ +\fB8\fP \s-2ef-time-after-pentecost-3-tuesday\s+2 +T} T{ +\fB9\fP \s-2ef-time-after-pentecost-3-wednesday\s+2 +T} T{ +\fB10\fP \s-2margaret-of-scotland\s+2 +T} T{ +\fB11\fP \s-2barnabas\s+2 +T} T{ +\fB12\fP \s-2john-of-san-fecundo\s+2 +T} +T{ +\fB13\fP \s-2ef-time-after-pentecost-sunday-4\s+2 +T} T{ +\fB14\fP \s-2basil-the-great\s+2 +T} T{ +\fB15\fP \s-2ef-time-after-pentecost-4-tuesday\s+2 +T} T{ +\fB16\fP \s-2ef-time-after-pentecost-4-wednesday\s+2 +T} T{ +\fB17\fP \s-2gregory-barbarigo\s+2 +T} T{ +\fB18\fP \s-2ephrem-of-syria\s+2 +T} T{ +\fB19\fP \s-2julia-of-falconieri\s+2 +T} +T{ +\fB20\fP \s-2ef-time-after-pentecost-sunday-5\s+2 +T} T{ +\fB21\fP \s-2aloysius-gongzaga\s+2 +T} T{ +\fB22\fP \s-2paulinus-of-nola\s+2 +T} T{ +\fB23\fP \s-2vigil-of-the-nativity-of-st-john-the-baptist\s+2 +T} T{ +\fB24\fP \s-2nativity-of-st-john-the-baptist\s+2 +T} T{ +\fB25\fP \s-2william\s+2 +T} T{ +\fB26\fP \s-2sts-john-paul\s+2 +T} +T{ +\fB27\fP \s-2ef-time-after-pentecost-sunday-6\s+2 +T} T{ +\fB28\fP \s-2vigil-of-sts-peter-paul\s+2 +T} T{ +\fB29\fP \s-2sts-peter-paul\s+2 +T} T{ +\fB30\fP \s-2in-commemoratione-sancti-pauli-apostoli\s+2 +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH Iulius .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 precious-blood-of-our-lord-jesus-christ 2 visitation-of-the-blessed-virgin-mary 3 irenaeus -4 ef-time-after-pentecost-sunday-7 5 anthony-mary-zaccariah 6 ef-time-after-pentecost-7-tuesday 7 sts-cyril-methodius 8 elizabeth-of-portugal 9 ef-time-after-pentecost-7-friday 10 seven-holy-brothers-and-sts-rufina-secunda -11 ef-time-after-pentecost-sunday-8 12 john-gualbert 13 ef-time-after-pentecost-8-tuesday 14 bonaventure 15 henry-the-emperor 16 ef-time-after-pentecost-8-friday 17 Officium sanctae Mariae in sabbato -18 ef-time-after-pentecost-sunday-9 19 vincent-de-paul 20 jerome-emiliani 21 laurence-of-brindisi 22 mary-magdalene 23 apollinaris 24 Officium sanctae Mariae in sabbato -25 ef-time-after-pentecost-sunday-10 26 anne-mother-of-the-blessed-virgin 27 ef-time-after-pentecost-10-tuesday 28 sts-nazarius-celsus-st-victor-i-st-innocent-i 29 martha 30 ef-time-after-pentecost-10-friday 31 ignatius-loyola +T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2precious-blood-of-our-lord-jesus-christ\s+2 +T} T{ +\fB2\fP \s-2visitation-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB3\fP \s-2irenaeus\s+2 +T} +T{ +\fB4\fP \s-2ef-time-after-pentecost-sunday-7\s+2 +T} T{ +\fB5\fP \s-2anthony-mary-zaccariah\s+2 +T} T{ +\fB6\fP \s-2ef-time-after-pentecost-7-tuesday\s+2 +T} T{ +\fB7\fP \s-2sts-cyril-methodius\s+2 +T} T{ +\fB8\fP \s-2elizabeth-of-portugal\s+2 +T} T{ +\fB9\fP \s-2ef-time-after-pentecost-7-friday\s+2 +T} T{ +\fB10\fP \s-2seven-holy-brothers-and-sts-rufina-secunda\s+2 +T} +T{ +\fB11\fP \s-2ef-time-after-pentecost-sunday-8\s+2 +T} T{ +\fB12\fP \s-2john-gualbert\s+2 +T} T{ +\fB13\fP \s-2ef-time-after-pentecost-8-tuesday\s+2 +T} T{ +\fB14\fP \s-2bonaventure\s+2 +T} T{ +\fB15\fP \s-2henry-the-emperor\s+2 +T} T{ +\fB16\fP \s-2ef-time-after-pentecost-8-friday\s+2 +T} T{ +\fB17\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB18\fP \s-2ef-time-after-pentecost-sunday-9\s+2 +T} T{ +\fB19\fP \s-2vincent-de-paul\s+2 +T} T{ +\fB20\fP \s-2jerome-emiliani\s+2 +T} T{ +\fB21\fP \s-2laurence-of-brindisi\s+2 +T} T{ +\fB22\fP \s-2mary-magdalene\s+2 +T} T{ +\fB23\fP \s-2apollinaris\s+2 +T} T{ +\fB24\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB25\fP \s-2ef-time-after-pentecost-sunday-10\s+2 +T} T{ +\fB26\fP \s-2anne-mother-of-the-blessed-virgin\s+2 +T} T{ +\fB27\fP \s-2ef-time-after-pentecost-10-tuesday\s+2 +T} T{ +\fB28\fP \s-2sts-nazarius-celsus-st-victor-i-st-innocent-i\s+2 +T} T{ +\fB29\fP \s-2martha\s+2 +T} T{ +\fB30\fP \s-2ef-time-after-pentecost-10-friday\s+2 +T} T{ +\fB31\fP \s-2ignatius-loyola\s+2 +T} .TE .SH Augustus .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab -1 ef-time-after-pentecost-sunday-11 2 alphonsus-liguori 3 ef-time-after-pentecost-11-tuesday 4 dominic 5 dedication-of-the-basilica-of-st-mary-major 6 transfiguration-of-our-lord 7 cajetan -8 ef-time-after-pentecost-sunday-12 9 vigil-of-st-lawrence 10 lawrence 11 ef-time-after-pentecost-12-wednesday 12 clare 13 ef-time-after-pentecost-12-friday 14 vigil-of-the-assumption -15 assumption-of-the-blessed-virgin-mary 16 joachim-father-of-the-blessed-virgin 17 hyacinth 18 ef-time-after-pentecost-13-wednesday 19 john-eudes 20 bernard-of-clairvaux 21 jane-frances-de-chantal -22 ef-time-after-pentecost-sunday-14 23 philip-benizi 24 bartholomew 25 louis-ix 26 ef-time-after-pentecost-14-thursday 27 joseph-calasance 28 augustine -29 ef-time-after-pentecost-sunday-15 30 rose-of-lima 31 raymond-nonnatus +T{ +\fB1\fP \s-2ef-time-after-pentecost-sunday-11\s+2 +T} T{ +\fB2\fP \s-2alphonsus-liguori\s+2 +T} T{ +\fB3\fP \s-2ef-time-after-pentecost-11-tuesday\s+2 +T} T{ +\fB4\fP \s-2dominic\s+2 +T} T{ +\fB5\fP \s-2dedication-of-the-basilica-of-st-mary-major\s+2 +T} T{ +\fB6\fP \s-2transfiguration-of-our-lord\s+2 +T} T{ +\fB7\fP \s-2cajetan\s+2 +T} +T{ +\fB8\fP \s-2ef-time-after-pentecost-sunday-12\s+2 +T} T{ +\fB9\fP \s-2vigil-of-st-lawrence\s+2 +T} T{ +\fB10\fP \s-2lawrence\s+2 +T} T{ +\fB11\fP \s-2ef-time-after-pentecost-12-wednesday\s+2 +T} T{ +\fB12\fP \s-2clare\s+2 +T} T{ +\fB13\fP \s-2ef-time-after-pentecost-12-friday\s+2 +T} T{ +\fB14\fP \s-2vigil-of-the-assumption\s+2 +T} +T{ +\fB15\fP \s-2assumption-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB16\fP \s-2joachim-father-of-the-blessed-virgin\s+2 +T} T{ +\fB17\fP \s-2hyacinth\s+2 +T} T{ +\fB18\fP \s-2ef-time-after-pentecost-13-wednesday\s+2 +T} T{ +\fB19\fP \s-2john-eudes\s+2 +T} T{ +\fB20\fP \s-2bernard-of-clairvaux\s+2 +T} T{ +\fB21\fP \s-2jane-frances-de-chantal\s+2 +T} +T{ +\fB22\fP \s-2ef-time-after-pentecost-sunday-14\s+2 +T} T{ +\fB23\fP \s-2philip-benizi\s+2 +T} T{ +\fB24\fP \s-2bartholomew\s+2 +T} T{ +\fB25\fP \s-2louis-ix\s+2 +T} T{ +\fB26\fP \s-2ef-time-after-pentecost-14-thursday\s+2 +T} T{ +\fB27\fP \s-2joseph-calasance\s+2 +T} T{ +\fB28\fP \s-2augustine\s+2 +T} +T{ +\fB29\fP \s-2ef-time-after-pentecost-sunday-15\s+2 +T} T{ +\fB30\fP \s-2rose-of-lima\s+2 +T} T{ +\fB31\fP \s-2raymond-nonnatus\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH September .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-time-after-pentecost-15-wednesday 2 stephen-of-hungary 3 pius-x 4 Officium sanctae Mariae in sabbato -5 ef-time-after-pentecost-sunday-16 6 ef-time-after-pentecost-16-monday 7 ef-time-after-pentecost-16-tuesday 8 nativity-of-the-blessed-virgin-mary 9 ef-time-after-pentecost-16-thursday 10 nicholas-of-tolentino 11 Officium sanctae Mariae in sabbato -12 ef-time-after-pentecost-sunday-17 13 ef-time-after-pentecost-17-monday 14 exaltation-of-the-holy-cross 15 seven-sorrows-of-the-blessed-virgin-mary 16 sts-cornelius-cyprian 17 ef-time-after-pentecost-17-friday 18 joseph-of-cupertino -19 ef-time-after-pentecost-sunday-18 20 ef-time-after-pentecost-18-monday 21 matthew 22 ef-september-ember-wed 23 linus 24 ef-september-ember-fri 25 ef-september-ember-sat -26 ef-time-after-pentecost-sunday-19 27 sts-cosmas-damian 28 wenceslaus 29 dedication-of-st-michael-the-archangel 30 jerome +T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2ef-time-after-pentecost-15-wednesday\s+2 +T} T{ +\fB2\fP \s-2stephen-of-hungary\s+2 +T} T{ +\fB3\fP \s-2pius-x\s+2 +T} T{ +\fB4\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB5\fP \s-2ef-time-after-pentecost-sunday-16\s+2 +T} T{ +\fB6\fP \s-2ef-time-after-pentecost-16-monday\s+2 +T} T{ +\fB7\fP \s-2ef-time-after-pentecost-16-tuesday\s+2 +T} T{ +\fB8\fP \s-2nativity-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB9\fP \s-2ef-time-after-pentecost-16-thursday\s+2 +T} T{ +\fB10\fP \s-2nicholas-of-tolentino\s+2 +T} T{ +\fB11\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB12\fP \s-2ef-time-after-pentecost-sunday-17\s+2 +T} T{ +\fB13\fP \s-2ef-time-after-pentecost-17-monday\s+2 +T} T{ +\fB14\fP \s-2exaltation-of-the-holy-cross\s+2 +T} T{ +\fB15\fP \s-2seven-sorrows-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB16\fP \s-2sts-cornelius-cyprian\s+2 +T} T{ +\fB17\fP \s-2ef-time-after-pentecost-17-friday\s+2 +T} T{ +\fB18\fP \s-2joseph-of-cupertino\s+2 +T} +T{ +\fB19\fP \s-2ef-time-after-pentecost-sunday-18\s+2 +T} T{ +\fB20\fP \s-2ef-time-after-pentecost-18-monday\s+2 +T} T{ +\fB21\fP \s-2matthew\s+2 +T} T{ +\fB22\fP \s-2ef-september-ember-wed\s+2 +T} T{ +\fB23\fP \s-2linus\s+2 +T} T{ +\fB24\fP \s-2ef-september-ember-fri\s+2 +T} T{ +\fB25\fP \s-2ef-september-ember-sat\s+2 +T} +T{ +\fB26\fP \s-2ef-time-after-pentecost-sunday-19\s+2 +T} T{ +\fB27\fP \s-2sts-cosmas-damian\s+2 +T} T{ +\fB28\fP \s-2wenceslaus\s+2 +T} T{ +\fB29\fP \s-2dedication-of-st-michael-the-archangel\s+2 +T} T{ +\fB30\fP \s-2jerome\s+2 +T} T{ + +T} T{ + +T} .TE .SH October .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-time-after-pentecost-19-friday 2 holy-guardian-angels -3 ef-time-after-pentecost-sunday-20 4 francis-of-assisi 5 ef-time-after-pentecost-20-tuesday 6 bruno 7 our-lady-of-the-rosary 8 bridget-of-sweden 9 john-leonardi -10 ef-time-after-pentecost-sunday-21 11 maternity-of-the-blessed-virgin-mary 12 ef-time-after-pentecost-21-tuesday 13 edward 14 callistus-i 15 teresa-of-avila 16 hedwig -17 ef-time-after-pentecost-sunday-22 18 luke-the-evangelist 19 peter-of-alcantara 20 john-cantius 21 ef-time-after-pentecost-22-thursday 22 ef-time-after-pentecost-22-friday 23 anthony-mary-claret -24 ef-time-after-pentecost-sunday-23 25 ef-time-after-pentecost-23-monday 26 ef-time-after-pentecost-23-tuesday 27 ef-time-after-pentecost-23-wednesday 28 sts-simon-jude 29 ef-time-after-pentecost-23-friday 30 Officium sanctae Mariae in sabbato -31 ef-christ-the-king +T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2ef-time-after-pentecost-19-friday\s+2 +T} T{ +\fB2\fP \s-2holy-guardian-angels\s+2 +T} +T{ +\fB3\fP \s-2ef-time-after-pentecost-sunday-20\s+2 +T} T{ +\fB4\fP \s-2francis-of-assisi\s+2 +T} T{ +\fB5\fP \s-2ef-time-after-pentecost-20-tuesday\s+2 +T} T{ +\fB6\fP \s-2bruno\s+2 +T} T{ +\fB7\fP \s-2our-lady-of-the-rosary\s+2 +T} T{ +\fB8\fP \s-2bridget-of-sweden\s+2 +T} T{ +\fB9\fP \s-2john-leonardi\s+2 +T} +T{ +\fB10\fP \s-2ef-time-after-pentecost-sunday-21\s+2 +T} T{ +\fB11\fP \s-2maternity-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB12\fP \s-2ef-time-after-pentecost-21-tuesday\s+2 +T} T{ +\fB13\fP \s-2edward\s+2 +T} T{ +\fB14\fP \s-2callistus-i\s+2 +T} T{ +\fB15\fP \s-2teresa-of-avila\s+2 +T} T{ +\fB16\fP \s-2hedwig\s+2 +T} +T{ +\fB17\fP \s-2ef-time-after-pentecost-sunday-22\s+2 +T} T{ +\fB18\fP \s-2luke-the-evangelist\s+2 +T} T{ +\fB19\fP \s-2peter-of-alcantara\s+2 +T} T{ +\fB20\fP \s-2john-cantius\s+2 +T} T{ +\fB21\fP \s-2ef-time-after-pentecost-22-thursday\s+2 +T} T{ +\fB22\fP \s-2ef-time-after-pentecost-22-friday\s+2 +T} T{ +\fB23\fP \s-2anthony-mary-claret\s+2 +T} +T{ +\fB24\fP \s-2ef-time-after-pentecost-sunday-23\s+2 +T} T{ +\fB25\fP \s-2ef-time-after-pentecost-23-monday\s+2 +T} T{ +\fB26\fP \s-2ef-time-after-pentecost-23-tuesday\s+2 +T} T{ +\fB27\fP \s-2ef-time-after-pentecost-23-wednesday\s+2 +T} T{ +\fB28\fP \s-2sts-simon-jude\s+2 +T} T{ +\fB29\fP \s-2ef-time-after-pentecost-23-friday\s+2 +T} T{ +\fB30\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB31\fP \s-2ef-christ-the-king\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH November .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 all-saints 2 commemoration-of-all-souls 3 ef-time-after-pentecost-24-wednesday 4 charles-borromeo 5 ef-time-after-pentecost-24-friday 6 Officium sanctae Mariae in sabbato -7 ef-time-after-epiphany-sunday-5 8 ef-time-after-pentecost-25-monday 9 dedication-of-the-archbasilica-of-our-holy-savior 10 andrew-avellino 11 martin-of-tours 12 martin-i 13 didacus -14 ef-time-after-epiphany-sunday-6 15 albert-the-great 16 gertrude-the-great 17 gregory-the-wonderworker 18 dedication-of-the-basilicas-of-sts-peter-paul 19 elizabeth-of-hungary 20 felix-of-valois -21 ef-time-after-pentecost-sunday-24 22 cecilia 23 clement-i 24 john-of-the-cross 25 catherine-of-alexandria 26 sylvester 27 Officium sanctae Mariae in sabbato -28 ef-advent-sunday-1 29 ef-advent-1-monday 30 andrew +T{ + +T} T{ +\fB1\fP \s-2all-saints\s+2 +T} T{ +\fB2\fP \s-2commemoration-of-all-souls\s+2 +T} T{ +\fB3\fP \s-2ef-time-after-pentecost-24-wednesday\s+2 +T} T{ +\fB4\fP \s-2charles-borromeo\s+2 +T} T{ +\fB5\fP \s-2ef-time-after-pentecost-24-friday\s+2 +T} T{ +\fB6\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB7\fP \s-2ef-time-after-epiphany-sunday-5\s+2 +T} T{ +\fB8\fP \s-2ef-time-after-pentecost-25-monday\s+2 +T} T{ +\fB9\fP \s-2dedication-of-the-archbasilica-of-our-holy-savior\s+2 +T} T{ +\fB10\fP \s-2andrew-avellino\s+2 +T} T{ +\fB11\fP \s-2martin-of-tours\s+2 +T} T{ +\fB12\fP \s-2martin-i\s+2 +T} T{ +\fB13\fP \s-2didacus\s+2 +T} +T{ +\fB14\fP \s-2ef-time-after-epiphany-sunday-6\s+2 +T} T{ +\fB15\fP \s-2albert-the-great\s+2 +T} T{ +\fB16\fP \s-2gertrude-the-great\s+2 +T} T{ +\fB17\fP \s-2gregory-the-wonderworker\s+2 +T} T{ +\fB18\fP \s-2dedication-of-the-basilicas-of-sts-peter-paul\s+2 +T} T{ +\fB19\fP \s-2elizabeth-of-hungary\s+2 +T} T{ +\fB20\fP \s-2felix-of-valois\s+2 +T} +T{ +\fB21\fP \s-2ef-time-after-pentecost-sunday-24\s+2 +T} T{ +\fB22\fP \s-2cecilia\s+2 +T} T{ +\fB23\fP \s-2clement-i\s+2 +T} T{ +\fB24\fP \s-2john-of-the-cross\s+2 +T} T{ +\fB25\fP \s-2catherine-of-alexandria\s+2 +T} T{ +\fB26\fP \s-2sylvester\s+2 +T} T{ +\fB27\fP \s-2Officium sanctae Mariae in sabbato\s+2 +T} +T{ +\fB28\fP \s-2ef-advent-sunday-1\s+2 +T} T{ +\fB29\fP \s-2ef-advent-1-monday\s+2 +T} T{ +\fB30\fP \s-2andrew\s+2 +T} T{ + +T} T{ + +T} T{ + +T} T{ + +T} .TE .SH December .TS allbox; -c c c c c c c -l l l l l l l. +cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) +lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i). Dom Lun Mar Mer Iov Ven Sab - 1 ef-advent-1-wednesday 2 vivian 3 francis-xavier 4 peter-chrysologus -5 ef-advent-sunday-2 6 nicholas 7 ambrose 8 immaculate-conception-of-the-blessed-virgin-mary 9 ef-advent-2-thursday 10 ef-advent-2-friday 11 damasus-i -12 ef-advent-sunday-3 13 lucy 14 ef-advent-3-tuesday 15 ef-advent-ember-wed 16 eusebius 17 ef-advent-ember-fri 18 ef-advent-ember-sat -19 ef-advent-sunday-4 20 ef-advent-4-monday 21 thomas 22 ef-advent-4-wednesday 23 ef-advent-4-thursday 24 ef-nativity-vigil 25 ef-nativity -26 ef-christmas-sunday-0 27 john-the-evangelist 28 holy-innocents 29 ef-nativity-octave-day-5 30 ef-nativity-octave-day-6 31 ef-nativity-octave-day-7 +T{ + +T} T{ + +T} T{ + +T} T{ +\fB1\fP \s-2ef-advent-1-wednesday\s+2 +T} T{ +\fB2\fP \s-2vivian\s+2 +T} T{ +\fB3\fP \s-2francis-xavier\s+2 +T} T{ +\fB4\fP \s-2peter-chrysologus\s+2 +T} +T{ +\fB5\fP \s-2ef-advent-sunday-2\s+2 +T} T{ +\fB6\fP \s-2nicholas\s+2 +T} T{ +\fB7\fP \s-2ambrose\s+2 +T} T{ +\fB8\fP \s-2immaculate-conception-of-the-blessed-virgin-mary\s+2 +T} T{ +\fB9\fP \s-2ef-advent-2-thursday\s+2 +T} T{ +\fB10\fP \s-2ef-advent-2-friday\s+2 +T} T{ +\fB11\fP \s-2damasus-i\s+2 +T} +T{ +\fB12\fP \s-2ef-advent-sunday-3\s+2 +T} T{ +\fB13\fP \s-2lucy\s+2 +T} T{ +\fB14\fP \s-2ef-advent-3-tuesday\s+2 +T} T{ +\fB15\fP \s-2ef-advent-ember-wed\s+2 +T} T{ +\fB16\fP \s-2eusebius\s+2 +T} T{ +\fB17\fP \s-2ef-advent-ember-fri\s+2 +T} T{ +\fB18\fP \s-2ef-advent-ember-sat\s+2 +T} +T{ +\fB19\fP \s-2ef-advent-sunday-4\s+2 +T} T{ +\fB20\fP \s-2ef-advent-4-monday\s+2 +T} T{ +\fB21\fP \s-2thomas\s+2 +T} T{ +\fB22\fP \s-2ef-advent-4-wednesday\s+2 +T} T{ +\fB23\fP \s-2ef-advent-4-thursday\s+2 +T} T{ +\fB24\fP \s-2ef-nativity-vigil\s+2 +T} T{ +\fB25\fP \s-2ef-nativity\s+2 +T} +T{ +\fB26\fP \s-2ef-christmas-sunday-0\s+2 +T} T{ +\fB27\fP \s-2john-the-evangelist\s+2 +T} T{ +\fB28\fP \s-2holy-innocents\s+2 +T} T{ +\fB29\fP \s-2ef-nativity-octave-day-5\s+2 +T} T{ +\fB30\fP \s-2ef-nativity-octave-day-6\s+2 +T} T{ +\fB31\fP \s-2ef-nativity-octave-day-7\s+2 +T} T{ + +T} .TE -- cgit v1.3