Typst Guide

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

SyntaxUse
@keyStandard citation
@key @key2Multiple 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: 42

Use #bibliography("references.yml") the same way. Most authors stick with BibTeX since it's the universal standard.

Try Typst with your BibTeX file

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 Typst

Frequently Asked Questions

How do I add a bibliography to a Typst document?

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 ...'

Can I use my existing BibTeX (.bib) file in Typst?

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.

How do I cite in Typst?

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]).

How do I change the citation style in Typst?

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.

How do I use a CSL (Citation Style Language) 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.

How do I cite a specific page or chapter in Typst?

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.

How do I make Typst use Hayagriva instead of BibTeX?

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.

Can I cite multiple sources in one place?

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.

How does Typst's bibliography compare to LaTeX's?

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.

More Typst guides