Skip to content

Label & Badge Sheets

Aurghyadip edited this page Aug 3, 2026 · 1 revision

Label & Badge Sheets (mail-merge-labels)

The #mail-merge-labels(...) function renders grid layouts such as address sticker sheets, shipping labels, conference name badges, table place cards, and multi-up cards.


⚙️ Function Signature

#mail-merge-labels(
  data,
  template,
  preset: none,
  columns: none,
  rows: none,
  width: none,
  height: none,
  column-gutter: none,
  row-gutter: none,
  page-margin: none,
  paper: none,
  cell-padding: none,
  show-cut-lines: false,
  fill: none,
  filter: none,
  sort-by: none,
  reverse: false,
  start: 1,
  limit: none,
  trim: true,
  default-value: "",
  on-empty: [No matching records found.]
)

🏷️ Presets Catalog (presets)

typst-mailmerge comes with pre-configured presets for popular Avery label sheets and standard paper grids. You can pass any preset directly to the preset: parameter:

#import "@preview/mailmerge:0.1.0": mail-merge-labels, presets

#mail-merge-labels(
  "data/clients.csv",
  preset: presets.avery-5160,
  record => [ ... ]
)

Pre-Configured Presets List

Preset Name Grid (Cols x Rows) Cell Size Paper Size Description
presets.avery-5160 3 x 10 (30 / sheet) 2.625" x 1.0" Letter Standard Address Labels
presets.avery-5161 2 x 10 (20 / sheet) 4.0" x 1.0" Letter Address / File Labels
presets.avery-5162 2 x 7 (14 / sheet) 4.0" x 1.33" Letter Folder & Return Address Labels
presets.avery-5163 2 x 5 (10 / sheet) 4.0" x 2.0" Letter Shipping Labels
presets.avery-5164 2 x 3 (6 / sheet) 4.0" x 3.33" Letter Large Shipping Labels / Badges
presets.avery-L7160 3 x 7 (21 / sheet) 63.5mm x 38.1mm A4 Metric A4 Address Labels
presets.avery-L7163 2 x 7 (14 / sheet) 99.1mm x 38.1mm A4 Metric A4 Address Labels
presets.a4-3x8 3 x 8 (24 / sheet) 70mm x 36mm A4 Universal A4 Grid Labels
presets.a4-2x7 2 x 7 (14 / sheet) 105mm x 42.3mm A4 Universal A4 Grid Labels
presets.badge-2x4 2 x 4 (8 / sheet) 3.5" x 2.25" Letter Event Name Badges
presets.card-2x2 2 x 2 (4 / sheet) 3.75" x 4.5" Letter Table Place Cards / Large Badges

🎨 Overriding & Custom Grids

You can override individual preset properties or define custom grid layouts manually:

#mail-merge-labels(
  data,
  columns: 4,
  rows: 6,
  width: 1fr,
  height: 1fr,
  column-gutter: 10pt,
  row-gutter: 10pt,
  page-margin: 0.5in,
  paper: "us-letter",
  cell-padding: 6pt,
  record => [ ... ]
)

✂️ Cut Guidelines (show-cut-lines)

Enable light cut lines around each label cell to assist with manual trimming or align printers:

  • show-cut-lines: true (default stroke: 0.5pt light gray)
  • show-cut-lines: 1pt + rgb("#cbd5e1") (custom stroke)
#mail-merge-labels(
  data,
  preset: presets.badge-2x4,
  show-cut-lines: true,
  record => [ ... ]
)

🌈 Cell Fill (fill)

fill accepts a solid color or a function record => color for dynamic badge coloring based on record attributes:

#mail-merge-labels(
  data,
  preset: presets.badge-2x4,
  fill: record => if record.Role == "Speaker" { rgb("#fef3c7") } else { rgb("#f1f5f9") },
  record => [ ... ]
)

Clone this wiki locally