在 LaTeX 中排版大型矩阵

发布于 2024-08-31 21:15:12 字数 588 浏览 2 评论 0原文

我有一个 3x12 矩阵,我想输入到我的 LaTeX(带有 amsmath)文档中,但是当矩阵大于 3x10 时,LaTeX 似乎会窒息:

\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 所期望的吗?

I have a 3x12 matrix I'd like to input into my LaTeX (with amsmath) document but LaTeX seems to choke when the matrix gets larger than 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}

The error: Extra alignment tab has been changed to \cr. tells me that I have more & than the bmatrix environment can handle. Is there a proper way to handle this? It also seems that the alignment for 1's and the -1's are different, is that also expected of the bmatrix?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我不咬妳我踢妳 2024-09-07 21:15:13

如果您来到此页面寻找确切的命令(感谢 Scott Wales 的解答),那么您希望在序言中包含以下内容:

\setcounter{MaxMatrixCols}{20}

您可以在其中将 20 替换为您想要的最大列数。

If you came to this page looking for the exact command (thanks to Scott Wales for the answer), you want this in your preamble:

\setcounter{MaxMatrixCols}{20}

Where you can replace 20 with the maximum number of columns you want.

泼猴你往哪里跑 2024-09-07 21:15:13

斯科特的答案是正确的,但我后来了解到您可以覆盖对齐方式。摘自http://texblog.net/latex-archive/maths /matrix-align-left-right/

\makeatletter
\renewcommand*\env@matrix[1][c]{\hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \array{*\c@MaxMatrixCols #1}}
\makeatother

现在允许命令:

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

右对齐!

The answer by Scott is correct, but I've since learned you can override the alignment. Taken from http://texblog.net/latex-archive/maths/matrix-align-left-right/

\makeatletter
\renewcommand*\env@matrix[1][c]{\hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \array{*\c@MaxMatrixCols #1}}
\makeatother

Now allows the command:

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

to have right-alignment!

只怪假的太真实 2024-09-07 21:15:13

您可以使用 tabularray 包中的 +bmatrix 来代替 bmatrix

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{amsmath}

\begin{document}

\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}

\end{document}

在此处输入图像描述

Instead of a bmatrix you can use +bmatrix from the tabularray package:

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{amsmath}

\begin{document}

\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}

\end{document}

enter image description here

关于从前 2024-09-07 21:15:12

来自 amsmath 文档 (texdoc amsmath):

amsmath 包提供了一些
超出矩阵的环境
LATEX 的基本数组环境。这
pmatrix、bmatrix、Bmatrix、vmatrix 和
Vmatrix 分别有 ( ), [
], { }, | |、和 ∥
∥ 内置分隔符。用于命名
一致性有一个矩阵
环境无分隔符。这是
与数组并不完全冗余
环境;矩阵环境
全部采用更经济的卧式
间距比相当败家
阵列环境的间距。
此外,与阵列环境不同,
你不必给出专栏
任何矩阵的规格
环境;默认情况下你可以有
最多 10 个居中列。 (如果你
需要左对齐或右对齐
列或其他特殊格式
必须诉诸数组。)

bmatrix 默认为最多 10 列。

脚注添加

更准确地说:最大数量
矩阵中的列由下式确定
计数器 MaxMatrixCols(正常
值 = 10),您可以更改该值,如果
需要使用 LATEX 的 \setcounter 或
\addtocounter 命令。

From the amsmath documentation (texdoc amsmath):

The amsmath package provides some
environments for matrices beyond the
basic array environment of LATEX. The
pmatrix, bmatrix, Bmatrix, vmatrix and
Vmatrix have (respectively) ( ), [
], { }, | |, and ∥
∥ delimiters built in. For naming
consistency there is a matrix
environment sans delimiters. This is
not entirely redundant with the array
environment; the matrix environments
all use more economical horizontal
spacing than the rather prodigal
spacing of the array environment.
Also, unlike the array environment,
you don’t have to give column
specifications for any of the matrix
environments; by default you can have
up to 10 centered columns. (If you
need left or right alignment in a
column or other special formats you
must resort to array.)

i.e. bmatrix defaults to a 10 column maximum.

A footnote adds

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文