转置向量/数组下的支撑不足

转置向量/数组下的支撑不足

如何在跨越向量中 2 个元素的转置向量下插入下支撑? 在此处输入图片描述

例如,一个下括号下的前两个元素带有文本“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 方式的优势在于源代码中矢量元素和括号标记的分离。这在单元格中排版更复杂/更长的公式时可能很有用。

然而,这种方法需要比其他解决方案更多的设置。

使用 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}

相关内容