18
0

paper_template: migrate to article class with full UA-2 tagging

Drops the memoir class in favor of the standard article class so the
LaTeX tagging-project can produce fully tagged PDFs. The metadata-only
\\DeclareDocumentMetadata workaround is replaced by the full
\\DocumentMetadata{pdfstandard=ua-2} path with tagpdf activated.

text.tex is now built against cdsc-paper.sty (added in the previous
commit); cdsc-memoir.sty is removed. Other changes:

- pdftitle/pdfauthor are set explicitly in \\hypersetup. UA-2 strict
  mode requires dc:title in the XMP packet, and pdfusetitle does not
  propagate \\title{}/\\author{} into XMP under this setup.
- The memoir-only \\firmlists call is dropped (cdsc-paper.sty handles
  list spacing via enumitem).
- The memoir-only \\prebibhook reference is removed from defbibheading.

verapdf --flavour ua2: 0 failures, 1723 passed rules.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-26 11:21:42 -07:00
parent 6643132141
commit c0406f157f
2 changed files with 17 additions and 231 deletions

View File

@@ -1,205 +0,0 @@
% Some article styles and page layout tweaks for the LaTeX Memoir
% class.
%
% Copyright 2009-2018 Benjamin Mako Hill <mako@atdot.cc>
% Copyright 2008-2009 Kieran Healy <kjhealy@soc.duke.edu>
% Distributed as free software under the GNU GPL v3
% This file was originally based on one by Kieran Healy
% available here: http://github.com/kjhealy/latex-custom-kjh/
%%% Custom styles for headers and footers
%%% Basic
\makepagestyle{cdsc-page}
%\makeevenfoot{cdsc-page}{\thepage}{}{}
%\makeoddfoot{cdsc-page}{}{}{\thepage}
%\makeheadrule{cdsc-page}{\textwidth}{\normalrulethickness}
\newcommand{\@cdscmarks}{%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\thechapter. \ %
\fi
\fi
##1}{}}
\def\sectionmark##1{%
\markright{##1}}
}
\makepsmarks{cdsc-page}{\@cdscmarks}
\makepsmarks{cdsc-page}{}
\makeevenhead{cdsc-page}{}{}{\scshape\thepage}
\makeoddhead{cdsc-page}{}{}{\scshape\thepage}
%%% version control info in footers; requires vc package
% Make the style for vc-git revision control headers and footers
\makepagestyle{cdsc-page-git}
\newcommand{\@gitmarks}{%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\thechapter. \ %
\fi
\fi
##1}{}}
\def\sectionmark##1{%
\markright{##1}}
}
\makepsmarks{cdsc-page-git}{\@gitmarks}
\makeevenhead{cdsc-page-git}{}{}{\scshape\thepage}
\makeoddhead{cdsc-page-git}{}{}{\scshape\thepage}
\makeevenfoot{cdsc-page-git}{}{\texttt{\footnotesize{\textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}}{}
\makeoddfoot{cdsc-page-git}{}{\texttt{\footnotesize \textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}{}
%%% print a datestamp from ShareLaTeX
\makepagestyle{cdsc-page-overleaf}
\newcommand{\@slmarks}{%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\thechapter. \ %
\fi
\fi
##1}{}}
\def\sectionmark##1{%
\markright{##1}}
}
\makepsmarks{cdsc-page-overleaf}{\@slmarks}
\makeevenhead{cdsc-page-overleaf}{}{}{\scshape\thepage}
\makeoddhead{cdsc-page-overleaf}{}{}{\scshape\thepage}
\makeevenfoot{cdsc-page-overleaf}{}{\texttt{\footnotesize{\textcolor{BrickRed}{Buildstamp/Version:~\pdfdate}}}}{}
\makeoddfoot{cdsc-page-overleaf}{}{\texttt{\footnotesize{\textcolor{BrickRed}{Buildstamp/Version:~\pdfdate}}}}{}
%% Create a command to make a note at the top of the first page describing the
%% publication status of the paper.
\newcommand{\published}[1]{%
\gdef\puB{#1}}
\newcommand{\puB}{}
\renewcommand{\maketitlehooka}{%
\par\noindent\footnotesize \puB}
\makepagestyle{cdsc-page-memo}
\makeevenhead{cdsc-page-memo}{}{}{}
\makeoddhead{cdsc-page-memo}{}{}{}
\makeevenfoot{cdsc-page-memo}{}{\scshape \thepage/\pageref{LastPage}}{}
\makeoddfoot{cdsc-page-memo}{}{\scshape \thepage/\pageref{LastPage}}{}
\usepackage{lastpage}
\usepackage{datetime}
% blank footnote
% Use \symbolfootnote[0]{Footnote text} for a blank footnote.
% Useful for initial acknowledgment note.
\long\def\symbolfootnote[#1]#2{\begingroup%
\def\thefootnote{\fnsymbol{footnote}}\footnote[#1]{#2}\endgroup}
% put a period after the section numbers
\setsecnumformat{\csname the#1\endcsname.\enspace}
% material shared between the two modes
\setsubsecheadstyle{\normalsize\itshape}
\setaftersubsubsecskip{-1em}
\setsubsubsecheadstyle{\small\bfseries}
\renewcommand{\printchaptername}{}
\renewcommand{\chapternamenum}{}
\renewcommand{\chapnumfont}{\chaptitlefont}
\renewcommand{\printchapternum}{\chapnumfont \thechapter\space}
\renewcommand{\afterchapternum}{}
\renewcommand{\printchaptername}{\secheadstyle}
\renewcommand{\cftchapterfont}{\normalfont}
\renewcommand{\cftchapterpagefont}{\normalfont\scshape}
\renewcommand{\cftchapterpresnum}{\scshape}
\captiontitlefont{\small}
% turn off chapter numbering
\counterwithout{section}{chapter}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
% supress chapter numbers
\maxsecnumdepth{chapter}
\setsecnumdepth{chapter}
% for numbered sections and subsections:
% (a) comment out the above stanza; (b) uncomment the one below
% \maxsecnumdepth{subsection}
% \setsecnumdepth{subsection}
% set name of bibliography to 'references'
\renewcommand{\bibname}{References}
% >> cdsc-article <<
\makechapterstyle{cdsc-article}{
% section heading sytle
\setsecheadstyle{\large\scshape}
% reduce skip after section heading
\setaftersecskip{1.7ex}
% Title flush left
\pretitle{\flushleft\LARGE \itshape}
\posttitle{\par\vskip 0.5em}
\preauthor{\flushleft \large \lineskip 1em}
\postauthor{\par\lineskip 1em}
\predate{\flushleft\footnotesize\vspace{0.65em}}
\postdate{\par\vskip 1em}
% 'abstract' title, bigger skip from title
\renewcommand{\abstractname}{Abstract:}
\renewcommand{\abstractnamefont}{\normalfont\small\bfseries}
\renewcommand{\abstracttextfont}{\normalfont\small}
\setlength{\absparindent}{0em}
\setlength{\abstitleskip}{-1.5em}
\abstractrunin
% this is the default page style for chapters
\pagestyle{cdsc-page}
}
% >> cdsc-memo <<
\makechapterstyle{cdsc-memo}{
% section heading sytle
\setsecheadstyle{\large\sffamily\bfseries\MakeUppercase}
% reduce skip after section heading
\setaftersecskip{1pt}
\setbeforesecskip{-1em}
\setaftersubsecskip{1pt}
\setbeforesubsecskip{-1em}
% \setaftersubsubsecskip{1pt}
% \setbeforesubsubsecskip{-1em}
% 'abstract' title, bigger skip from title
% \renewcommand{\maketitle}{\{\preauthor \theauthor\} \hfill \thetitle}
\renewcommand{\maketitle}{
{\Large\sffamily\bfseries\MakeUppercase\thetitle} \hfill
{\Large\sffamily\MakeUppercase\theauthor}
\vskip 0.7em}
\renewcommand{\abstractname}{\normalfont\scriptsize\noindent}
\renewcommand{\abstracttextfont}{\normalfont\scriptsize}
\abstractrunin
% set name of bibliography to 'references'
\renewcommand{\bibname}{References}
\parindent 0pt
% this is the default page style for chapters
\pagestyle{cdsc-page-memo}
}
\endinput

View File

@@ -1,26 +1,17 @@
% memoir is currently incompatible with the LaTeX tagged-PDF code, so we
% load just the PDF management layer (for metadata). When memoir support
% lands upstream, swap this block for the commented-out \DocumentMetadata +
% tagpdf lines below. See https://github.com/latex3/tagging-project/issues/910
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{lang=en-US,pdfversion=2.0}
% Tagged PDF (PDF/UA-2) accessibility setup. The article class works
% with the LaTeX tagging-project, so we use the full \DocumentMetadata
% path here.
\DocumentMetadata{
pdfversion=2.0,
pdfstandard=ua-2,
lang=en-US,
}
% \DocumentMetadata{
% pdfversion=2.0,
% pdfstandard=ua-2,
% lang=en-US,
% }
\documentclass[12pt]{article}
\documentclass[12pt]{memoir}
\usepackage{cdsc-memoir}
% \usepackage{tagpdf}
% \tagpdfsetup{activate-all}
% there are two chapter styles: cdsc-article and cdsc-memo
% memo assumes that you remove the "\\" and the email address from the
% \author field below as well as that you will comment out the
% \published tag
\chapterstyle{cdsc-article}
\usepackage{cdsc-paper}
\usepackage{tagpdf}
\tagpdfsetup{activate-all}
\usepackage{fontspec}
\setmainfont{EB Garamond}
@@ -42,8 +33,12 @@
\usepackage[dvipsnames]{xcolor}
\usepackage[breaklinks]{hyperref}
% pdftitle/pdfauthor populate PDF and XMP metadata; keep these in sync
% with \title{} and \author{} below. UA-2 requires dc:title in XMP.
\hypersetup{colorlinks=true, linkcolor=Black, citecolor=Black, filecolor=Blue,
urlcolor=Blue, unicode=true,
pdftitle={Title},
pdfauthor={Your Name},
pdflang={en-US},
pdfdisplaydoctitle=true}
@@ -65,15 +60,11 @@
\defbibheading{secbib}[\bibname]{%
\section*{#1}%
\markboth{#1}{#1}%
\baselineskip 14.2pt%
\prebibhook}
\baselineskip 14.2pt}
\def\citepos#1{\citeauthor{#1}'s (\citeyear{#1})}
\def\citespos#1{\citeauthor{#1}' (\citeyear{#1})}
% memoir function to take out of the space out of the whitespace lists
\firmlists
% LATEX NOTE: these lines will import vc stuff after running `make vc` which
% will add version control information to the bottom of each page. This can be
% useful for keeping track of which version of a document somebody has: