The tagging code hooks \@startsection to emit the H1/H2/H3 tags that a
screen reader navigates by. titlesec replaces \section wholesale rather
than going through that hook, so every heading vanished from the
structure tree --- with no error to say so, which is why this went
unnoticed. titling separately left an unclosed trivlist behind its
\flushleft declarations, producing "the number of automatic begin and
end text-unit para hooks differ" and a mis-nested tree.
Both files now style headings through \@startsection and the title
block through \@maketitle, using the class's own hooks. The style
argument of \@startsection is applied to the whole heading, so the
memo's uppercase headings append \MakeUppercase to it; the tagging code
wraps the section number in \NoCaseChange so the number is left alone.
Vertical spacing was matched against the previous output page by page:
the memo now renders identically bar one heading a pixel off, and the
paper's title block lands within two pixels.
datetime is dropped from cdsc-paper.sty. Only \today was ever used from
it and that is built in.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Replaces the assignment_template with a memo-format template based
on the article class. The look-and-feel is ported from the old
cdsc-memo chapterstyle in cdsc-memoir.sty: a single-line "TITLE
[hfill] AUTHOR" header and sans-serif uppercase section headings.
Like the migrated paper_template, this builds with lualatex and
produces a tagged, PDF/UA-2 compliant PDF. verapdf --flavour ua2:
0 failures, 1723 passed rules.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>