制作带有垂直线的矩阵的问题(Latex)

制作带有垂直线的矩阵的问题(Latex)

我正在尝试在 Latex 中制作一个中间有垂直线的矩阵,但我缺少一个小点。无法弄清楚我缺少什么:( 这是我的代码:

\begin{equation}
    A_{eq} = 
    \left[\begin{array}{c|ccccc}
        \begin{matrix}
            I & 0 & \dots & \dots & 0 \\
            -A & I & \ddots &  & \vdots \\
            0 & \ddots & \ddots & \ddots & \vdots \\
            \vdots & \ddots & 0 & \ddots & \vdots \\
            0 & \dots & 0 & -A & I \\
        \end{matrix}
            & -B & 0 & \dots & \dots & 0 \\
            & 0 & \ddots & \ddots &  & \vdots \\
            & \vdots & \ddots & \ddots & \ddots & \vdots \\
            & \vdots &  & \ddots & \ddots & 0 \\
            & 0 & \dots & \dots & 0 & -B \\
    \end{array} \right]
  \end{equation}

这就是我从这段代码中得到的结果。 矩阵 我不明白为什么这里有空格。有谁能帮忙吗?

答案1

您只是忘记了第二个matrix环境,不是吗?

Latex 将矩阵视为数组第一行的元素,这就是为什么矩阵与第一行数组的其余部分对齐,其余部分都在下面。在此解决方案中,数组仅由两个元素组成,即第一个矩阵和第二个矩阵。第二个参数中的@{}s(或{\,},如 egreg 在评论中建议的那样)\begin{array}消除(调整)额外的空格。

如果下标eq是非数字,我建议使用A_{\mathrm{eq}}使其直立。

\begin{equation}
      A_{eq} = 
      \left[\begin{array}{@{}c@{}|@{}c@{}}
         \begin{matrix}
            I      & 0      & \dots  & \dots  & 0      \\
            -A     & I      & \ddots &        & \vdots \\
            0      & \ddots & \ddots & \ddots & \vdots \\
            \vdots & \ddots & 0      & \ddots & \vdots \\
            0      & \dots  & 0      & -A     & I
         \end{matrix}
         &
         \begin{matrix}
            -B     & 0      & \dots  & \dots  & 0      \\
            0      & \ddots & \ddots &        & \vdots \\
            \vdots & \ddots & \ddots & \ddots & \vdots \\
            \vdots &        & \ddots & \ddots & 0      \\
            0      & \dots  & \dots  & 0      & -B
         \end{matrix}
      \end{array} \right]
   \end{equation}

在此处输入图片描述

答案2

供参考,以下是您可以使用获得的该矩阵的内容nicematrix

 \documentclass{article}
 \usepackage{nicematrix}

 \begin{document}
 \begin{equation}
 \renewcommand{\arraystretch}{1.4}
 A_{\text{eq}} =
 \begin{bNiceArray}{*{5}{c}|*{5}{c}}[nullify-dots,columns-width=auto]
 I      & 0      & \Cdots &    & 0      & -B     & 0      & \Cdots &   & 0 \\
 -A     & I      & \Ddots &    & \Vdots & 0      & \Ddots & \Ddots &   & \Vdots \\
 0      & \Ddots & \Ddots &    &        & \Vdots & \Ddots &        &   &        \\
 \Vdots & \Ddots &        &    & 0      &        &        &        &   & 0 \\
  0     & \Cdots & 0      & -A & I      & 0      & \Cdots &        & 0 & -B
 \end{bNiceArray}
 \end{equation}
 \end{document} 

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案3

使用下面这个命令会更简单blockarray

\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray, bigstrut}

\begin{document}

\begin{equation}
    A_{eq} =
   \begin{blockarray}{[*{5}{c}|*{5}{c}]}
            I & 0 & \cdots & \cdots & 0 & -B & 0 & \cdots & \cdots & 0 \bigstrut[t]\\
            -A & I & \ddots & & \vdots & 0 & \ddots & \ddots & & \vdots \\
            0 & \ddots & \ddots & \ddots & \vdots & \vdots & \ddots & \ddots & \ddots & \vdots \\
            \vdots & \ddots & 0 & \ddots & \vdots & \vdots & & \ddots & \ddots & 0 \\
             0 & \dots & 0 & -A & I & 0 & \cdots & \cdots & 0 & -B \bigstrut[b]
  \end{blockarray}
 \end{equation}

\end{document} 

在此处输入图片描述

相关内容