Typst template for manuscripts that (mostly) complies with APA7 Style (Work in Progress).
The template does not follow all recommendations by the APA Manual, especially when the suggestions break with typographic conventions (such as double line spacing :vomiting_face:). Instead, the goal of this template is that it generates you a high-quality manuscript that has all the important components of the APA7 format, but is aesthetically pleasing.
The following works already quite well:
- consistent and simple typesetting
- correct display of author information / author note
- citations and references
- Page headers and footers (show short title in header)
- Option to anonymize the paper
- Tables: consisting of 3 parts (caption, content, and table notes)
- figures
This is still not finished:
- complete pandoc integration (template for pandoc to replace Latex-based workflows)
- automatic calculation of page margins (currently margins are fixed and optimized for A4 paper)
The easiest way to get started is to edit the example file, which has sensible default values. Most fields in the configuration are optional and will safely be ignored (not rendered) when you set them to none
. For a full example with a figure and a table go to the github repository and have a look at example/example.typ
.
Authors
The authors
setting expects an array of dictionaries with the following fields:
(
name: "First Name Last Name", // Name of author as it should appear on the paper title page
affiliation: "University, Department", // affiliation(s) of author as it should appear on the title page
orcid: "0000-0000-0000-0000", // optional for author note
corresponding: true, // optional to mark an author as corresponding author
email: "email@upenn.edu", // optional email address, required if author is corresponding
postal: "Longer string", // optional postal address for corresponding author
)
Note that the affiliation
field also accepts an array, in case an author has several affiliations:
(
name: "First Name Last Name",
affiliation: ("University A", "University B")
...
)
Anonymization
Sometimes you need to submit a paper without any author information. In such cases you can set anonymous
to true
.
Tables
The template has basic support for tables with a handful of utilities. Analogous to the Latex booktabs package, there are pre-defined horizontal lines (“rules”):
#toprule
: used at the top of the table, before the first row#midrule
: used to separate the header row, or to separate a totals row at the bottom#bottomrule
: used after the last row (technically the same as toprule, but may be useful later to define custom behaviour)
Additionally, there is a #tablenote
function to be used to place a table note below the table.
A minimal usage example (taken from the typst documentation):
// wrap everything in a #figure
#figure(
[
#table(
columns: 2,
align: left,
toprule, // separate table from other content
table.header([Amount], [Ingredient]),
midrule, // separation between table header and body
[360g], [Baking flour],
[250g], [Butter (room temp.)],
[150g], [Brown sugar],
[100g], [Cane sugar],
[100g], [70% cocoa chocolate],
[100g], [35-40% cocoa chocolate],
[2], [Eggs],
[Pinch], [Salt],
[Drizzle], [Vanilla extract],
bottomrule // separation after the last row
)
// tablenote goes after the #table
#tablenote([Here are some additional notes.])
],
// caption is part of the #figure
caption: [Here is the table caption]
)
Example figure template/fig1.svg
taken from this study: Tajima, H., & Fujisawa, F. (2020). Projectile Trajectory of Penguin’s Faeces and Rectal Pressure Revisited. arxiv: 2007.00926
- Feel free to raise an issue in the github repository (e.g., tweaks, feature requests, bugs, etc)
- Pull requests are always welcome!