The code below works, but when I add 10 more columns, it does not. So, how can I add ten more columns to the matrix below?

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{equation}
\begin{bmatrix}
 1 & 0 & 0 & 0  & 0 & 1 & 0 & 0 & 1 & 0 
\end{bmatrix}
\end{equation}

\end{document}
up vote 39 down vote accepted

One simple way is to use the array environment together the expansible brackets \left[ and \right] (note the use of {*{20}c} as suggested by @cmhughes):

\left[
\begin{array}{*{20}c}
 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 
\end{array}
\right]

The problem is the difference on the spacing for the brackets.


From the texdoc amsmath documentation:

The maximum number of columns in a matrix is determined by the counter MaxMatrixCols (normal value = 10), which you can change if necessary using \setcounter or \addtocounter commands.

So, you can just use

\setcounter{MaxMatrixCols}{20}
\begin{equation}
\begin{bmatrix}
 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 
\end{bmatrix}
\end{equation}
  • @Günal, there is a global solution. Before to replace all your matrices, consider reading the updated answer. – Sigur Jan 24 '13 at 11:29
  • 3
    +1 you shouldn't need to write {ccccccccccccc} and can use {*{20}c} – cmhughes Jan 24 '13 at 16:43
  • 3
    “The problem is the difference on the spacing for the brackets.” → Use \begin{array}{@{}<columns>@{}} instead, i.e. \begin{array}{@{}*{20}c@{}}. – Qrrbrbirlbel Jan 28 '13 at 2:14

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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