数组中数组的垂直对齐

数组中数组的垂直对齐

我需要编写一个带装饰的矩阵,我决定在数组中使用数组。我似乎“几乎”能够实现我想要的,但有几个问题我想问。

以下是示例和代码。一个数组中有 4 个子数组。

在此处输入图片描述

Q1 前两列和后两列对齐很好,但我不知道如何让它们全部垂直对齐。

我尝试对前两个部位使用 overbrace/underbace,但没有帮助。

Q2 有没有办法让分隔符从第一行和最后一行开始/结束,而不是从过度支撑/不足支撑的起点和终点开始/结束?

我尝试和 Bigl 和 Bigr 一起玩,但是没有成功。

\documentclass{amsart}
\usepackage{amsmath}

\begin{document}

\begin{equation}
\begin{array}{c|c|cc}
\begin{array}{c}
x
\end{array}
&
\overbrace{
\left[ 
\begin{array}{c}
* 
\end{array} \right.
}^{f}
&
\overbrace{
\begin{array}{c|c}
\underbrace{
\begin{array}{c}
* 
\end{array}
}_{xx~terms}
&
\left.
\begin{array}{cccc}
0 
\end{array}
\right]
\end{array}
}^{g}
\end{array}
\end{equation} 
\end{document}

我也尝试了 \def\arraystretch{2},但没有帮助。

答案1

你是这个意思吗?

在此处输入图片描述

你不需要数组。只需要一行带有上括号和下括号的数学运算。

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\[
x|\overbrace{[\;*\;}^f|\overbrace{\underbrace{*}_{xx\text{ terms}}\mid\;0\;]}^g
\]
\end{document}

我现在想到你可能希望过度支撑里面分隔符。我认为您希望*术语可能更大(垂直),如下所示:

在此处输入图片描述

代码更复杂,但所有分隔符的大小都会调整。我为 3x1 矩阵创建了一个宏,\vertm只是为了简化一点。然后是第二个宏,\vphnm它只是命令中的第一个矩阵\vphantom。这是必要的,以使分隔符适应矩阵而不是上下括号。

请注意 Werner 建议使用mathtools\mathclap

以下是代码:

\documentclass{article}
\usepackage{mathtools}

\newcommand{\vertm}{\begin{pmatrix}1\\2\\3\end{pmatrix}}
\newcommand{\vphnm}{\vphantom{\vertm}}

\begin{document}
\[
x\left|\vphnm\right[\!\overbrace{\vertm}^f\left|\vphnm\right.%
    \overbrace{\underbrace{\vertm}_{\mathclap{\text{$xx$ terms}}}%
    \left|\vphnm\;0\right.}^g\left.\vphnm\!\right]
\]

\end{document}

相关内容