Typst template for NIH-style grant documents. Uses Liberation Serif and enforces NIH formatting rules (US Letter, 0.5″ margins, 11 pt, justified text, heading styles).
-
Click Use this template → Create a new repository on GitHub.
-
Clone your new repo and initialize the formatting submodule:
git clone --recurse-submodules git@github.com:YOUR-USERNAME/YOUR-REPO
Or if already cloned:
git submodule update --init --recursive
-
Update the badge URLs and image URL at the top of this README to use your username and repo name.
-
Copy the CI workflow into place:
mkdir -p .github/workflows cp assets/grants_common/github_workflows/release.yml .github/workflows/release.yml
Edit the .typ files directly. Each section is a separate file:
| File | Section |
|---|---|
main.typ |
Entry point — imports sections and applies NIH formatting |
aims-standalone.typ |
Additional entry point — preview of Aims only with formatting |
aims.typ |
Specific Aims |
approach.typ |
Research Strategy / Approach |
facillities.typ |
Facilities & Resources |
main.typ should import the NIH template and each section file:
#import "/assets/grants_common/lib.typ": *
#show: nih-format
== Specific Aimes
#include "aims.typ"
== Approach
#include "approach.typ"
== Facilities
#include "facilities.typ"Within a section file, use standard Typst markup:
Paragraph text goes here. *Bold*, _italic_, and @citation are supported.
== Aim 1: Short title
Description of the aim.
- Hypothesis: ...
- Approach: ...Heading levels follow NIH rules automatically: = → bold, == → bold italic, === → italic.
For exporting individual sections (eg Specific Aims)
as standalone documents, create a section-standalone.typ
that imports the formatting components and just includes
the relevant section, eg
// aims-standalone.typ
#import "/assets/grants_common/lib.typ": *
#show: nih-format
= Specific Aims
#include "aims.typ"
#bibliography("refs.bib", title: none, style: "apa")If you need a different page limit or margin for a specific section, override just that file:
#show: nih-format.with(page-overrides: (margin: 0.75in))Requires Typst 0.14 and Liberation Serif (sudo apt-get install fonts-liberation or equivalent).
# Compile once
typst compile main.typ grant.pdf
# Watch for changes
typst watch main.typ grant.pdf
# export with current commit hash
# fish shell
typst compile main.typ ~/Downloads/(basename $PWD)-(git rev-parse --short HEAD).pdf
# bash/zsh
typst compile main.typ ~/Downloads/$(basename $PWD)-$(git rev-parse --short HEAD).pdf
Creating a GitHub release triggers the CI workflow to compile main.typ and aims-standalone.typ, attaching grant.pdf and aims.pdf to the release.
To create a release:
gh release create v1.0 --title "submission draft" --notes "Initial submission draft"