嵌套矩阵的对齐

嵌套矩阵的对齐

我想获取一个数组矩阵,但无法使其对齐。我尝试了 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(您需要nicematrix5.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}

在此处输入图片描述

相关内容