如何为这种形式的矩阵编写 LaTeX 代码?

如何为这种形式的矩阵编写 LaTeX 代码?

我想为下图所示的矩阵编写代码。我该怎么做?

矩阵

我尝试过以下代码:

\begin{bmatrix} 
     a &      r &      0 & \dots \\  
     r &      b &      s & \dots \\ 0 & s & 0 &  \dots \\
\vdots & \vdots & \vdots & \LARGE{D} \\ 
\end{bmatrix}

不用说,这很丑陋。有人能帮帮我吗?

答案1

我建议你使用“包装器”array内的环境\left[ ... \right]。如果你认为字母“D”需要稍微放大一点,我建议你借助宏\scalebox(由graphicx包提供)来实现。

以下屏幕截图显示了实现这些建议的两种方式。左侧的屏幕截图在概念上更简单,因为它只使用一个array环境。右侧的屏幕截图能够实现大字母“D”的完美垂直(以及水平)居中,因为它使用了嵌套array环境以及 TeX-primitive 指令\vcenter

在此处输入图片描述

\documentclass{article} 
\usepackage{array}
\usepackage{graphicx} % for '\scalebox' macro
\usepackage{newtxtext,newtxmath} % optional: Times Roman text and math fonts

\begin{document}
\[
\left[ \begin{array}{cc|cccc}
   a & r & 0 & 0 & \dots & 0 \\
   r & b & s & 0 & \dots & 0 \\ 
   \hline
   0 & s & \\
   0 & 0 & \\
   \vdots & \vdots & \multicolumn{4}{c}{%
      \smash{\scalebox{2}{$D$}}} \\
   0 & 0 & \\
\end{array} \right]
\qquad 
\left[ \begin{array}{cc|cccc}
   a & r & 0 & 0 & \dots & 0 \\
   r & b & s & 0 & \dots & 0 \\ 
   \hline
   \multicolumn{2}{c|}{%
     \begin{array}{@{} cc @{}}
       0 & s \\
       0 & 0 \\
       \vdots & \vdots \\
       0 & 0 
     \end{array}
   } &
   \multicolumn{4}{c}{%
     \begin{array}{@{} c @{}}
       \vcenter{\hbox{\scalebox{2}{$D$}}}
     \end{array}
   }
\end{array} \right]
\]
\end{document}

答案2

nicematrix包装:

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

\begin{document}

$\begin{bNiceArray}{cc|c ccc}[margin]
  a    & r      & 0 & 0 & \Cdots & 0    \\
  r    & b      & s & 0 & \Cdots & 0    \\
\hline
  0    & s      & \Block{3-4}<\huge>{D} \\
\Vdots  &\Vdots                         \\
  0     & 0
\end{bNiceArray}$
\end{document}

经过至少两次编译你将获得:

在此处输入图片描述

编辑: 现在矩阵代码被认为是@Mico 和我下面的评论。

相关内容