矩阵中的下支撑分为多个块

矩阵中的下支撑分为多个块

如何在矩阵的括号内放置下括号来命名块的两侧?

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
.
.
.
\[
\left (
\begin{array}{rrr|rrr}
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
\end{array}
\right )
\]
\end{document}

我正在大学服务器中编译代码,但无法安装新的软件包。

答案1

这是另一个(不含 TikZ 的)选项:

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{array}

\newcommand\undermat[2]{%
  \makebox[0pt][l]{$\smash{\underbrace{\phantom{%
    \begin{matrix}#2\end{matrix}}}_{\text{$#1$}}}$}#2}

\begin{document}

\[
\left (
\begin{array}{rrr|rrr}
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
\undermat{A}{0 & 0 & 0} & \undermat{B}{0 & 0 & 0} \\
\end{array}
\right )
\]

\end{document}

在此处输入图片描述

答案2

您的代码不是最小工作示例(MWE)(缺少\begin{document}\end{document}。请养成提供一份的习惯。

您确实应该考虑使用\tikzmark宏来实现这一点。此网站上已经有很多关于此tikz基于宏的答案。(据我所知,一个基于此宏的包正在完成中安德鲁·史黛西。例如,您可以阅读相关问题:\underbrace 在一个奇怪的地方,跨越数组列您可以根据以下代码进行定制:

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture,baseline=(#1.base)]
  \node (#1) {\strut};}
\begin{document}
\[
\left (
\begin{array}{rrr|rrr}
0 & 0 & 0 &\tikzmark{upper1} 0 & 0 & 0\tikzmark{upper2} \\
0 & 0 & 0 & 0 & 0 & 0 \\
\tikzmark{lower1}0 & 0 & 0\tikzmark{lower2} & 0 & 0 & 0 \\
\end{array}
\right )
\]

\begin{tikzpicture}[overlay, remember picture,decoration={brace,amplitude=5pt}]
\draw[decorate,thick] (lower2.south) -- (lower1.south)
      node [midway,below=5pt] {Left block};
\draw[decorate,thick] (upper1.north) -- (upper2.north)
      node [midway,above=5pt] {Right block};
\end{tikzpicture}
\end{document}

在此处输入图片描述

您必须编译两次才能看到相同的输出。

答案3

这是一个{pNiceArray}使用 的解决方案nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[
\begin{pNiceArray}{rrr|rrr}[margin=1pt]
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 25 & 0 \\
\CodeAfter
  \UnderBrace{3-1}{3-3}{A}[shorten]
  \UnderBrace{3-4}{3-6}{B}[shorten]
\end{pNiceArray}
\]

\end{document}

上述代码的输出

相关内容