使用数组环境执行块矩阵

使用数组环境执行块矩阵

我习惯使用array环境编写块矩阵,当这些矩阵分解为四个块时,控制垂直间距并使用\hfill等。现在我想绘制一个分解为九个块的矩阵,但环境制作的垂直线array断了。我该如何修复它?无需彻底改变方法?(比如,tikz至少现在我对使用的解决方案不感兴趣)。

以下是 MWE(在 Overleaf 中完成):

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,top=3cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
\usepackage{amsmath}
\usepackage{graphicx}



\begin{document}

\[  \left(
    \begin{array}{c|c}
      \mbox{\large $0$} &  \mbox{\large ${\rm Id}_n$} \\[.7ex] \hline \\[-1.5ex]
      \mbox{\large $-{\rm Id}_n$} & \mbox{\large $0$}\\
    \end{array}
  \right) \qquad \left(
    \begin{array}{c|c|c}  
\mbox{\large $0$} & \mbox{\large $0$} & \mbox{\large $0$} \\[.7ex] \hline \\[-1.5ex]
    \mbox{\large $0$} &  \mbox{\large $0$} &  \mbox{\large ${\rm Id}_n$} \\[.7ex] \hline \\[-1.5ex]
      \mbox{\large $0$} & \mbox{\large $-{\rm Id}_n$} & \mbox{\large $0$}\\
    \end{array}
  \right). \]
\end{document}

谢谢!

答案1

不要\large在每个单元格中都执行此操作,而要对数组全局执行此操作。不要\\在 之后使用\hline

\documentclass[a4paper]{article}
\usepackage{amsmath}

\begin{document}

\[
\left(
  \mbox{\large$
    \renewcommand{\arraystretch}{1.2}
    \begin{array}{c|c}
    0 & \mathrm{Id}_n \\
    \hline
    -\mathrm{Id}_n & 0 \\
    \end{array}
  $}% end of \mbox
\right)
\qquad
\left(
  \mbox{\large$
    \renewcommand{\arraystretch}{1.2}
    \begin{array}{c|c|c}  
    0 & 0 & 0 \\
    \hline
    0 & 0 & \mathrm{Id}_n \\
    \hline
    0 & -\mathrm{Id}_n & 0 \\
    \end{array}
  $}% end of \mbox
\right).
\]
\end{document}

我删除了所有不必要的软件包。不要使用,utf8x因为它已经好几年没有维护了,但是utf8。还请注意,\rm已经被弃用了 20 多年。

在此处输入图片描述

相关内容