例如,一个下括号下的前两个元素带有文本“node 1”,等等。
向量的代码:
\documentclass{standalone}
\usepackage{amsmath}
\begin{equation}
\mathbf{D}_{right}^T = \left[ \begin {array}{cccccccc} \underbrace{0}_\text{node 1} & \underbrace{0}_\text{node 1} & \underbrace{0}_\text{node 2} & \underbrace{0}_\text{node 2} & \underbrace{ U_{x}}_\text{node 3} & \underbrace{ U_{y}}_\text{node 3} & \underbrace{\cos \left(\theta \right) \Delta}_\text{node 4} & \underbrace{\sin \left(\theta \right) \Delta}_\text{node 4} \end {array}
\right]
\end{equation}
答案1
array
由于您使用的是单个向量,因此这里可以不用。使用连接线(空格, ~
)来拉伸元素:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
\mathbf{D}_{\mathrm{right}}^T =
\bigl[~
\underbrace{\mathstrut 0 ~~~ 0}_{\mathclap{\text{node 1}}} ~~
\underbrace{\mathstrut 0 ~~~ 0}_{\mathclap{\text{node 2}}} ~~
\underbrace{\mathstrut U_x ~~~ U_y}_{\text{node 3}} ~~
\underbrace{\cos(\theta)\Delta ~~~ \sin(\theta)\Delta}_{\text{node 4}}
~\bigr]
\end{equation}
\end{document}
答案2
我建议使用嵌套矩阵;对于主要矩阵,请使用array
垂直[t]
对齐。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\mathbf{D}_{\mathrm{right}}^T =
\Bigl[
\begin{array}[t]{@{\,}cccc@{\,}}
\underbrace{\mathstrut\begin{matrix} 0 & 0 \end{matrix}}_{\text{node 1}} &
\underbrace{\mathstrut\begin{matrix} 0 & 0 \end{matrix}}_{\text{node 2}} &
\underbrace{\mathstrut\begin{matrix} U_{x} & U_{y}\end{matrix}}_{\text{node 3}} &
\underbrace{\mathstrut
\begin{matrix}\cos(\theta)\Delta & \sin(\theta)\Delta\end{matrix}
}_{\text{node 4}}
\end{array}
\Bigr]
\end{equation}
\end{document}
答案3
TikZ 解决方案,尽管我不太确定它的实用性。
Tikz 方式的优势在于源代码中矢量元素和括号标记的分离。这在单元格中排版更复杂/更长的公式时可能很有用。
然而,这种方法需要比其他解决方案更多的设置。
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,decorations.pathreplacing,calc}
\begin{document}
\begin{equation}
\mathbf{D}_{right}^T =
\begin{tikzpicture} [baseline,
underbrace/.style={decorate,thick,decoration={brace,mirror}}]
\matrix (eq1) [nodes={% Control for largest depth in vector
% Change argument depth() to "deepest" node in vector
text depth=depth("$U_y$")
},
anchor=base,
matrix of math nodes,
left delimiter=\lbrack,
right delimiter=\rbrack,
column sep=5mm
]
{ 0 & 0 & 0 & 0 & U_x & U_y & \cos (\theta) \Delta & \sin (\theta) \Delta \\};
% Specify braces in the format "column no where brace star/ closing column / description"
\foreach \x / \y / \nodedesc in {1/2/{node 1}, 3/4/{node 2}, 5/6/{node 3}, 7/8/{node 4}}
\draw [underbrace] (eq1-1-\x.south west) -- (eq1-1-\y.south east) node [below,midway] {\nodedesc};
\end{tikzpicture}
\end{equation}
\end{document}