Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How do we add a matrix to a LaTeX document?

share|improve this question

migrated from stackoverflow.com Sep 15 '11 at 22:00

This question came from our site for professional and enthusiast programmers.

Strange how this question apparently has 6000+ views. Strange bug as a result of being from the beta era, or something? –  Chad Birch Mar 20 '09 at 5:10
Chad: Maybe it's something folks do look for :-) –  Ashwin Mar 20 '09 at 5:14
Also see: Where is the \matrix command? –  Werner Oct 11 '11 at 7:01

5 Answers 5

Ash's answer typesets the matrix inline with the text. A (perhaps) nicer way to do this is to use the smallmatrix environment in the amsmath package. Add to the document preamble:


And then you can do:

$M = \begin{smallmatrix} a&b\\ c&d \end{smallmatrix}$

If you want to bracket the matrix you can also do:

$M = \left( \begin{smallmatrix} a&b\\ c&d \end{smallmatrix} \right)$

The amsmath package also offers the shortcut matrix environments which default to centered alignment for their columns:

  • matrix: unbracketed matrix
  • pmatrix: matrix surrounded by parentheses
  • bmatrix: matrix surrounded by square brackets
  • vmatrix: matrix surrounded by single vertical lines
  • Vmatrix: matrix surrounded by double vertical lines

This info is found in "The LaTeX Companion", and the amsmath manual section 4.

share|improve this answer
I have been looking for this answer EVERYWHERE. Nobody ever talked about \usepackage{amsmath}. As a complete latex n00b, I hadn't knnown about it before, either. Thank you thank you thank you –  inspectorG4dget Feb 12 '11 at 9:16
Just to add some info, with mathtools package you have the environments bsmallmatrix, psmallmatrix, … –  Manuel Feb 7 '13 at 13:18

For flexible typesetting of matrices with color, lines and justification done by formatting parameters see An extension to amsmath matrix environments.

share|improve this answer
$M = 
\left[ {\begin{array}{*{20}c}
   x & y  \\
   z & w  \\

 \end{array} } \right]

$M = 
\left( {\begin{array}{*{20}c}
   x & y  \\
   z & w  \\

 \end{array} } \right)

$M = 
\left| {\begin{array}{*{20}c}
   x & y  \\
   z & w  \\

 \end{array} } \right|
share|improve this answer
What is {*{20}c} for here? I see only 2 columns. –  Igor Kotelnikov Jan 16 at 2:15

First: if you intend to do math in LaTeX, you SHOULD learn and use AMS LaTeX. The best reference is the Short Math Guide for LaTeX. In this guide, you will learn that there are many different matrix macros available when you use the amsmath package (e.g., \usepackage{amsmath} ).

To quote the document,

4.4. Matrices The environments pmatrix, bmatrix, Bmatrix, vmatrix and Vmatrix have (respectively) ( ), [ ], { }, | |, and || || delimiters built in. There is also a matrix environment sans delimiters, and an array environment that can be used to obtain left alignment or other variations in the column specs. [ed. To produce a matrix with parenthesis around it, use:]

  \alpha     & \beta^{*}\\ 
  \gamma^{*} & \delta 

To produce a small matrix suitable for use in text, there is a smallmatrix environment [ed. here was a matrix appropriate for text mode] that comes closer to fitting within a single text line than a normal matrix. This example was produced by

\bigl( \begin{smallmatrix} 
  a & b\\
  c & d 
\end{smallmatrix} \bigr)

To produce a row of dots in a matrix spanning a given number of columns, use \hdotsfor. For example, \hdotsfor{3} in the second column of a four-column matrix will print a row of dots across the final three columns.

Note. The plain TeX form \matrix{...\cr...\cr} and the related commands \pmatrix, \cases should be avoided in LaTeX (and when the amsmath package is loaded they are disabled).

Finally, I'd like to mention that, while it is possible to set matrices without AMS LaTeX, just use it. It offers so many benefits that until you get the hang of LaTeX, it's the best single macro package for math.

share|improve this answer
Is there any way of adding in AMS to get boxed matrix? Ie. in array it would be with \begin{array}{rrr|rr}? –  Maciej Piechotka Nov 7 '09 at 19:13
up vote 15 down vote accepted

For a matrix of the form:

M = x y
    z w

use the LaTeX code:

$M =
x & y \\
z & w \\
share|improve this answer
I agree with Ashwin's simple approach. Sometimes you can't rely on amsmath being available, so if you're after straightforward matrices, then use straightforward Latex commands. See more at andy-roberts.net/misc/latex/latextutorial9.html for how to wrap your 'array' in brackets. –  arooaroo May 5 '09 at 19:28
A complete tutorial can be found here en.wikibooks.org/wiki/LaTeX/Mathematics –  Bruno Simões Apr 7 '10 at 17:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.