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

ParametersParameters are the inputs to a function. They are specified in parentheses after the function name.
Parameters are the inputs to a function. They are specified in parentheses after the function name.
delim
none or stringSettableSettable parameters can be customized for all following uses of the function with a set
rule.
none or string
SettableSettable parameters can be customized for all following uses of the function with a
set
rule.The delimiter to use.
"("
Delimit with parentheses.
"["
Delimit with brackets.
"{"
Delimit with curly braces.
"|"
Delimit with vertical bars.
"||"
Delimit with double vertical bars.
Default: "("
View example
#set math.mat(delim: "[")
$ mat(1, 2; 3, 4) $

augment
SettableSettable parameters can be customized for all following uses of the function with a set
rule.
Settable parameters can be customized for all following uses of the function with a
set
rule.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.
- 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.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.stroke
: How to stroke the line. If set toauto
, takes on a thickness of 0.05em and square line caps.
Default: none
View example
$ mat(1, 0, 1; 0, 1, 2; augment: #2) $

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

rows
RequiredPositionalPositional parameters are specified in order, without names.VariadicVariadic parameters can be specified multiple times.
Positional parameters are specified in order, without names.
Variadic parameters can be specified multiple times.
An array of arrays with the rows of the matrix.
View example
#let data = ((1, 2, 3), (4, 5, 6))
#let matrix = math.mat(..data)
$ v := matrix $
