使用 Latex 生成包含块中扩展细节的漂亮块矩阵

使用 Latex 生成包含块中扩展细节的漂亮块矩阵

我想使用 Latex 实现以下目标:

在此处输入图片描述

我愿意接受更好的方法来格式化此类块矩阵。但以上是我现在正在考虑的。

我会做很多这样的工作,我想美化我之前发布的内容。特别是因为有向图、列和行空间、左和右零空间、改进的网络分析和 Schur 补方法在分析中占有重要地位。

我不太熟悉如何使用tikz软件包。但如果需要的话,我会学习更多。

以下是我做的上述示例不是想要生产:

在此处输入图片描述

它看起来很悲伤,我希望得到一些更好的东西,更接近上面第一张图片的方向。

答案1

基于 TeX 基元 的解决方案\hbox, \vbox, \hrule, \vrule:\halign

\newdimen\colw \colw=3.2em
\let\col\hbox
\def\bmkern{\ifx\col\hbox \kern.25\colw \fi}

\def\bmat#1#2{{\def\col{\hbox to\colw}\bbmat{#1}{#2}}}
\def\bbmat#1#2{\vbox{\everymath={\scriptstyle}
   \hrule width.5\colw 
   \hbox to.5\colw{\vrule \strut\hss$#1$\hss\vrule}
   \hrule
   \moveright\dimexpr.5\colw-.4pt\hbox{\vrule
      \vtop{\kern1ex
         \halign{&\col{\bmkern\hss$##$\hss\bmkern}\cr#2\crcr}
         \kern1ex\hrule}%
      \vrule
   }
}}
\def\hmat#1{\par
   \moveright 1.25\colw\vbox{\everymath={\scriptstyle} 
      \halign{&\hbox to\colw{\hss$##$\hss}\cr #1\crcr}}
   \nobreak\vskip-\baselineskip
}
    

\hmat{v_1 & v_2 & v_3 & v_{\rm out} && v_{\rm in} & v_{\rm gnd}}
\bbmat{A} {
\bmat{P}   {{1\over R_1} + sC_1 & 0 & 0 & 0 \cr
              -1                & 1 & 0 & 0 \cr
              0 & -sC_2 & {1\over R_2} + sC_2 & 0 \cr
              0  & 0 & -1 & 1 }
&
\bmat{Q^T} {-{1\over R_1} & -sC_1 \cr 
             0            &  0    \cr
             0            & -{1\over R_2} \cr
             0            & 0
}
\cr \noalign{\kern1ex}
\bmat{Q}   {-{1\over R_1} & 0 & 0 & 0 \cr
            -sC_1 & 0 & -{1\over R_2} & 0 }
&
\bmat{R}   { 1\over R_1 & 0 \cr
             0 & {1\over R_2} + sC_1} 
}

答案2

这是一个使用 的解决方案nicematrix。所有规则均使用 命令\Block(由nicematrix及其键提供draw)绘制。

\documentclass{article}
\usepackage{nicematrix,amstext}

\begin{document}

\NiceMatrixOptions{exterior-arraycolsep}
$\begin{NiceArray}{*{12}{c}}[cell-space-limits=2pt]
\Block[draw]{}{A} & & & v_1 & v_2 & v_3 & v_{\text{out}} & & & v_{\text{in}} & v_{\text{gnd}} & \\
& \Block[draw]{*-*}{}\\
&  & \Block[draw]{}{P} & & & & & & \Block[draw]{}{Q^T} \\
& & & \Block[draw]{4-4}{}\frac{1}{R_1} + sC_1 & 0 & 0 & 0 & & & \Block[draw]{4-2}{} -\frac{1}{R_1} & -sC_1 \\
& & & -1 & 1 & 0 & 0 & & & 0 & 0 \\
& & & 0 & -sC_2 & \frac{1}{R_2}+sC_2 & 0 & & & 0 & -\frac{1}{R_2} \\
& & & 0 & 0 & -1 & 1 & & & 0 & 0 \\
\\
& & \Block[draw]{}{Q} & & & & & & \Block[draw]{}{R} \\
& & & \Block[draw]{2-4}{} -\frac{1}{R_1} & 0 & 0 & 0 & & & \Block[draw]{2-2}{} \frac{1}{R_1} & 0 \\
& & & -sC_1 & 0 & -\frac{1}{R_2} & 0 & & & 0 & \frac{1}{R_2}+sC_1 \\
\\
\end{NiceArray}$

\end{document}

上述代码的输出

相关内容