如何表示矩阵中的列和行名称并将方程与该矩阵对齐?

如何表示矩阵中的列和行名称并将方程与该矩阵对齐?

我想排版一个表示某事物一般情况的大矩阵。我在执行以下操作时遇到困难:

  1. 在行和列附近键入一组字母以标识它们
  2. 矩阵太大,无法居中到文本中间。我想暂时增加边距,以便矩阵可以水平对齐到中心
  3. 如果可能的话,我想Zorig准确地到达矩阵中空白区域的中间
  4. 增加矩阵中所有元素的显示尺寸
  5. 如果点在它们分开的元素之间分布更均匀,那就好了

我得到的是:

在此处输入图片描述

我(大致)正在寻找:

在此处输入图片描述

我的源代码:

\documentclass[11pt, a4paper]{book}

\usepackage{amsmath}
\usepackage{amssymb, amsfonts}
\usepackage{graphicx}

\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{makecell}

\begin{document}



\begin{equation}
    %
    \begin{aligned}
    %
        \left[
            \begin{array}{c c c c c c c c c !{\vrule width 0.25mm}c}
                & & & & & Z_{1k} & \dotsm & Z_{1p} & \dotsm & Z_{1k} - Z_{1p} \\
                & & \scalebox{3}{$Z_{orig}$} &  & & \vdots & & \vdots &  & \vdots \\
                & & & & & Z_{lk} & \dotsm & Z_{lp} & \dotsm & Z_{lk} - Z_{lp} \\
                & & &  & & \vdots & & \vdots &  & \vdots \\
                Z_{k1} & \dotsm & \dotsm & Z_{km} & \dotsm & Z_{kk} & \dotsm & Z_{kp} & \dotsm & Z_{kk} - Z_{kp} \\
                \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
                Z_{p1} & \dotsm & \dotsm & Z_{pm} & \dotsm & Z_{pk} & \dotsm & Z_{pp} & \dotsm & Z_{pk} - Z_{pp} \\
                \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
                \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\ \Xcline{1-10}{0.25mm}
                Z_{k1} - Z_{p1} & \dotsm & \dotsm & Z_{km} - Z_{pm} & \dotsm & Z_{kk} - Z_{pk} & \dotsm & Z_{kp} - Z_{pp} & \dotsm & Z_{th, kp} + Z_{b} \\
            \end{array}
        \right] & \\
        Z_{th,kp} = Z_{kk} + Z_{pp} - Z_{kp} - Z_{pk} & \\
    %
    \end{aligned}
    %
\end{equation}



\end{document}

我意识到同样的问题在\matrix 命令在哪里?用字符标记矩阵的行,但那里提供的解决方案似乎不能同时实现1.绘制水平线和2.将主矩阵与其下方的较小方程对齐(见上图)。

答案1

要在标识它们的列和行附近键入一组字母,请使用blkarraypackage。例如,请参见此处:这个数组该怎么写?

为了使大于线宽的矩阵居中,我使用了\makebox[\textwidth][c]{...}。例如,请参见此处:中心图形的宽度大于 \textwidth

\large为了增加矩阵中所有元素的显示尺寸,我使用了minipage

为了更好地对齐,我使用了\rule[-1ex]{0ex}{3.7ex}\hspace

有关水平线的正确长度,请参见此处:blkarray 内的水平斜线长度

\documentclass[11pt, a4paper]{book}

\usepackage{amsmath}
\usepackage{amssymb, amsfonts}
\usepackage{graphicx}

\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{array}
\renewcommand{\arraystretch}{1.2}
\usepackage{blkarray}% see, for example, https://tex.stackexchange.com/questions/313214/how-to-write-this-array/313219#313219
\usepackage{mwe}% for testing purpose only
\begin{document}
\blindtext% for testing purpose only
\makebox[\textwidth][c]{%
\begin{minipage}{.86\paperwidth}\large
\setlength\aboverulesep{0pt}\setlength\belowrulesep{0pt}
    \setlength\cmidrulewidth{0.5pt}% https://tex.stackexchange.com/questions/377273/horizontal-cline-lengths-inside-blkarray
\begin{equation}
\begin{blockarray}{ccccccccccc}
& & & & & & k & & p & & q\\[1ex]            
\begin{block}{c[c c c c c c c c c @{\hspace{1em}}|@{\hspace{.5em}}c]}
& & & & & & Z_{1k} & \dotsm & Z_{1p} & \dotsm & Z_{1k} - Z_{1p} \\
& & & Z_\mathrm{orig} &  & & \vdots & & \vdots &  & \vdots \\
& & & & & & Z_{lk} & \dotsm & Z_{lp} & \dotsm & Z_{lk} - Z_{lp} \\
& & & &  & & \vdots & & \vdots &  & \vdots \\
k & Z_{k1} & \dotsm & \dotsm & Z_{km} & \dotsm & Z_{kk} & \dotsm & Z_{kp} & \dotsm & Z_{kk} - Z_{kp} \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
p & Z_{p1} & \dotsm & \dotsm & Z_{pm} & \dotsm & Z_{pk} & \dotsm  & Z_{pp} & \dotsm & Z_{pk} - Z_{pp} \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\[.5ex]
\cmidrule(lr){2-11}
q & \rule[-1ex]{0ex}{3.7ex}
Z_{k1} - Z_{p1} & \dotsm & \dotsm & Z_{km} - Z_{pm} & \dotsm  & Z_{kk} - Z_{pk} & \dotsm & Z_{kp} - Z_{pp} & \dotsm & Z_{th, kp} + Z_{b}\\
\end{block}
\end{blockarray} 
\end{equation}
\end{minipage}}\vspace{1ex}
\blindtext% for testing purpose only
\end{document}

在此处输入图片描述

答案2

这是一个{bNiceArray}使用 的解决方案nicematrix

\documentclass{article}
\usepackage{geometry}
\usepackage{nicematrix}

\begin{document}

\[\renewcommand{\arraystretch}{1.2}
\begin{bNiceArray}[first-row,first-col,margin]{ccccccccc|c}
& & & & & & k & & p & & q\\
& & & & & & Z_{1k} & \dotsm & Z_{1p} & \dotsm & Z_{1k} - Z_{1p} \\
& & & Z_\mathrm{orig} &  & & \vdots & & \vdots &  & \vdots \\
& & & & & & Z_{lk} & \dotsm & Z_{lp} & \dotsm & Z_{lk} - Z_{lp} \\
& & & &  & & \vdots & & \vdots &  & \vdots \\
k & Z_{k1} & \dotsm & \dotsm & Z_{km} & \dotsm & Z_{kk} & \dotsm & Z_{kp} & \dotsm & Z_{kk} - Z_{kp} \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
p & Z_{p1} & \dotsm & \dotsm & Z_{pm} & \dotsm & Z_{pk} & \dotsm  & Z_{pp} & \dotsm & Z_{pk} - Z_{pp} \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\
& \vdots & & & \vdots & & \vdots & & \vdots &  & \vdots \\[.5ex]
\hline
q & \rule[-1ex]{0ex}{3.7ex}
Z_{k1} - Z_{p1} & \dotsm & \dotsm & Z_{km} - Z_{pm} & \dotsm  & Z_{kk} - Z_{pk} & \dotsm & Z_{kp} - Z_{pp} & \dotsm & Z_{th, kp} + Z_{b}\\
\end{bNiceArray}\]

\end{document}

上述代码的输出

相关内容