R-CMD-check / R CMD check (pull_request) Successful in 3m56s
- LaTeX: capture pandoc's \subtitle into \thesubtitle so subtitled PDFs compile; suppress the default \maketitle/abstract so only the branded title page renders (no double title); drop the unused tikz dependency from the title partial (#13) - LaTeX: stop requiring a "Source Serif 4 SemiBold" face that the setup never installs; use the family's native Bold weight (#14) - Typst: wrap title/subtitle/date in [ ] so text containing Typst keywords ("for"/"in") no longer breaks compilation (#12) - Fix footer URL civilytics.consulting -> civilytics.com in the LaTeX and Typst templates and the slides example (#11) - Bump version to 0.3.0
136 lines
4.4 KiB
TeX
136 lines
4.4 KiB
TeX
% =============================================================
|
|
% Civilytics — LaTeX preamble for Quarto PDF
|
|
% Usage in YAML:
|
|
% format:
|
|
% pdf:
|
|
% include-in-header: quarto/latex/civilytics.tex
|
|
% include-before-body: quarto/latex/civilytics-title.tex
|
|
% Requires: xelatex or lualatex (for system fonts).
|
|
% =============================================================
|
|
|
|
\usepackage{xcolor}
|
|
\usepackage{fontspec}
|
|
\usepackage{titlesec}
|
|
\usepackage{titling}
|
|
\usepackage{fancyhdr}
|
|
\usepackage{enumitem}
|
|
\usepackage{booktabs}
|
|
\usepackage{caption}
|
|
\usepackage[hidelinks]{hyperref}
|
|
\usepackage{microtype}
|
|
\usepackage{tcolorbox}
|
|
\tcbuselibrary{skins,breakable}
|
|
|
|
% --- Civilytics palette ---
|
|
\definecolor{paper}{HTML}{FAF7F2}
|
|
\definecolor{paper2}{HTML}{F2EDE4}
|
|
\definecolor{ink}{HTML}{0E1A2B}
|
|
\definecolor{ink2}{HTML}{2B3A52}
|
|
\definecolor{ink3}{HTML}{5A6A82}
|
|
\definecolor{rule}{HTML}{D6CEBD}
|
|
\definecolor{ruleStrong}{HTML}{B8AE97}
|
|
\definecolor{navy}{HTML}{22406A}
|
|
\definecolor{ember}{HTML}{C25311}
|
|
\definecolor{emberDark}{HTML}{923D00}
|
|
\definecolor{teal}{HTML}{1F6F70}
|
|
\definecolor{plum}{HTML}{6B3A5E}
|
|
|
|
% --- Page color ---
|
|
\pagecolor{paper}
|
|
\color{ink}
|
|
|
|
% --- Fonts (require local install or fontspec lookup) ---
|
|
% Bold uses the family's native Bold weight (present in every Source Serif 4
|
|
% install). Do NOT hard-require a "SemiBold" face: the package installs no
|
|
% system fonts for the PDF path, and standard Source Serif 4 ships only
|
|
% Regular/Bold/Italic/BoldItalic. See civilyticsR issue #14.
|
|
\setmainfont{Source Serif 4}[
|
|
UprightFont = *,
|
|
ItalicFont = * Italic,
|
|
Ligatures = TeX,
|
|
]
|
|
\setsansfont{Inter}[Ligatures = TeX]
|
|
\setmonofont{JetBrains Mono}[Scale = 0.92]
|
|
\newfontfamily\displayfont{Libre Franklin}[Ligatures = TeX]
|
|
|
|
% --- Subtitle capture ---
|
|
% Quarto/pandoc defines \subtitle (which appends to \@title) but never
|
|
% \thesubtitle, which the title page uses. This preamble is emitted before
|
|
% pandoc's \providecommand{\subtitle}, so our definition wins: capture the
|
|
% subtitle into \thesubtitle instead. See civilyticsR issue #13.
|
|
\makeatletter
|
|
\providecommand{\thesubtitle}{}
|
|
\def\subtitle#1{\renewcommand{\thesubtitle}{#1}}
|
|
\makeatother
|
|
|
|
% --- Use the Civilytics title page, not pandoc's default ---
|
|
% civilytics-title.tex (include-before-body) IS the title page. Quarto emits
|
|
% its default \maketitle + abstract *before* include-before-body, which would
|
|
% print a second, unstyled title. Neutralise both here, in the preamble
|
|
% (runs at \begin{document}, before the default title). The branded title page
|
|
% does not display the abstract. See civilyticsR issue #13.
|
|
\AtBeginDocument{%
|
|
\renewcommand{\maketitle}{}%
|
|
\renewenvironment{abstract}{\setbox0=\vbox\bgroup}{\egroup}%
|
|
}
|
|
|
|
% --- Hyperlinks ---
|
|
\hypersetup{
|
|
colorlinks = true,
|
|
linkcolor = navy,
|
|
urlcolor = navy,
|
|
citecolor = navy,
|
|
filecolor = navy,
|
|
}
|
|
|
|
% --- Section headings ---
|
|
\titleformat{\section}[block]
|
|
{\bfseries\Large\displayfont\color{ink}}
|
|
{}{0pt}
|
|
{\titlerule[0.4pt]\vspace{4pt}}[\vspace{-6pt}]
|
|
\titleformat{\subsection}[block]
|
|
{\bfseries\large\displayfont\color{ink}}{}{0pt}{}
|
|
\titleformat{\subsubsection}[block]
|
|
{\bfseries\normalsize\displayfont\color{ink}}{}{0pt}{}
|
|
|
|
% --- Page header / footer ---
|
|
\pagestyle{fancy}
|
|
\fancyhf{}
|
|
\renewcommand{\headrulewidth}{0pt}
|
|
\renewcommand{\footrulewidth}{0pt}
|
|
\fancyhead[L]{\sffamily\scriptsize\color{ink3}\MakeUppercase{Civilytics Consulting}}
|
|
\fancyhead[R]{\sffamily\scriptsize\color{ink3}\thetitle}
|
|
\fancyfoot[L]{\sffamily\scriptsize\color{ink3}civilytics.com}
|
|
\fancyfoot[C]{\sffamily\scriptsize\color{ink3}\thepage}
|
|
\fancyfoot[R]{\sffamily\scriptsize\color{ink3}\textcopyright\ 2026}
|
|
|
|
% --- Captions ---
|
|
\captionsetup{
|
|
font={sf,small,color=ink3},
|
|
labelfont={sf,bf,color=ink3},
|
|
labelsep=period,
|
|
justification=raggedright,
|
|
singlelinecheck=false,
|
|
}
|
|
|
|
% --- Pullquote ---
|
|
\newtcolorbox{pullquote}{
|
|
enhanced, breakable, frame hidden, colback=paper,
|
|
borderline west = {2pt}{0pt}{ember},
|
|
left=14pt, right=4pt, top=4pt, bottom=4pt,
|
|
fontupper={\itshape\rmfamily\large\color{ink}},
|
|
}
|
|
|
|
% --- Code blocks (Pandoc + listings or minted both inherit colors below) ---
|
|
\definecolor{codebg}{HTML}{0E1A2B}
|
|
\definecolor{codefg}{HTML}{FAF7F2}
|
|
|
|
% --- Lists tighter ---
|
|
\setlist{itemsep=2pt, topsep=4pt}
|
|
|
|
% --- Tabular numerals ---
|
|
\newcommand{\tnum}[1]{{\addfontfeature{Numbers={Tabular,Lining}}#1}}
|
|
|
|
% --- Ember accent rule above section starts ---
|
|
\newcommand{\emberrule}{{\color{ember}\rule{60pt}{3pt}}\par\vspace{4pt}}
|