These templates declared pdfstandard=ua-2 and loaded tagpdf with
\tagpdfsetup{activate-all}. That combination sets /Marked true and
writes the PDF/UA-2 claim into the metadata, but activate-all is
tagpdf's low-level switch and does not turn on the kernel code that
tags document structure. The result was a file announcing itself as
accessible while carrying nothing for assistive software to read: the
memo's structure tree held one /Document and two /Link nodes, and the
letter's held /Document alone.
tagging=on loads that kernel code. The memo now tags three headings, a
subsection, its paragraphs and its bibliography list; the letter tags
all ten body paragraphs. The manual tagpdf lines are no longer needed
since the kernel loads it.
This requires TeX Live 2025 or later; on TeX Live 2024 the key is
unknown and the build stops.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
126 lines
3.9 KiB
TeX
126 lines
3.9 KiB
TeX
% Tagged PDF (PDF/UA-2) accessibility setup. The article class works
|
|
% with the LaTeX tagging project, so we use the full \DocumentMetadata
|
|
% path here.
|
|
%
|
|
% tagging=on is what actually builds the structure tree: it loads the
|
|
% kernel code that tags paragraphs, headings, lists, tables, and
|
|
% floats. Declaring pdfstandard=ua-2 on its own only writes the claim
|
|
% into the metadata; without tagging=on the PDF is marked as UA-2 but
|
|
% carries no structure for a screen reader to read. This needs TeX
|
|
% Live 2025 or later --- on Overleaf, set it in Menu > Settings >
|
|
% TeX Live version.
|
|
\DocumentMetadata{
|
|
tagging=on,
|
|
pdfversion=2.0,
|
|
pdfstandard=ua-2,
|
|
lang=en-US,
|
|
}
|
|
|
|
\documentclass[12pt]{article}
|
|
|
|
\usepackage{cdsc-memo}
|
|
|
|
\usepackage{fontspec}
|
|
% fontspec disables the classic TeX input ligatures by default
|
|
% (-- => en-dash, --- => em-dash, `` and '' => curly quotes), so
|
|
% re-enable them globally for every font loaded below.
|
|
\defaultfontfeatures{Ligatures=TeX}
|
|
\setmainfont{Libertinus Serif}
|
|
% Mako prefers Adobe Garamond Premier Pro
|
|
% (https://fonts.adobe.com/fonts/garamond-premier-pro). It is a
|
|
% commercial font and is not redistributable, so the templates default
|
|
% to the free Libertinus Serif above. If you have the font installed
|
|
% (e.g., dropped into ~/.fonts/), comment the line above and uncomment
|
|
% the next one. CDSC members can contact Mako (mako@atdot.cc) for the
|
|
% font files.
|
|
% \setmainfont{Garamond Premier Pro}
|
|
\setsansfont{TeX Gyre Heros}
|
|
|
|
\usepackage[letterpaper,left=1.65in,right=1.65in,top=1.3in,bottom=1.2in]{geometry}
|
|
|
|
% packages i use in essentially every document
|
|
\usepackage{graphicx}
|
|
\usepackage{enumerate}
|
|
|
|
% packages i use in many documents but leave off by default
|
|
% \usepackage{amsmath, amsthm, amssymb}
|
|
% \usepackage{dcolumn}
|
|
|
|
% urls and colors
|
|
\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={Memo Title},
|
|
pdfauthor={Your Name},
|
|
pdflang={en-US},
|
|
pdfdisplaydoctitle=true}
|
|
|
|
% list of footnote symbols for \thanks{}
|
|
\makeatletter
|
|
\renewcommand*{\@fnsymbol}[1]{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
|
|
\mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
|
|
\or \ddagger\ddagger \else\@ctrerr\fi}}
|
|
\makeatother
|
|
\newcommand*\samethanks[1][\value{footnote}]{\footnotemark[#1]}
|
|
|
|
% add bibliographic stuff
|
|
\usepackage[american]{babel}
|
|
\usepackage{csquotes}
|
|
\usepackage[natbib=true, style=apa, backend=biber]{biblatex}
|
|
\addbibresource{refs.bib}
|
|
\DeclareLanguageMapping{american}{american-apa}
|
|
|
|
\defbibheading{secbib}[\bibname]{%
|
|
\section*{#1}%
|
|
\markboth{#1}{#1}%
|
|
\baselineskip 14.2pt}
|
|
|
|
\def\citepos#1{\citeauthor{#1}'s (\citeyear{#1})}
|
|
\def\citespos#1{\citeauthor{#1}' (\citeyear{#1})}
|
|
|
|
% LATEX NOTE: these lines will import vc stuff after running `make vc`,
|
|
% which adds a git revision footer to each page:
|
|
% \input{vc}
|
|
% \pagestyle{cdsc-page-memo-git}
|
|
|
|
\begin{document}
|
|
|
|
\setlength{\parskip}{4.5pt}
|
|
\baselineskip 16pt
|
|
|
|
\title{Memo Title}
|
|
\author{Your Name}
|
|
|
|
\maketitle
|
|
|
|
\section{Section}
|
|
|
|
The quick brown fox jumps over the lazy dog. The quick brown fox jumps
|
|
over the lazy dog. The quick brown fox jumps over the lazy dog. The
|
|
quick brown fox jumps over the lazy dog. The quick brown fox jumps over
|
|
the lazy dog \citep{989866}.
|
|
|
|
\section{Another Section}
|
|
|
|
The quick brown fox jumps over the lazy dog. The quick brown fox jumps
|
|
over the lazy dog. The quick brown fox jumps over the lazy dog. The
|
|
quick brown fox jumps over the lazy dog.
|
|
|
|
\subsection{A Subsection}
|
|
|
|
The quick brown fox jumps over the lazy dog. The quick brown fox jumps
|
|
over the lazy dog.
|
|
|
|
% bibliography
|
|
\setcounter{biburlnumpenalty}{9001}
|
|
\printbibliography[title = {References}, heading=secbib]
|
|
|
|
|
|
\end{document}
|
|
|
|
% LocalWords:
|