feat: add Quarto themes and templates (revealjs, HTML, PDF, Typst)
R-CMD-check / R CMD check (push) Successful in 3m52s
R-CMD-check / R CMD check (push) Successful in 3m52s
Integrate Civilytics Reveal.js slide extension, HTML/PDF/Typst document themes, and _brand.yml into the package under inst/quarto/. Three new helper functions (use_civilytics_revealjs, use_civilytics_theme, use_civilytics_brand) copy assets into a user's Quarto project. Logos are stored once in inst/img/ and distributed at install time.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
% Civilytics — title-page partial.
|
||||
% Replaces Quarto's default \maketitle. Uses values from YAML
|
||||
% (\thetitle, \theauthor, \thedate) plus an \ifabstract block.
|
||||
|
||||
\begin{titlepage}
|
||||
\pagecolor{paper}
|
||||
\color{ink}
|
||||
\vspace*{0.5in}
|
||||
{\sffamily\bfseries\scriptsize\color{ember}\MakeUppercase{— Civilytics Research}\par}
|
||||
\vspace{12pt}
|
||||
{\displayfont\fontsize{32pt}{34pt}\selectfont\bfseries\color{ink}\thetitle\par}
|
||||
\vspace{8pt}
|
||||
\ifx\thesubtitle\@empty\else
|
||||
{\rmfamily\itshape\fontsize{14pt}{18pt}\selectfont\color{ink2}\thesubtitle\par}
|
||||
\fi
|
||||
\vspace{18pt}
|
||||
\noindent\rule{\linewidth}{2pt}\par
|
||||
\vspace{1pt}
|
||||
\noindent{\color{rule}\rule{\linewidth}{0.4pt}}\par
|
||||
\vspace{8pt}
|
||||
\noindent
|
||||
\begin{minipage}[t]{0.5\linewidth}
|
||||
{\sffamily\scriptsize\color{ink3}\MakeUppercase{Authors}\par}
|
||||
\vspace{2pt}
|
||||
{\sffamily\small\color{ink}\theauthor\par}
|
||||
\end{minipage}\hfill
|
||||
\begin{minipage}[t]{0.4\linewidth}\raggedleft
|
||||
{\sffamily\scriptsize\color{ink3}\MakeUppercase{Published}\par}
|
||||
\vspace{2pt}
|
||||
{\sffamily\small\color{ink}\thedate\par}
|
||||
\end{minipage}\par
|
||||
\vspace{1.5cm}
|
||||
|
||||
% Pulse mark, in ember
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
\end{tikzpicture}
|
||||
{\color{ember}\rule{40pt}{2pt}}
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
\clearpage
|
||||
@@ -0,0 +1,112 @@
|
||||
% =============================================================
|
||||
% 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) ---
|
||||
\setmainfont{Source Serif 4}[
|
||||
UprightFont = *,
|
||||
ItalicFont = * Italic,
|
||||
BoldFont = * SemiBold,
|
||||
BoldItalicFont = * SemiBold Italic,
|
||||
Ligatures = TeX,
|
||||
]
|
||||
\setsansfont{Inter}[Ligatures = TeX]
|
||||
\setmonofont{JetBrains Mono}[Scale = 0.92]
|
||||
\newfontfamily\displayfont{Libre Franklin}[Ligatures = TeX]
|
||||
|
||||
% --- 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.consulting}
|
||||
\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}}
|
||||
Reference in New Issue
Block a user