Skip to main content

document

Macro document 

Source
document!() { /* proc-macro */ }
Expand description

Creates a Document with embedded templates, fonts, and packages.

§Usage

// Generate PDF
let pdf = typst_bake::document!("main.typ").to_pdf()?;

// Generate SVG (one per page)
let svgs = typst_bake::document!("main.typ").to_svg()?;

// Generate PNG at 144 DPI (Retina)
let pngs = typst_bake::document!("main.typ").to_png(144.0)?;

§Configuration

Add to your Cargo.toml:

[package.metadata.typst-bake]
template-dir = "./templates"
fonts-dir = "./fonts"

§What Gets Embedded

  • Templates: All files in template-dir are embedded and accessible from .typ files. Paths resolve relative to the referring .typ file.
  • Fonts: Only supported font formats (TTF, OTF, TTC) are embedded. At least one font is required; without fonts, Typst produces invisible text.
  • Packages: Using packages requires no manual setup. Just use #import "@preview/..." or #import "@local/..." as you normally would in Typst. The macro scans for package imports and recursively resolves all dependencies at compile time. Shares Typst’s own package directories, so locally installed packages are picked up automatically.