我正在尝试在 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}