18
0

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>
This commit is contained in:
2026-04-26 11:15:53 -07:00
parent cc993ca40d
commit 6643132141

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