Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

mat
Element
Element
Element functions can be customized with set and show rules.

A matrix.

The elements of a row should be separated by commas, while the rows themselves should be separated by semicolons. The semicolon syntax merges preceding arguments separated by commas into an array. You can also use this special syntax of math function calls to define custom functions that take 2D data.

Content in cells can be aligned with the align parameter, or content in cells that are in the same row can be aligned with the & symbol.

Example

$ mat(
  1, 2, ..., 10;
  2, 2, ..., 10;
  dots.v, dots.v, dots.down, dots.v;
  10, 10, ..., 10;
) $
Preview

Parameter
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

delim
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The delimiter to use.

Can be a single character specifying the left delimiter, in which case the right delimiter is inferred. Otherwise, can be an array containing a left and a right delimiter.

Default value:

("(", ")")

Show example
#set math.mat(delim: "[")
$ mat(1, 2; 3, 4) $
Preview

align
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The horizontal alignment that each cell should have.

Default value:

center

Show example
#set math.mat(align: right)
$ mat(-1, 1, 1; 1, -1, 1; 1, 1, -1) $
Preview

augment
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

Draws augmentation lines in a matrix.

  • none: No lines are drawn.
  • A single number: A vertical augmentation line is drawn after the specified column number. Negative numbers start from the end.
  • A dictionary: With a dictionary, multiple augmentation lines can be drawn both horizontally and vertically. Additionally, the style of the lines can be set. The dictionary can contain the following keys:
    • hline: The offsets at which horizontal lines should be drawn. For example, an offset of 2 would result in a horizontal line being drawn after the second row of the matrix. Accepts either an integer for a single line, or an array of integers for multiple lines. Like for a single number, negative numbers start from the end.
    • vline: The offsets at which vertical lines should be drawn. For example, an offset of 2 would result in a vertical line being drawn after the second column of the matrix. Accepts either an integer for a single line, or an array of integers for multiple lines. Like for a single number, negative numbers start from the end.
    • stroke: How to stroke the line. If set to auto, takes on a thickness of 0.05 em and square line caps.

Default value:

none

Show example
$ mat(1, 0, 1; 0, 1, 2; augment: #2) $
// Equivalent to:
$ mat(1, 0, 1; 0, 1, 2; augment: #(-1)) $
Preview
$ mat(0, 0, 0; 1, 1, 1; augment: #(hline: 1, stroke: 2pt + green)) $
Preview

gap

The gap between rows and columns.

This is a shorthand to set row-gap and column-gap to the same value.

Default value:

0% + 0pt

Show example
#set math.mat(gap: 1em)
$ mat(1, 2; 3, 4) $
Preview

row-gap
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The gap between rows.

Default value:

0% + 0.2em

Show example
#set math.mat(row-gap: 1em)
$ mat(1, 2; 3, 4) $
Preview

column-gap
Settable
Settable
Settable parameters can be set using the set rule, changing the default value used thereafter.

The gap between columns.

Default value:

0% + 0.5em

Show example
#set math.mat(column-gap: 1em)
$ mat(1, 2; 3, 4) $
Preview

rows
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.
Variadic
Variadic
Variadic parameters can be specified multiple times.

An array of arrays with the rows of the matrix.

Show example
#let data = ((1, 2, 3), (4, 5, 6))
#let matrix = math.mat(..data)
$ v := matrix $
Preview
Open official docs

Search