A small set of opinionated Quarto project templates
with RStudio integration. qkit ships four template types — a Beamer
presentation, an academic CV, a Quarto book project, and a minimalist
academic paper — each with a sensible LaTeX preamble, ORCID-aware
author handling, and a one-click File > New Project entry in RStudio.
Inspired by beamer-tips, adapted for a Quarto-based workflow and extended with three more formats.
# install.packages("remotes")
remotes::install_github("GabboCg/qkit")You also need Quarto and a
working TeX distribution (TinyTeX or TeX Live). After installing
qkit, restart RStudio once so the wizard picks up the new project
templates.
| Type | RStudio wizard entry | Output | Files dropped |
|---|---|---|---|
beamer |
qkit Beamer Presentation | XeLaTeX slides | index.qmd + _extensions/qkit/ |
cv |
qkit CV | LuaLaTeX one-pager | index.qmd + _extensions/qkit/ |
book |
qkit Book | XeLaTeX book (Krantz class) | full multi-file Quarto book project |
paper |
qkit Paper | XeLaTeX article + Internet Appendix | index.qmd, internet-appendix.qmd, title.tex, preamble.tex, preamble-appendix.tex, mark-last-author.lua, references.bib, references-appendix.bib |
The Beamer and CV formats are backed by a Quarto extension; Book and Paper are self-contained project scaffolds (no extension installed).
File > New Project > New Directory, pick one of the four qkit
entries, fill in the wizard fields, and click Create. RStudio
opens the scaffolded index.qmd in the editor.
qkit::create_project("my-slides", type = "beamer", title = "Talk Title")
qkit::create_project("my-cv", type = "cv", author = "Your Name")
qkit::create_project("my-book", type = "book", title = "Book Title", author = "Your Name")
qkit::create_project("my-paper", type = "paper", title = "Paper Title")To render an already-scaffolded document:
qkit::qkit_render("my-slides/index.qmd")
qkit::qkit_preview("my-slides/index.qmd") # live-reload previewqkit_render() auto-installs the qkit Quarto extension into the
project directory if it isn't already there (only relevant for
beamer and cv — the book and paper formats don't use the
extension).
To install the qkit Quarto extension manually into any existing Quarto project:
qkit::install_extension(path = ".")| Format | YAML format: entry |
|---|---|
| Beamer | qkit-beamer |
| CV | qkit-pdf |
| Book | configured in _quarto.yml's format: pdf: block (no extension key) |
| Paper | configured in index.qmd's format: pdf: block (no extension key) |
- Custom color palette (blue, red, yellow, green)
- Bullet styling, itemize / enumerate spacing
- Custom footline with frame numbers and navigation buttons
- Yellow section-break slides
- Multiple authors with affiliations and ORCID
- Short title and short author support
- Callout styling (note, warning)
- Text justification across frames
- LuaLaTeX engine with
mathpazofont - A small Pandoc Lua filter lets you write the CV in mostly-pure
markdown via four semantic divs:
.cv-entries(italic-key two-col table),.cv-keys(bold-key two-col table),.cv-publications(hanging-indent numbered list),.cv-references(two-column multicols block of.refereesubdivs) - Automatic horizontal rule under every
# Sectionheading - Fontawesome contact icons in the title header (email, phone, GitHub, web)
- Optional ORCID link via
orcidlink - Right-aligned "Updated: \today" stamp at the end of the document,
controlled by
updated: truein YAML - Page footer with author / title on the centre and
page / totalon the right
- Multi-file Quarto book project (
_quarto.ymlwithproject: type: book) - Krantz document class (
krantz.clsshipped in the scaffold) - xelatex engine,
makeindex,sourcecodeprofont for code - Generic title-page partial with optional ORCID and affiliation; no PhD-thesis specifics
- Optional dedication page (uncomment a block in
index.qmdto enable; renders for both PDF and HTML) - Book-friendly date format (
MMMM YYYY→ "May 2026") - Sample chapter scaffold: preface, intro, one part with two chapters, references, one appendix
- Minimalist 12pt
article, 1in margins, doublespaced body, one-and-a-half-spaced title block and tables - Structured-YAML author list with ORCID, email, affiliations,
and an optional
corresponding: trueflag — rendered by a customtitle.texPandoc partial asName\textsuperscript{\orcidlink{...}}\thanks{Email: \href{mailto:...}{...}. Address: ...}for each author - Oxford-comma joining of the author list (
A,A and B, orA, B, and C) driven by a Pandoc Lua filter (mark-last-author.lua) that annotates the YAML list withis-first/is-last/next-is-lastflags - Italic subsection headings, period-after-section numbering
(
1. Introduction), 1.5cm-indented quote env, symmetric display-equation spacing pinned to 12pt on all four\abovedisplayskip/\belowdisplayskip/*shortskiplengths - "Preliminary draft --- please do not cite without permission"
italic subtitle on the same line as the title; the title's
\thanks{}acknowledgment footnote sits next to the title text, not the subtitle - JEL Classification line below the abstract's Keywords
- Footnotes pinned to the bottom of every page via
\usepackage[bottom]{footmisc} - In-paper Appendix block (
\appendix+\thesection = Appendix A) - Separate
internet-appendix.qmdwith a custom\maketitleredefinition (inpreamble-appendix.tex) emitting the "Internet Appendix for / Title / Authors / SUPPLEMENTARY RESULTS" centered title page, plus its ownreferences-appendix.bib - LaTeX preamble externalised into
preamble.texandpreamble-appendix.texso it can be edited without touching the YAML header - References on a new page after the Conclusion (and at the end of the Internet Appendix)
- Pandoc
citeprocfor bibliographies (Chicago author-date by default) - Body is a self-documenting Quarto tutorial: each section walks
through a Quarto/Markdown feature (cross-reference prefixes,
labeled equations, theorem environments, citation styles,
callouts, knitr table chunks, pipe tables, definition lists,
raw
{=tex}/{=html}blocks,.content-visible when-format=...conditional content)
If you encounter a bug, please file an issue with a minimal reproducible example on GitHub. For questions, email gabriel.cabreraguzman@postgrad.manchester.ac.uk.
