18
0

memo_template: add new article-class memo template

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>
This commit is contained in:
2026-04-26 12:33:37 -07:00
parent c0406f157f
commit 1e79d8d0f6
7 changed files with 212 additions and 305 deletions

View File

@@ -1,223 +0,0 @@
% Some article styles and page layout tweaks for the LaTeX Memoir class.
%
% Copyright 2009 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 is heavily based on one by Kieran Healy
% available here: http://github.com/kjhealy/latex-custom-kjh/
\usepackage{lastpage}
% 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}
% >> article-1 <<
\makechapterstyle{article-1}{
\setsecheadstyle{\large\scshape}
\setsubsecheadstyle{\normalsize\itshape}
\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}
% reduce skip after section heading
\setaftersecskip{1.2ex}
\pretitle{\newline\centering \LARGE\scshape \MakeLowercase }
\posttitle{\par\vskip 1em}
\predate{\footnotesize \centering}
\postdate{\par\vskip 1em}
% 'abstract' title, bigger skip from title
\renewcommand{\abstractname}{}
\abstractrunin
% set name of bibliography to 'references'
\renewcommand{\bibname}{References}
}
% >> article-2 <<
\makechapterstyle{article-2}{
\setsecheadstyle{\large\scshape}
\setsubsecheadstyle{\normalsize\itshape}
\setaftersubsubsecskip{-1em}
\setsubsubsecheadstyle{\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}
% 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
% set name of bibliography to 'references'
\renewcommand{\bibname}{References}
}
% >> article-3 <<
\makechapterstyle{article-3}{
\setsecheadstyle{\large\sffamily\bfseries\MakeUppercase}
\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}
% reduce skip after section heading
\setaftersecskip{1pt}
\setbeforesecskip{-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
}
%%% Custom styles for headers and footers
%%% Basic
\makepagestyle{mako-mem}
%\makeevenfoot{mako-mem}{\thepage}{}{}
%\makeoddfoot{mako-mem}{}{}{\thepage}
%\makeheadrule{mako-mem}{\textwidth}{\normalrulethickness}
\newcommand{\@makomarks}{%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\thechapter. \ %
\fi
\fi
##1}{}}
\def\sectionmark##1{%
\markright{##1}}
}
\makepsmarks{mako-mem}{\@makomarks}
\makepsmarks{mako-mem}{}
\makeevenhead{mako-mem}{}{}{\scshape\thepage}
\makeoddhead{mako-mem}{}{}{\scshape\thepage}
%%% version control info in footers; requires vc package
% Make the style for vc-git revision control headers and footers
\makepagestyle{mako-mem-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{mako-mem-git}{\@gitmarks}
\makeevenhead{mako-mem-git}{}{}{\scshape\thepage}
\makeoddhead{mako-mem-git}{}{}{\scshape\thepage}
\makeevenfoot{mako-mem-git}{}{\texttt{\footnotesize{\textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}}{}
\makeoddfoot{mako-mem-git}{}{\texttt{\footnotesize \textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}{}
%% 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{memo}
\makeevenhead{memo}{}{}{}
\makeoddhead{memo}{}{}{}
\makeevenfoot{memo}{}{\scshape \thepage/\pageref{LastPage}}{}
\makeoddfoot{memo}{}{\scshape \thepage/\pageref{LastPage}}{}
\endinput

View File

@@ -1,82 +0,0 @@
% 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}
% \DocumentMetadata{
% pdfversion=2.0,
% pdfstandard=ua-2,
% lang=en-US,
% }
\documentclass[12pt]{memoir}
% article-1 and article-2 styles were originally based on kieran healy's
% templates
\usepackage{mako-mem}
\chapterstyle{article-2}
% \usepackage{tagpdf}
% \tagpdfsetup{activate-all}
% with article-3 \chapterstyle, change to: \pagestyle{memo}
\pagestyle{mako-mem}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\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}
% \usepackage{endfloat}
% import and customize urls
\usepackage[usenames,dvipsnames]{color}
\usepackage[breaklinks]{hyperref}
\hypersetup{colorlinks=true, linkcolor=Black, citecolor=Black, filecolor=Blue,
urlcolor=Blue, unicode=true,
pdflang={en-US},
pdfdisplaydoctitle=true}
% add bibliographic stuff
% 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:
% \input{vc}
% \pagestyle{mako-mem-git}
\begin{document}
\setlength{\parskip}{4.5pt}
% LATEX NOTE: Ideal linespacing is usually said to be between 120-140% the
% typeface size. So, for 12pt (default in this document, we're looking for
% somewhere between a 14.4-17.4pt \baselineskip. Single; 1.5 lines; and Double
% in MSWord are equivalent to ~117%, 175%, and 233%.
\baselineskip 16pt
\title{Title}
\author{Nathan TeBlunthuis\\
\href{mailto:nathante@uw.edu}{nathante@uw.edu}}
\date{\today}
\maketitle
\section{Section}
\end{document}
% LocalWords:

View File

@@ -22,6 +22,8 @@ clean:
viewpdf: all viewpdf: all
evince *.pdf evince *.pdf
vc: resources/vc-git
pdf: all pdf: all
.PHONY: clean all .PHONY: clean all

View File

@@ -0,0 +1,90 @@
% Memo-style page layout for CDSC documents.
%
% Article-class equivalent of the old cdsc-memo chapterstyle that
% lived in cdsc-memoir.sty. Targets the standard `article' class so
% the LaTeX tagging-project can produce tagged, accessible PDFs.
%
% Look-and-feel: sans-serif uppercase title and author on a single
% line, sans-serif uppercase section headings, no paragraph indent,
% and a small-caps "page/total" footer.
%
% Copyright 2009-2026 Benjamin Mako Hill <mako@atdot.cc>
% Copyright 2008-2009 Kieran Healy <kjhealy@soc.duke.edu>
% Distributed as free software under the GNU GPL v3
\usepackage{lastpage}
\usepackage{xcolor}
%%% Page style: empty header; "page/total" centered in the footer.
\usepackage{fancyhdr}
\setlength{\headheight}{14.5pt}
\addtolength{\topmargin}{-2.5pt}
\fancypagestyle{cdsc-page-memo}{%
\fancyhf{}%
\fancyfoot[C]{\scshape\thepage/\pageref*{LastPage}}%
\renewcommand{\headrulewidth}{0pt}%
}
% Variant with git revision info in the footer (requires the vc package).
\fancypagestyle{cdsc-page-memo-git}{%
\fancyhf{}%
\fancyfoot[C]{\texttt{\footnotesize\textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}%
\renewcommand{\headrulewidth}{0pt}%
}
\pagestyle{cdsc-page-memo}
%%% Section headings: large sans-serif bold uppercase, with the
%%% tight before/after spacing the original memo style used.
\usepackage{titlesec}
\titleformat{\section}
{\normalsize\sffamily\bfseries\MakeUppercase}{\thesection.}{0.5em}{}
\titlespacing*{\section}{0pt}{*1.5}{1pt}
\titleformat{\subsection}
{\small\sffamily\bfseries\MakeUppercase}{\thesubsection.}{0.5em}{}
\titlespacing*{\subsection}{0pt}{*1}{1pt}
\titleformat{\subsubsection}[runin]
{\footnotesize\sffamily\bfseries}{\thesubsubsection.}{0.5em}{}[\hskip 0.5em]
% By default, suppress section numbering. To enable numbered sections
% and subsections, comment the line below and uncomment the alternative.
\setcounter{secnumdepth}{0}
% \setcounter{secnumdepth}{2}
%%% Title block: "TITLE [...] AUTHOR" on a single line, no date.
\usepackage{titling}
\renewcommand{\maketitle}{%
\par\noindent\footnotesize\puB\par
{\large\sffamily\bfseries\MakeUppercase\thetitle}\hfill
{\large\sffamily\MakeUppercase\theauthor}%
\par\vskip 0.7em%
}
%% \published{...}: a note about publication status, printed in small
%% type at the very top of the title block.
\newcommand{\puB}{}
\newcommand{\published}[1]{\gdef\puB{#1}}
%%% List spacing
\usepackage{enumitem}
\setlist{topsep=0pt, partopsep=0pt}
%%% Caption font
\usepackage{caption}
\captionsetup{font=small}
%%% No paragraph indent (memos use a blank-line paragraph break style).
\setlength{\parindent}{0pt}
%%% Footnote symbol command (for \thanks{} footnotes that should not
%%% have a numeric mark). Use as \symbolfootnote[0]{Footnote text}.
\long\def\symbolfootnote[#1]#2{\begingroup%
\def\thefootnote{\fnsymbol{footnote}}\footnote[#1]{#2}\endgroup}
\endinput

14
memo_template/refs.bib Normal file
View File

@@ -0,0 +1,14 @@
@inproceedings{989866,
author = {Ken Hinckley and Gonzalo Ramos and François
Guimbretiere and Patrick Baudisch and Marc Smith},
title = {Stitching: pen gestures that span multiple displays},
booktitle = {AVI '04: Proceedings of the working conference on
Advanced visual interfaces},
year = {2004},
isbn = {1-58113-867-9},
pages = {23--31},
location = {Gallipoli, Italy},
doi = {http://doi.acm.org/10.1145/989863.989866},
publisher = {ACM Press},
address = {New York, NY, USA},
}

106
memo_template/text.tex Normal file
View File

@@ -0,0 +1,106 @@
% 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,
}
\documentclass[12pt]{article}
\usepackage{cdsc-memo}
\usepackage{tagpdf}
\tagpdfsetup{activate-all}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\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: