Skip to content

Typst table generator

Paste a spreadsheet or type in the grid and get Typst #table() code with a repeating header, per-column alignment, optional booktabs-style rules and a captioned #figure.

Loading the table editor… It runs locally in your browser.

Typst tables, briefly

  • columns: 3 sets the column count. Cells are listed row by row.
  • align: (left, right, center) aligns each column.
  • table.header(…) marks the header row, which repeats on page breaks and is tagged for accessibility.
  • #figure(…, caption: […]) <label> numbers the table and makes it referenceable with @label.

Coming from LaTeX?

Paste an existing LaTeX tabular into “Import data” and it is converted to the grid, so you can re-export it as Typst. The LaTeX table generator works the same way in reverse.

Questions people ask

How do you make a table in Typst?

Call the table function with a column count and the cells in order: #table(columns: 3, [A], [B], [C], [1], [2], [3]). Wrap the header cells in table.header(...) so they repeat when the table breaks across pages, and wrap the whole thing in #figure(..., caption: [...]) to number it.

How do I get booktabs-style lines in Typst?

Set stroke: none on the table and add table.hline() above the header, a thinner table.hline(stroke: 0.5pt) under it and table.hline() at the end. Tick “Booktabs-style rules” and the generator writes exactly that.

How do I reference a Typst table?

Attach a label after the figure, e.g. #figure(table(...), caption: [Results]) <tab:results>, then write @tab:results in your text. Set a caption and a label in the generator and both are written for you.

Which characters need escaping in Typst cells?

Typst markup treats # * _ $ ` [ ] < > @ ~ " and \ specially, and a leading - + = or / can start a list or heading. The generator escapes them with a backslash so cell text prints as typed.

Other table generators