具有对齐列和行的嵌套矩阵

具有对齐列和行的嵌套矩阵

我正在尝试使用嵌套矩阵来表示具有两个以上维度的“矩阵”,例如黎曼曲率张量或克里斯托费尔符号。我仍然不知道这是否有助于处理这些对象(无论如何这与本主题无关),但在判断之前,我想看看它在计算机屏幕上的样子。这个想法是为 3 指标矩阵编写一个矩阵向量,为 4 指标矩阵编写一个矩阵矩阵,依此类推。这在原则上并不难:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[
\Gamma^{\sigma}_{\mu \nu} = \begin{pmatrix}
    \begin{pmatrix}
        0 & 0 & 0 \\
        0 & -r & 0 \\
        0 & 0 & -r \sin^2(\vartheta)
    \end{pmatrix} \\
    \begin{pmatrix}
        0 & \frac{1}{r} & 0 \\
        \frac{1}{r} & 0 & 0 \\
        0 & 0 & - \sin(\vartheta) \cos(\vartheta)
    \end{pmatrix} \\
    \begin{pmatrix}
        0 & 0 & \frac{1}{r} \\
        0 & 0 & \frac{1}{\tan(\vartheta)} \\
        \frac{1}{r} & \frac{1}{\tan(\vartheta)} & 0
    \end{pmatrix}
\end{pmatrix}
\]

\end{document}

但结果看起来确实很丑陋:

在此处输入图片描述

这就是我想要的,但不是我想要的。有没有办法对齐不同矩阵的列和行?或者,有没有办法在包含所有组件的大矩阵中插入跨越多行的内部括号?

答案1

您可以使用blkarray包裹:

\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}

\begin{document}

\[
\Gamma^{\sigma}_{\mu \nu} = 
\left(
\begin{blockarray}{ ccc }
\begin{block}{( ccc )}
  0 & 0 & 0 \\
  0 & -r & 0 \\
  0 & 0 & -r \sin^2(\vartheta) \\
\end{block}
\begin{block}{( ccc )}
  0 & \frac{1}{r} & 0 \\
  \frac{1}{r} & 0 & 0 \\
  0 & 0 & - \sin(\vartheta) \cos(\vartheta) \\
\end{block}
\begin{block}{( ccc )}
  0 & 0 & \frac{1}{r} \\[1ex]
  0 & 0 & \frac{1}{\tan(\vartheta)} \\[1ex]
  \frac{1}{r} & \frac{1}{\tan(\vartheta)} & 0 \\
\end{block}
\end{blockarray}
\right)
\]

\end{document}

在此处输入图片描述

答案2

使用{pNiceMatrix}ofnicematrix及其内置命令\SubMatrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[
\Gamma^{\sigma}_{\mu \nu} = 
\begin{pNiceMatrix}[margin,cell-space-limits=1pt]
  0 & 0 & 0 \\
  0 & -r & 0 \\
  0 & 0 & -r \sin^2(\vartheta) \\[1ex]
  0 & \tfrac{1}{r} & 0 \\
  \tfrac{1}{r} & 0 & 0 \\
  0 & 0 & - \sin(\vartheta) \cos(\vartheta) \\[1ex]
  0 & 0 & \tfrac{1}{r} \\
  0 & 0 & \tfrac{1}{\tan(\vartheta)} \\
  \tfrac{1}{r} & \tfrac{1}{\tan(\vartheta)} & 0 \\
\CodeAfter 
  \SubMatrix({1-1}{3-3})
  \SubMatrix({4-1}{6-3})
  \SubMatrix({7-1}{9-3})
\end{pNiceMatrix}
\]

\end{document}

上述代码的输出

相关内容