我有一个图,其中有 2 个矩阵和 3 个一维数组,如下图所示。
如图所示,数组的括号(分隔符)缺失。如何才能将三个一维数组括起来?如果我能将每个一维数组括起来,那就没问题了。
我为此编写的代码如下。
\[ A = \begin{bmatrix}
1 & 0 \\ 3 & 4 \\ 6 & 0 \\ 0 & 0\\ 0 & 0
\end{bmatrix}
B = \begin{bmatrix}
1 & 0 & 0 & 2 & 0 \\
3 & 4 & 0 & 5 & 0 \\
6 & 0 & 7 & 8 & 9 \\
0 & 0 & 10 & 11 & 0 \\
0 & 0 & 0 & 12 \\
\end{bmatrix}
\begin{array}{r@{\,=\ }rrr} val & 12 & 8\\[1ex]
col & 5 & 4 & 15\\[1ex]
row & 1 & 13 & 6 \end{array} \]
答案1
您可以使用aligned
和嵌套bmatrix
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
A = \begin{bmatrix}
1 & 0 \\ 3 & 4 \\ 6 & 0 \\ 0 & 0\\ 0 & 0
\end{bmatrix}
\quad
B = \begin{bmatrix}
1 & 0 & 0 & 2 & 0 \\
3 & 4 & 0 & 5 & 0 \\
6 & 0 & 7 & 8 & 9 \\
0 & 0 & 10 & 11 & 0 \\
0 & 0 & 0 & 12 \\
\end{bmatrix}
\quad
\begin{aligned}
\text{val} &= \begin{bmatrix} 12 & 8 \end{bmatrix} \\
\text{col} &= \begin{bmatrix} 5 & 4 & 15 \end{bmatrix} \\
\text{row} &= \begin{bmatrix} 1 & 13 & 6 \end{bmatrix} \\
\end{aligned}
\]
\end{document}
答案2
解决方案如下blkarray
:
\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray}
\begin{document}
\[ %
A = \begin{bmatrix}
1 & 0 \\ 3 & 4 \\ 6 & 0 \\ 0 & 0\\ 0 & 0
\end{bmatrix}
B = \begin{bmatrix}
1 & 0 & 0 & 2 & 0 \\
3 & 4 & 0 & 5 & 0 \\
6 & 0 & 7 & 8 & 9 \\
0 & 0 & 10 & 11 & 0 \\
0 & 0 & 0 & 12 \\
\end{bmatrix}
\quad
\renewcommand\arraystretch{1.25}
\begin{blockarray}{rrrr}%
\\[-1.5ex]
\begin{block}{r[rr]r}
\text{val} = & 12 & 8\\
\end{block}
\\[-3ex]
\begin{block}{r[rrr]}
\text{col} = & 5 & 4 & 15\\
\end{block}
\\[-3ex]
\begin{block}{r[rrr]}
\text{row} = & 1 & 13 & 6\\
\end{block}
\end{blockarray}%
\]
\end{document}
在双列模式下,你可以使用并将\arraycolsep
表格\BA@colsep
调整为一列宽度:
\documentclass[twocolumn]{article}
\usepackage{mathtools}
\usepackage{blkarray, lipsum}
\begin{document}
\[ %
\setlength\arraycolsep{4pt} %
\makeatletter%
\setlength\BA@colsep{2pt}%
\makeatother
A = \begin{bmatrix}
1 & 0 \\ 3 & 4 \\ 6 & 0 \\ 0 & 0\\ 0 & 0
\end{bmatrix}
B = \begin{bmatrix}
1 & 0 & 0 & 2 & 0 \\
3 & 4 & 0 & 5 & 0 \\
6 & 0 & 7 & 8 & 9 \\
0 & 0 & 10 & 11 & 0 \\
0 & 0 & 0 & 12 \\
\end{bmatrix}
\renewcommand\arraystretch{1.25}
\begin{blockarray}{rrrr}%
\\[-1.5ex]
\begin{block}{@{}r[rr]r}
\text{val} = & 12 & 8\\
\end{block}
\\[-3ex]
\begin{block}{@{}r[rrr]}
\text{col} = & 5 & 4 & 15\\
\end{block}
\\[-3ex]
\begin{block}{@{}r[rrr]}
\text{row} = & 1 & 13 & 6\\
\end{block}
\end{blockarray}%
\]
\lipsum
\end{document}
或者,您可以使用\medmath
命令或medsize
环境,来自nccmath
:它产生大约 80% 的数学公式displaystyle
。