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

15
memo_template/.gitignore vendored Normal file
View File

@@ -0,0 +1,15 @@
/auto/
/cache/
/vc
/refs-processed.bib
/*.aux
/*.bbl
/*.blg
/*.log
/*.out
/*.pdf
/*.fdb_latexmk
/*.fls
/*.ttt
/*.bcf
/*.run.xml

30
memo_template/Makefile Normal file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/make
all: $(patsubst %.tex,%.pdf,$(wildcard *.tex))
# use the following section for Rnw/knitr documents
# all: $(patsubst %.Rnw,%.pdf,$(wildcard *.Rnw))
# %.tex: %.Rnw
# Rscript -e "library(knitr); knit('$<')"
%.pdf: %.tex
latexmk -f -lualatex $<
clean:
latexmk -C *.tex
rm -f *.tmp *.run.xml
rm -f vc
rm -f *.bbl
# the following lines are useful for Rnw/knitr
# rm -rf cache/ figure/
# rm -f *.tex
viewpdf: all
evince *.pdf
vc: resources/vc-git
pdf: all
.PHONY: clean all
# .PRECIOUS: %.tex

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: