18
0

Compare commits

...

6 Commits

Author SHA1 Message Date
22832af588 removed wiki page 2026-04-26 12:43:05 -07:00
dab1be34c5 README: reflect memo template, drop memoir incompatibility note
- Replace assignment_template references with memo_template.
- Update the type list in the new_tex_document section.
- Update the aliases section (new_tex_assignment -> new_tex_memo).
- Drop the migration entry for the assignment script.
- Rewrite the Accessibility section: now all four templates are
  PDF/UA-2 compliant (paper and memo were ported off memoir to the
  article class with custom .sty files), so the memoir-blocked
  caveat no longer applies.
- Add poster to the master-branch templates list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:34:19 -07:00
0aee418e2a new_tex_document, cdsc_tex_aliases.sh: assignment -> memo
Update the script and the alias file to match the rename of
assignment_template to memo_template. The 'assignment' type is
replaced by 'memo' in new_tex_document; the new_tex_assignment
alias becomes new_tex_memo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:34:11 -07:00
1e79d8d0f6 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>
2026-04-26 12:33:37 -07:00
c0406f157f 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>
2026-04-26 11:21:42 -07:00
6643132141 paper_template: add cdsc-paper.sty (article-class style)
This is an article-class equivalent of the cdsc-article chapterstyle
from cdsc-memoir.sty, written so the paper template can drop memoir
(which is incompatible with the LaTeX tagging-project) while keeping
the same look and feel.

Uses titlesec for section heads, titling for the title block,
fancyhdr for the page styles, enumitem for tighter list spacing,
and caption for the caption font. The runin abstract and \\published
note hooks behave the same as before.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 11:15:53 -07:00
14 changed files with 364 additions and 674 deletions

47
README
View File

@@ -5,8 +5,8 @@
Copyright (c) 2009-2026 Benjamin Mako Hill <mako@atdot.cc> / <makohill@uw.edu>
This repository contains LaTeX configuration files and templates used to
format papers, assignments, and letters. All files are released under the
GNU GPL version 3 or later.
format papers, memos, letters, and posters. All files are released under
the GNU GPL version 3 or later.
The latest version can be found in git at:
https://gitea.communitydata.science/collective/cdsc_tex
@@ -54,17 +54,15 @@ Heros.
=== Accessibility ==============
================================
The letter and poster templates produce PDF/UA-2 compliant tagged PDFs
via the LaTeX tagging project (\DocumentMetadata + tagpdf). You can
verify compliance with verapdf: https://verapdf.org/
All four templates produce PDF/UA-2 compliant tagged PDFs via the
LaTeX tagging project (\DocumentMetadata + tagpdf). You can verify
compliance with verapdf: https://verapdf.org/
The paper and assignment templates are based on the memoir class, which
is not yet compatible with the LaTeX tagged-PDF code. They load the
pdfmanagement-testphase layer for PDF metadata only. When memoir gains
tagging support upstream, the commented-out \DocumentMetadata and tagpdf
lines in each template can be re-enabled. See:
https://github.com/latex3/tagging-project/issues/910
The paper and memo templates were originally built on the memoir
class, which is incompatible with the LaTeX tagged-PDF code. They now
use the standard article class with custom styling (cdsc-paper.sty
and cdsc-memo.sty) to keep their previous look while supporting full
tagging.
================================
=== Branches ===================
@@ -72,7 +70,7 @@ lines in each template can be re-enabled. See:
This repository has two main branches:
master Standard LaTeX templates (paper, assignment, letter)
master Standard LaTeX templates (paper, memo, letter, poster)
knitr Knitr/R template for reproducible research documents
================================
@@ -88,10 +86,10 @@ and destination directory as arguments:
Available types:
paper LaTeX paper template (master branch)
assignment LaTeX assignment template (master branch)
knitr Knitr/R paper template (knitr branch)
letter LaTeX letter template (master branch)
paper LaTeX paper template (master branch)
memo LaTeX memo template (master branch)
knitr Knitr/R paper template (knitr branch)
letter LaTeX letter template (master branch)
Example:
@@ -121,26 +119,23 @@ following to your .bashrc or .zshrc:
This defines the following aliases (only if new_tex_document is in PATH):
new_tex_assignment → new_tex_document assignment
new_knitr_document → new_tex_document knitr
new_tex_letter → new_tex_document letter
new_tex_memo → new_tex_document memo
new_knitr_document → new_tex_document knitr
new_tex_letter → new_tex_document letter
================================
=== Migration ==================
================================
The individual scripts new_knitr_document, new_tex_assignment, and
new_tex_letter have been consolidated into new_tex_document. The old
scripts remain in the repository but are superseded.
The individual scripts new_knitr_document and new_tex_letter have
been consolidated into new_tex_document. The old scripts remain in
the repository but are superseded.
To migrate, replace calls to the old scripts with new_tex_document:
Old: new_knitr_document mydir
New: new_tex_document knitr mydir
Old: new_tex_assignment mydir
New: new_tex_document assignment mydir
Old: new_tex_letter mydir
New: new_tex_document letter mydir

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

