66

I'm using bmatrix environment from the amsmath package, and I'm trying to do something like this:

\documentclass{article}
\usepackage{amsmath}

 \begin{document}
     \begin{equation}
         \begin{bmatrix}
             1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
         \end{bmatrix}
    \end{equation}
 \end{document}

However, pdfLaTeX returns an error: "Extra alignment tab has been changed to \cr", and in the output the extra element is moved to the next row. (If I remove one element, then it works perfectly fine). I guess this means that I've hit some hard limit on the number of tab stops in a matrix. Is there a way to change this?

The elements in the matrix are short and could fit perfectly on a single row.

85

Googling "10 columns" together with "tex" and "halign" lead me to this document, where it is explained that, e.g.,

\setcounter{MaxMatrixCols}{20}

enables you to use 20 columns.

  • 8
    This is documented in the footnote on page 8 of the amsmath manual. – Philipp Sep 27 '10 at 12:07
  • 10
    Which leads to the question: Why is there even a hard limit? – masher Mar 5 '17 at 6:41
  • 1
    It's worth nothing that, as explained in the document, this line of code should "precede the start of the matrix environment". – Sambo Nov 30 '18 at 17:44
6

Yet another method is to use the array construct from amsmath package.

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

\begin{equation}
\left[ \begin{array}{@{}*{11}{c}@{}}
     1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
\end{array} \right]
\end{equation}

\end{document}

enter image description here

  • 1
    If you want to emulate bmatrix, you should use \begin{array}{@{}*{11}{c}@{}}. The *{11}{c} is just a convenient way to avoid counting the number of c's; the important thing is @{} at the sides, to kill the automatically inserted padding. – egreg Apr 19 '15 at 15:48
  • 1
    @egreg Many thanks, I was just thinking of adding two \!\! around the array, but your suggestion is much more elegant. – AboAmmar Apr 19 '15 at 15:55
  • The bmatrix environment indeed does \hspace{-\arraycolsep} on either ends (it's one of the reasons why the MaxMatrixCols counter is needed). – egreg Apr 19 '15 at 16:02
  • Isn't the array construct native instead of from the amsmath package? – L. F. Feb 26 at 11:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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