\begin{equation}\co_\beta(Au_{d+1})=
\begin{bmatrix}\langle u_1,Au_{d+1}\rangle \\ \vdots \\ \langle u_n,Au_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle Au_1,u_{d+1}\rangle \\ \vdots \\ \langle Au_n,u_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle \lambda u_1,u_{d+1}\rangle \\ \vdots \\ \langle \lambda u_d,u_{d+1}\rangle \\ \rule[.5ex]{4.5em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}=
\begin{bmatrix}0 \\ \vdots \\ 0 \\ \rule[.5ex]{1em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}
\begin{tabular}{l}\left.\lefteqn{\phantom{\begin{matrix} 0 \\ \vdots\\ 0 \end{matrix}}}\right\}d\text{ nullen} \\ \left.
\lefteqn{\phantom{\begin{matrix} b_0\\ \ddots\\ b_0\ \end{matrix}}} \right.\end{tabular}\end{equation}
结果是下面的,但有一些错误。有人能告诉我如何正确地将括号与矩阵对齐,并使代码更正确吗?
谢谢
答案1
首先,我纠正了一些错误。\lefteqn
在这里没有任何意义。在数学环境中,使用array
而不是表。我还提供了一个基于 TiKz 的解决方案。这是一个 MWE,您应该将其包含在您的问题中。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,decorations.pathreplacing,calc}
% from https://tex.stackexchange.com/questions/402462/tikz-equivalent-of-pstricks-commands-ncbar-and-rnode
\newcommand{\tikznode}[2]{%
\ifmmode%
\tikz[remember picture,baseline=(#1.base),inner sep=0pt] \node (#1) {$#2$};
\else
\tikz[remember picture,baseline=(#1.base),inner sep=0pt] \node (#1) {#2};%
\fi}
\DeclareMathOperator{\co}{co}
\begin{document}
Without TiKz
\begin{equation}\co_\beta(Au_{d+1})=
\begin{bmatrix}\langle u_1,Au_{d+1}\rangle \\ \vdots \\ \langle u_n,Au_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle Au_1,u_{d+1}\rangle \\ \vdots \\ \langle Au_n,u_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle \lambda u_1,u_{d+1}\rangle \\ \vdots \\ \langle \lambda u_d,u_{d+1}\rangle \\ \rule[.5ex]{4.5em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}=
\begin{bmatrix}0 \\ \vdots \\ 0 \\ \rule[.5ex]{1em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}
\begin{array}{l}
\left.\vphantom{\begin{matrix} 0 \\ \vdots\\ 0
\end{matrix}}\right\}d\text{ nullen} \\ \left.
\vphantom{\begin{matrix} b_0\\[0.25cm] \ddots\\ b_0\ \end{matrix}} \right.\end{array}
\end{equation}
With TiKz
% from https://tex.stackexchange.com/questions/40/how-do-i-label-different-rows-or-columns-of-a-matrix-using-braces/1070#1070
\begin{equation}\co_\beta(Au_{d+1})=
\begin{bmatrix}\langle u_1,Au_{d+1}\rangle \\ \vdots \\ \langle u_n,Au_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle Au_1,u_{d+1}\rangle \\ \vdots \\ \langle Au_n,u_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle \lambda u_1,u_{d+1}\rangle \\ \vdots \\ \langle \lambda u_d,u_{d+1}\rangle \\ \rule[.5ex]{4.5em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}=
\begin{bmatrix}\tikznode{x1}{0} \\ \vdots \\ \tikznode{x2}{0} \\ \rule[.5ex]{1em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}
\tikz[decoration={brace},baseline=(current bounding box.west)]{%
\draw[decorate,transform canvas={yshift=3em},thick] (x1.north) -- (x2.south) node[right=5pt,midway] {$d$ nullen}; }
\end{equation}
\end{document}
答案2
这是一个解决方案nicematrix
(最新版本:2021/02/05 的 5.10)。
我已将最后一个替换{bmatrix}
为{bNiceMatrix}
。
\SubMatrix
然后,我使用 中的\CodeAfter
命令放置了一个括号{bNiceMatrix}
。.
为子矩阵创建一个空白的左分隔符,{1-1}{3-1}
指定子矩阵的左上角应为 (1,1),右下角应为 (3,1),并\{
使用左括号作为子矩阵的右分隔符,从而生成所需的括号。我使用 中的选项将括号推一点,[right-xshift=0.5em,name=A]
然后命名对象A
,以便我们稍后可以获取它。
nicematrix
然后,我在为大括号创建的 Tikz 节点右侧放置了带有 Tikz 的标签。
\documentclass{article}
\usepackage{nicematrix,tikz}
\DeclareMathOperator{\co}{co}
\begin{document}
\[\co_\beta(Au_{d+1})=
\begin{bmatrix}\langle u_1,Au_{d+1}\rangle \\ \vdots \\ \langle u_n,Au_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle Au_1,u_{d+1}\rangle \\ \vdots \\ \langle Au_n,u_{d+1}\rangle \end{bmatrix}=
\begin{bmatrix}\langle \lambda u_1,u_{d+1}\rangle \\ \vdots \\ \langle \lambda u_d,u_{d+1}\rangle \\ \rule[.5ex]{4.5em}{0.4pt} \\ * \\ \vdots \\ *\end{bmatrix}=
\begin{bNiceMatrix}
0 \\ \vdots \\ 0 \\ \rule[.5ex]{1em}{0.4pt} \\ * \\ \vdots \\ *
\CodeAfter
\SubMatrix.{1-1}{3-1}\}[right-xshift=0.5em,name=A]
\tikz \node [right] at (A-right.east) {$d$ nullen} ;
\end{bNiceMatrix}\]
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。