@@ -3,7 +3,7 @@
# source ~/tex/cdsc_tex/cdsc_tex_aliases.sh
if command -v new_tex_document > /dev/null 2>&1; then
alias new_tex_assignment='new_tex_document assignment'
alias new_tex_memo='new_tex_document memo'
alias new_knitr_document='new_tex_document knitr'
alias new_tex_letter='new_tex_document letter'
fi

View File

@@ -22,6 +22,8 @@ clean:
viewpdf: all
evince *.pdf
vc: resources/vc-git
pdf: 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:

View File

@@ -10,7 +10,7 @@ CURDIR=$(pwd)
usage() {
echo "Usage: $(basename "$0") <type> <directory>"
echo "Types: paper, assignment, knitr, letter"
echo "Types: paper, memo, knitr, letter"
exit 1
}
@@ -26,10 +26,10 @@ case "$TYPE" in
TEMPLATE="paper_template"
EXT="tex"
;;
assignment)
memo)
REPO="$HOME/tex/cdsc_tex"
BRANCH="master"
TEMPLATE="assignment_template"
TEMPLATE="memo_template"
EXT="tex"
;;
knitr)

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

@@ -0,0 +1,110 @@
% Article-class styles and page layout for CDSC paper documents.
%
% This file replaces the older cdsc-memoir.sty. It targets the
% standard `article' class so the LaTeX tagging-project can produce
% tagged, accessible PDFs --- memoir is currently incompatible with
% that work. The look-and-feel is kept as close to the previous
% cdsc-article chapterstyle as is practical.
%
% 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{datetime}
\usepackage{xcolor}
%%% Page styles (replaces memoir's \makepagestyle / \makeevenhead etc.)
\usepackage{fancyhdr}
\setlength{\headheight}{14.5pt}
\addtolength{\topmargin}{-2.5pt}
% Basic: page number in small caps in the upper-right corner
\fancypagestyle{cdsc-page}{%
\fancyhf{}%
\fancyhead[R]{\scshape\thepage}%
\renewcommand{\headrulewidth}{0pt}%
}
% Variant with git revision info in the footer (requires the vc package).
\fancypagestyle{cdsc-page-git}{%
\fancyhf{}%
\fancyhead[R]{\scshape\thepage}%
\fancyfoot[C]{\texttt{\footnotesize\textcolor{BrickRed}{git revision \VCRevision\ on \VCDateTEX}}}%
\renewcommand{\headrulewidth}{0pt}%
}
% Variant with a build timestamp in the footer (useful on Overleaf/etc.)
\fancypagestyle{cdsc-page-overleaf}{%
\fancyhf{}%
\fancyhead[R]{\scshape\thepage}%
\fancyfoot[C]{\texttt{\footnotesize\textcolor{BrickRed}{Buildstamp/Version:~\today}}}%
\renewcommand{\headrulewidth}{0pt}%
}
\pagestyle{cdsc-page}
%%% Section heading styles (replaces memoir's \setsecheadstyle etc.)
\usepackage{titlesec}
% Sections: large small caps; period after the number
\titleformat{\section}
{\large\scshape}{\thesection.}{0.5em}{}
\titlespacing*{\section}{0pt}{*2}{1.7ex}
% Subsections: italic
\titleformat{\subsection}
{\normalsize\itshape}{\thesubsection.}{0.5em}{}
% Subsubsections: small bold, runin (matches memoir's negative skip behavior)
\titleformat{\subsubsection}[runin]
{\small\bfseries}{\thesubsubsection.}{0.5em}{}[\hskip 0.5em]
% By default, suppress numbering at the section level (matches the
% memoir template's default of \setsecnumdepth{chapter}). To enable
% numbered sections and subsections, comment the line below and
% uncomment the alternative.
\setcounter{secnumdepth}{0}
% \setcounter{secnumdepth}{2}
%%% Title block (titling package replaces memoir's title hooks)
\usepackage{titling}
% Title flush left, italic, large
\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}
%% \published{...}: a note about the publication status, printed in
%% small type at the very top of the title block. Use this for
%% draft/working-paper notices.
\newcommand{\puB}{}
\newcommand{\published}[1]{\gdef\puB{#1}}
\renewcommand{\maketitlehooka}{\par\noindent\footnotesize\puB}
%%% Abstract: runin style ("**Abstract:** the quick brown fox..."),
%%% indented from both margins (via the quote environment, which gives
%%% the side indent without adding first-line paragraph indentation).
\renewenvironment{abstract}%
{\par\addvspace{\medskipamount}\small
\begin{quote}\noindent\textbf{Abstract:}\hspace{0.5em}\ignorespaces}%
{\end{quote}\par\medskip}
%%% List spacing (replaces memoir's \firmlists --- tighter lists)
\usepackage{enumitem}
\setlist{topsep=0pt, partopsep=0pt}
%%% Caption font
\usepackage{caption}
\captionsetup{font=small}
%%% 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

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:

View File

@@ -1,108 +0,0 @@
In order to write LaTeX documents, there are two main options. The first is to do everything in Overleaf. The second option, which is explained below in this document under [[#Installing TeX on your computer]], is to install software on your local machine which will compile LaTeX documents.
This document explains how to use our lab-created templates. Using other templates may require other steps.
== Getting/Installing Templates ==
You can find the latest version of the templates [https://gitea.communitydata.science/collective/cdsc_tex here].
To clone the public repository, you can do:
git clone https://gitea.communitydata.science/collective/cdsc_tex.git
If you can clone them into the directory <code>~/tex/</code> (e.g., by doing <code>mkdir ~/tex; cd ~/tex</code> before running the clone command above) it will make things a bit easier.
This repository includes scripts for quickly creating a new project from a template. Symlink them into your PATH with:
ln -s ~/tex/cdsc_tex/new_tex_document ~/bin/
ln -s ~/tex/cdsc_tex/rename_tex_to_dirname ~/bin/
The main script is <code>new_tex_document</code>, which takes a document type and destination directory:
new_tex_document <type> <directory>
Available types are <code>paper</code>, <code>assignment</code>, <code>knitr</code>, and <code>letter</code>. For example:
new_tex_document paper my-new-paper
new_tex_document knitr my-knitr-paper
The repository also includes <code>cdsc_tex_aliases.sh</code>, which defines aliases for the old individual script names (<code>new_knitr_document</code>, <code>new_tex_assignment</code>, <code>new_tex_letter</code>) in case you prefer those. Add the following to your <code>.bashrc</code> or <code>.zshrc</code> to load them:
[[ -f ~/tex/cdsc_tex/cdsc_tex_aliases.sh ]] && source ~/tex/cdsc_tex/cdsc_tex_aliases.sh
== Using the paper templates ==
There are quite a number of useful instructions sprinkled throughout the TeX source file in comments. You should pay particular attention to the comments that begin with:
% LATEX NOTE:
There are two styles that come with the package with two basic layouts that are defined. To switch between them, you just edit the following line:
\chapterstyle{cdsc-article}
The first style <code>cdsc-article</code> is great for papers ([https://mako.cc/academic/shaw_hill-laboratories_of_oligarchy-DRAFT.pdf a perhaps dated example]).
The second style <code>cdsc-memo</code> is more for shorter pieces and memos ([https://mako.cc/academic/bmh-research_statement.pdf a perhaps dated example]).
If you want to use the style, you might want to consider switching the <code>\chapterstyle</code> line mentioned above <code>cdsc-article</code> to <code>cdsc-memo</code> by editing the following line.
If you want to include git commit IDs and datestamp on each page of the paper, you can uncomment the following lines which will import version control information after running <code>make vc</code>
\input{vc}
\pagestyle{cdsc-page-git}
One problem is that this can be tricky to get to work on Overleaf. This alternative line will just input a timestamp at the build process:
\pagestyle{cdsc-page-overleaf}
Either approach can be useful for keeping track of which version of a document somebody has.
The templates themselves use the [https://texdoc.org/serve/memoir/0 LaTeX Memoir Class] (warning that link is a ~1000 page PDF and the documentation).
== Using the Beamer templates ==
The beamer templates are described in [[CommunityData:Beamer]].
== Using the poster template ==
The poster template is in a subdirectory called <code>poster_template</code> within the <code>cdsc_tex</code> repository above. The template is actually just a single Beamer slide. You can simply upload all the files in this directory to Overleaf and/or build them following instructions over on [[CommunityData:Beamer]].
== Sending Patches to the templates ==
If you want to send patches, clone the repository, make your changes, and use <code>git format-patch</code> to generate patch files to email directly to mako at <code>mako@atdot.cc</code>. For example:
git format-patch origin/master
git send-email *.patch
== Installing TeX on your computer ==
=== Debian/Ubuntu Installation Instructions ===
First, you'll want to install the following packages:
* latexmk
* texlive-latex-recommended
* texlive-latex-extra
* texlive-fonts-extra
* texlive-fonts-recommended
* texlive-bibtex-extra
* moreutils
* gawk
Also, to install Garamond grab and install the font from [https://ctan.org/pkg/urw-garamond here] through the following complicated process:
* Download the file
* Create ''~/texmf'' if it does not exist yet
* Unzip the file ugm.zip from the garamond.zip file into that ~/texmf/
* Copy the other font files in the root directory of garamond.zip into ~/texmf/fonts/type1/
* Run "texhash ~/texmf
Alternatively, if you want to install them system wide and have root credentials, you can also place them in ''/usr/local/share/texmf'' instead.
=== Using MacTeX on macOS ===
To install with MacTeX, you need to install the font:
wget https://tug.org/fonts/getnonfreefonts/install-getnonfreefonts
texlua install-getnonfreefonts
sudo getnonfreefonts-sys garamond