垂直对齐具有不同行的填充矩阵

垂直对齐具有不同行的填充矩阵

请允许我详细说明:我有一个方阵,通过在右列填充零,它就变成了非方阵。我想用一个零来表示零子矩阵,以理想地实现这一点:

在此处输入图片描述

我得到的却是这样的:

在此处输入图片描述

目前,我通过将 a 替换\ddot为连续行中的两个点来伪造它,从而实现奇数行:

在此处输入图片描述

不用说,我不喜欢我的黑客行为。

有什么建议吗?

\documentclass{article}
\usepackage{bm,delarray}
\begin{document}
    \[
    \bm{\Sigma} = 
      \left[
      \begin{array}{cccc|c}
        \bm{\sigma}_1 & & & & 0 \\ 
        & \bm{\sigma}_2 & & & 0\\ 
        & & \ddots & & 0 \\
        & & & \bm{\sigma}_m & 0
      \end{array}
      \right]
    \]
    \[
    \bm{\Sigma} =
      \left[
      \begin{array}{ccccc|c}
        \bm{\sigma}_1 & & & & &  \\ 
        & \bm{\sigma}_2 & & & & \\ 
        & & . & & & 0 \\
        & & & . & &  \\     
        & & & & \bm{\sigma}_m & 
      \end{array}
      \right]
    \]
\end{document}

答案1

嵌套matrixarray

\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}

\begin{document}

\[
\bm{\Sigma} = 
\left[\begin{array}{@{}c|c}
  \begin{matrix}
  \bm{\sigma}_1 \\ 
  & \bm{\sigma}_2 \\ 
  & & \ddots \\
  & & & \bm{\sigma}_m
  \end{matrix}
& 0
\end{array}\right]
\]

\end{document}

在此处输入图片描述

答案2

这边走?

\documentclass{article}
\usepackage{bm, delarray, multirow}

\begin{document}

    \[
    \bm{\Sigma} =
      \left[
      \begin{array}{cccc|c}
        \bm{\sigma}_1 & & & & \multirow{4}{*}[-0.5ex]{\Large$ 0 $} \\
        & \bm{\sigma}_2 & & & \\[-0.5ex]
        & & \ddots & & \\[-0.5ex]
        & & & \bm{\sigma}_m &
      \end{array}
      \right]
    \]

\end{document} 

在此处输入图片描述

答案3

一种快速解决方法:使用\smash,因为它比其他数学符号的高度更大。当然,如果你不喜欢这个技巧,还有其他选择;例如,\ddots可以通过增加行间空间,或者在没有 的情况下添加到所有其他行。\renewcommand{\arraystretch}{1.5}\vphantom{\ddots}\ddots

\documentclass{article}
\usepackage{bm,delarray}
\begin{document}
    \[
    \bm{\Sigma} = 
    \left[
    \begin{array}{cccc|c}
    \bm{\sigma}_1 & & & & 0 \\ 
    & \bm{\sigma}_2 & & & 0\\ 
    & & \smash{\vcenter{\hbox{$\ddots$}}} & & 0 \\
    & & & \bm{\sigma}_m & 0
    \end{array}
    \right]
    \]
\end{document}

在此处输入图片描述

答案4

还有一个解决方案,使用nicematrix模仿@egreg 和@Bernard 答案的包:

\documentclass[margin=3mm,varwidth]{standalone}
\usepackage{bm}
\usepackage{nicematrix}

\begin{document}
    \[  \setlength{\arraycolsep}{1pt}
\bm{\Sigma} =
    \begin{bNiceArray}{cccc|c}[margin=1pt]
\bm{\sigma}_1
    &   &   &   & \Block{4-1}<\Huge>{0}    \\
    & \bm{\sigma}_2
        &   &   &                   \\
    &   & \ddots
            &   &                   \\
    &   &   & \bm{\sigma}_m
                &
    \end{bNiceArray}
    \]
\end{document}

在此处输入图片描述

相关内容