Within LaTeX there are several ways to set matrices and vectors. In the following commands and possibilities for the representation of matrices and vectors in LaTeX are shown.

However, within the standard there is no separate command or environment for this. Here you have to use the *array* environment if you want to set a matrix or a vector. But two things have to be considered, firstly the number and the alignment of the columns have to be defined and set in advance. On the other hand, the *array* environment lacks the typical parenthesis that encloses a matrix. This must be set additionally around the matrix. As an example for the representation of matrices the unit matrix is used here, since its structure might be generally known.

$\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}$Output:

\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} |

In this simple example you can already see the problem with parentheses and that the columns have to be defined in advance. The parentheses can be inserted with the commands *left* and *right*, as the following examples show. The symbols in brackets must be a printable character or, if it is a special character like the braces {, }, the character must be masked.

$\left( \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right) $ $\left[ \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right] $Output:

\[\left( \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right)\] |

\[\left[ \begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array}\right]\] |

Using the commands *cdots*, *ddots* and *vdots*, omissions, i.e. dots, within the matrix between columns and rows are also possible.

$\left( \begin{array}{rrrr} 1 & 0 & \cdots & 0 \\ 0 & \ddots & 0 & \vdots \\ \vdots & 0 & \ddots & 0 \\ 0 & \cdots & 0 & 1 \\ \end{array}\right) $Output:

\[ \left( \begin{array}{rrrr} 1 & 0 & \cdots & 0 \\ 0 & \ddots & 0 & \vdots \\ \vdots & 0 & \ddots & 0 \\ 0 & \cdots & 0 & 1 \\ \end{array}\right) \] |

If the *amsmath* usepackage is included, there are six different matrix environments available. The only difference between the environments is the respective parentheses of the matrices.

Another difference to the *array* environment is that the number of columns no longer has to be specified. The number of columns used is automatically recognized. In case a matrix with more than 10 columns is used, you will get the following error message.

! Extra alignment tab has been changed to \cr.

A possible solution is to set the counter to a higher value by `\setcounter{MaxMatrixCols}{new value}` this command changes the value of the maximum number of columns.

input | output | |

$\begin{matrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{matrix} $ |

input | output | |

$\begin{pmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{pmatrix} $ |

input | output | |

$\begin{bmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{bmatrix}$ |

input | output | |

$\begin{Bmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{Bmatrix}$ |

input | output | |

$\begin{vmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{vmatrix}$ |

input | output | |

$\begin{Vmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{Vmatrix}$ |

Another difference between the environments of *amsmath* and the *array* environment is that the orientation of the columns cannot be changed, which is not noticeable in the representation of the unit matrix. One package that allows the columns to be aligned is the *mathtools* usepackage. This package will be discussed later.

Besides the environments for normal matrices, the *amsmath* usepackage also provides an environment for setting matrices within continuous text -- the *smallmatrix* environment. This environment does not bring brackets per se, but as with the *array* environment, the brackets can also be manually inserted here.

This text $\begin{smallmatrix} a&b\\ c&d \end{smallmatrix} $ is only for showing.

This text $\bigl( \begin{smallmatrix} a&b\\ c&d \end{smallmatrix} \bigr)$ is only for showing.

For the omissions there is a new command *hdotsfor* with which at least horizontal dots can be set.

$\begin{pmatrix} 1 & 0 & \cdots & \cdots & 0 \\ 0 & \ddots & \vdots & 0 & \vdots \\ \vdots & \vdots & \ddots & 0 & \vdots \\ \vdots & \vdots & 0 & \ddots & \vdots \\ 0 & \cdots & \cdots & 0 & 1 \\ \end{pmatrix}$ $\begin{pmatrix} 1 & 0 & \hdotsfor{2} & 0 \\ 0 & \ddots & \vdots & 0 & \vdots \\ \vdots & \vdots & \ddots & 0 & \vdots \\ \vdots & \vdots & 0 & \ddots & \vdots \\ 0 & \hdotsfor{2} & 0 & 1 \\ \end{pmatrix}$Output:

\begin{pmatrix} 1 & 0 & \cdots & \cdots & 0 \\ 0 & \ddots & \vdots & 0 & \vdots \\ \vdots & \vdots & \ddots & 0 & \vdots \\ \vdots & \vdots & 0 & \ddots & \vdots \\ 0 & \cdots & \cdots & 0 & 1 \\ \end{pmatrix} |

The *mathtools* usepackage extends the *amsmath* usepackage's matrix environments with the ability to set column alignment. It is now possible to use right-aligned or left-aligned columns within the matrix environments.

The structure corresponds to the environments from *amsmath*, but the names of the environments have an additional star at the end. The desired orientation is passed as options r (right justified), c (centered) or l (left justified). However, it must be said that only all columns can be aligned uniformly. In the case that a matrix is desired in which different columns have a different alignment, this can be realized via the *array* environment.

The *mathtools* usepackage also offers adaptations for the matrices in the continuous text.

$\begin{matrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{matrix*}$ |
$\begin{matrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{matrix*}$ |
$\begin{matrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{matrix*}$ |

$\begin{pmatrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{pmatrix*}$ |
$\begin{pmatrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{pmatrix*}$ |
$\begin{pmatrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{pmatrix*}$ |

$\begin{bmatrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{bmatrix*}$ |
$\begin{bmatrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{bmatrix*}$ |
$\begin{bmatrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{bmatrix*}$ |

$\begin{Bmatrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Bmatrix*}$ |
$\begin{Bmatrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Bmatrix*}$ |
$\begin{Bmatrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Bmatrix*}$ |

$\begin{vmatrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{vmatrix*}$ |
$\begin{vmatrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{vmatrix*}$ |
$\begin{vmatrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{vmatrix*}$ |

$\begin{Vmatrix*}[r] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Vmatrix*}$ |
$\begin{Vmatrix*}[c] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Vmatrix*}$ |
$\begin{Vmatrix*}[l] -a_{1} & a_{2} \\ b_{1} & -b_{2} \end{Vmatrix*}$ |