Typst Bibliography
BibTeX .bib files work directly. Cite with @key. Switch styles with one argument. No bibtex/biber compile step.
Minimal example
= Introduction
Recent advances @smith2024 show that ...
Other approaches @jones2023 @brown2022 disagree.
#bibliography("references.bib")That's it. references.bib is your standard BibTeX file. @smith2024 uses the BibTeX entry's citation key.
Common citation styles
// IEEE style: [1], [2], numbered
#bibliography("refs.bib", style: "ieee")
// APA: (Author, Year)
#bibliography("refs.bib", style: "american-psychological-association")
// ACM
#bibliography("refs.bib", style: "association-for-computing-machinery")
// Chicago author-date
#bibliography("refs.bib", style: "chicago-author-date")
// Nature
#bibliography("refs.bib", style: "nature")
// Custom CSL file
#bibliography("refs.bib", style: "my-journal.csl")Citation forms
| Syntax | Use |
|---|---|
| @key | Standard citation |
| @key @key2 | Multiple citations |
| #cite(<key>) | Function form |
| #cite(<key>, supplement: [p. 42]) | With page number |
| #cite(<key>, form: "prose") | In-text narrative form |
BibTeX file format (works directly)
% references.bib
@article{smith2024,
author = {Jane Smith and John Doe},
title = {A Significant Result},
journal = {Journal of Important Research},
year = {2024},
volume = {42},
pages = {1-15},
doi = {10.1234/jir.2024.42.1}
}
@inproceedings{jones2023,
author = {Alice Jones},
title = {Confirmation of the Result},
booktitle = {Proc. of CONF 2023},
year = {2023},
pages = {100-110}
}Hayagriva (Typst-native, optional)
If you're starting fresh, Typst's native bibliography format is YAML-based and simpler than BibTeX:
# references.yml
smith2024:
type: article
author: ["Jane Smith", "John Doe"]
title: A Significant Result
date: 2024
serial-number:
doi: "10.1234/jir.2024.42.1"
page-range: 1-15
parent:
type: periodical
title: Journal of Important Research
volume: 42Use #bibliography("references.yml") the same way. Most authors stick with BibTeX since it's the universal standard.
Drop your existing .bib file into TypeTeX's in-browser Typst editor and start citing with @key syntax. No bibtex compile step, instant rendering.
Start writing in TypstFrequently Asked Questions
Place #bibliography("references.bib") at the end of your document. Typst reads the BibTeX file directly — no separate compile step like LaTeX's bibtex/biber. Cite entries with @key syntax in body text: 'Recent work @smith2024 shows ...'
Yes — natively. Drop your .bib file in your project, then call #bibliography("references.bib"). Typst parses BibTeX directly, so all the .bib files you've collected over the years just work. No conversion needed.
Use @key after the .bib entry's citation key: 'According to @smith2024, the result is significant.' For multiple citations: 'Several studies @smith2024 @jones2023 confirm this.' For a parenthetical with prefix/suffix: #cite(<smith2024>, supplement: [p. 42]).
Pass style to bibliography(): #bibliography("refs.bib", style: "ieee"). Built-in styles: "ieee", "acm-proc-article-sp", "american-psychological-association" (APA), "chicago-author-date", "nature", "plos-one", and many more. For custom styles, point to a local CSL file.
CSL files (.csl extension, used by Zotero/Mendeley) work directly: #bibliography("refs.bib", style: "my-journal.csl"). Download CSL styles from the Zotero Style Repository (zotero.org/styles) — there are 10,000+ pre-made styles for any journal you might submit to.
Use the cite() function with supplement: 'See #cite(<smith2024>, supplement: [pp. 42-45]) for details.' The supplement appears in the citation: '(Smith, 2024, pp. 42-45)' or '[1, pp. 42-45]' depending on style.
Hayagriva is Typst's native bibliography format (YAML-based, simpler than BibTeX). Save references as references.yml, then #bibliography("references.yml") works the same. Use BibTeX if you have existing .bib files; use Hayagriva if you're starting fresh and want clean YAML.
Yes: 'Several papers confirm this @smith2024 @jones2023 @brown2022.' Typst groups them according to the active style — you might get [1-3] for IEEE-style or (Smith, 2024; Jones, 2023; Brown, 2022) for APA-style.
Much simpler. No separate bibtex/biber compile step — Typst handles everything in one pass. No \bibliographystyle{} + \bibliography{} + manually escaping special characters. The same .bib file works directly with one #bibliography() call. Switching styles is one argument change instead of recompiling.