我想获取一个数组矩阵,但无法使其对齐。我尝试了 blkarray 和 bmatrix,但它们都不适合我。有人能帮我吗?下面的代码是我写的:
a = \left[
\begin{array}{c@{}c@{}c}
\left[\begin{array}{ccc}
255 & 0 & 0 \\
\end{array}\right] & \left[\begin{array}{ccc}
0 & 94.5 & 94.5 \\
\end{array}\right] \\
\left[\begin{array}{ccc}
0 & 99 & 0 \\
\end{array}\right] & \left[\begin{array}{ccc}
0 & 0 & 9 \\
\end{array}\right] \\
\end{array}\right]
\end{equation*}
但结果是错位的:
答案1
含nicematrix
包装:
\documentclass[margin=3mm, varwidth]{standalone}
\usepackage{nicematrix}
\begin{document}
\[
a =
\begin{bNiceArray}{c@{}ccc@{}c c@{}ccc@{}c}
[ & 255 & 0 & 0 &] & [& 0 & 94.5 & 94.5 &] \\
[ & 0 & 99 & 0 &] & [& 0 & 0 & 9 &] \\
\end{bNiceArray}
\]
\end{document}
附录:
通过使用\CodeAfter
和\SubMatrix
(您需要nicematrix
5.10 或更新版本):
\documentclass[margin=3mm, varwidth]{standalone}
\usepackage{nicematrix}
\begin{document}
\[
a =
\begin{bNiceArray}{ccc@{\hspace{1em}}ccc}[margin]
255 & 0 & 0 & 0 & 94.5 & 94.5 \\[1ex]
0 & 99 & 0 & 0 & 0 & 9 \\
\CodeAfter
\SubMatrix[{1-1}{1-3}] \SubMatrix[{1-4}{1-6}]
\SubMatrix[{2-1}{2-3}] \SubMatrix[{2-4}{2-6}]
\end{bNiceArray}
\]
\end{document}
答案2
只是为了多样性,这里有一个解决方案,它使用siunitx
包的机制(具体来说,S
列类型)来格式化内部array
环境。请注意,数字不是居中,而是与(显式或隐式)小数点对齐。
\documentclass{article} % or some other suitable document class
\usepackage{amsmath} % for 'bmatrix' env.
\usepackage{siunitx} % for 'S' column type
\newcolumntype{T}[1]{S[table-format=#1]}
\begin{document}
\[
a = \begin{bmatrix}
\left[\begin{array}{@{} T{3.0} T{2.0} c @{}} % array #1
255 & 0 & 0 \\
\end{array}\right] &
\left[\begin{array}{@{} c T{2.1} T{2.1} @{}} % array #2
0 & 94.5 & 94.5 \\
\end{array}\right] \\[1.5\jot]
\left[\begin{array}{@{} T{3.0} T{2.0} c @{}} % same format as array #1
0 & 99 & 0 \\
\end{array}\right] &
\left[\begin{array}{@{} c T{2.1} T{2.1} @{}} % same format as array #2
0 & 0 & 9 \\
\end{array}\right]
\end{bmatrix}
\]
\end{document}
答案3
还有另一种解决方案,无需 nicematrix,仅使用普通的 TeX 工具:
$$
\def\[{[&\kern-.9em } \def\]{\kern-.9em&]}
\left[\matrix{
\[ 255 & 0 & 0 \] & \[ 0 & 94.5 & 94.5 \] \cr
\[ 0 & 99 & 0 \] & \[ 0 & 0 & 9 \] \cr
}\right]
$$
答案4
包装内含有spalign
多项...调整.....
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{spalign}
\begin{document}
\[ a= \spaligndelims{[}{]}
\spalignmat[c]{\spalignmat[c]{255 0 0} \spalignmat[c]{0 94.5 94.5}\\[-1em]; \spalignmat[c]{\phantom{0}0 99 0} \spalignmat[c]{0\phantom{\mkern1mu 0} 0\phantom{00} \phantom{0}9\phantom{0}}\\[.3em]}
\]
\end{document}