Набор большой матрицы в LaTeX

У меня есть матрица 3x12, которую я хотел бы ввести в мой документ LaTeX (с amsmath), но LaTeX, кажется, задыхается, когда матрица становится больше 3x10:

\begin{equation}
\textbf{e} = 
\begin{bmatrix} 
1&1&1&1&0&0&0&0&-1&-1&-1&-1\\
1&-1&0&0&1&1&-1&-1&0&0&1&-1\\
0&0&1&-1&1&-1&1&-1&1&-1&0&0
\end{bmatrix}
\end{equation}

Ошибка: вкладка с дополнительным выравниванием была изменена на \cr. говорит мне, что у меня больше &, чем может обрабатывать среда bmatrix. Есть ли правильный способ справиться с этим? Также кажется, что выравнивание для 1 и -1 различно, это также ожидалось от bmatrix?

Ответ 1

Из документации amsmath (texdoc amsmath):

Пакет amsmath предоставляет некоторые среды для матриц за пределами базовая среда массива LATEX. pmatrix, bmatrix, Bmatrix, vmatrix и Vmatrix имеют (соответственно)(), [ ], {}, | | и ∥ ∥ встроенные разделители. согласованности есть матрица окружающей среды без разделителей. Это не полностью избыточно с массивом Окружающая среда; матричные среды все используют более экономичную горизонтальную чем довольно блудный интервал окружения массива. Кроме того, в отличие от среды массива, вам не нужно указывать колонку спецификации для любой из матриц сред; по умолчанию вы можете до 10 центрированных столбцов. (Если ты необходимо выравнивание влево или вправо в колонке или других специальных форматах должен прибегать к массиву.)

то есть. bmatrix по умолчанию используется максимум 10 столбцов.

В примечании добавляется

Точнее: максимальное количество столбцов в матрице определяется счетчик MaxMatrixCols (обычный value = 10), которое вы можете изменить, если необходимо использовать LATEXs\setcounter или \ addtocounter.

Ответ 2

Ответ Скотта правильный, но с тех пор я узнал, что вы можете переопределить выравнивание. Взято из http://texblog.net/latex-archive/maths/matrix-align-left-right/

\makeatletter
\renewcommand*\[email protected][1][c]{\hskip -\arraycolsep
  \let\@ifnextchar\[email protected]
  \array{*\[email protected] #1}}
\makeatother

Теперь позволяет выполнить команду:

\begin{bmatrix}[r] ....

для выравнивания по правому краю!