mat
ElementElementElement functions can be customized with set
and show
rules.
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;
) $

ParameterParameterParameters are input values for functions. Specify them in parentheses after the function name.
delim
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) $

align
SettableSettableSettable parameters can be set using the set
rule, changing the default value used thereafter.
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) $

augment
SettableSettableSettable parameters can be set using the set
rule, changing the default value used thereafter.
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 of2
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 of2
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 toauto
, 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)) $

$ mat(0, 0, 0; 1, 1, 1; augment: #(hline: 1, stroke: 2pt + green)) $

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) $

row-gap
SettableSettableSettable parameters can be set using the set
rule, changing the default value used thereafter.
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) $

column-gap
SettableSettableSettable parameters can be set using the set
rule, changing the default value used thereafter.
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) $

rows
RequiredRequiredRequired parameters must be specified when calling the function.PositionalPositionalPositional parameters can be set by specifying them in order, omitting the parameter name.VariadicVariadicVariadic 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 $
