在 `array` 环境中,为什么使用 `=` 进行宽度输入时 `\multirow` 会过度拉伸行?

在 `array` 环境中,为什么使用 `=` 进行宽度输入时 `\multirow` 会过度拉伸行?

=使用时,\multirow命令的内容会自动调整为等于\multirow出现的列。但这似乎不是我的情况。array为了说明目的,我尝试使用环境构建带有列和行分隔符的详细矩阵。我得到以下输出

在此处输入图片描述

我通过手动调整宽度来获得输出\multirow。如果我将其调整为=,则输出会超出边距

在此处输入图片描述

我的源代码

\documentclass[11pt, a4paper]{book}

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

\usepackage{makecell}
\usepackage{multirow}


\newlength{\arraycolsepdefaultl}
\setlength{\arraycolsepdefaultl}{2.12mm}
\newcommand{\arraycolsepdefault}{ \setlength{\arraycolsep}{\arraycolsepdefaultl} }
\arraycolsepdefault

\newcommand {\arraystretchdefaultl} {1.3}
\newcommand{\arraystretchdefault}{ \renewcommand {\arraystretch} {\arraystretchdefaultl} }
\arraystretchdefault


\usepackage{bm}

\begin{document}

\begin{equation}
\setlength{\arraycolsep}{1.06mm}
\left[
    \begin{array}{c}
        V_{1}
        \\
        \vdots
        \\
        V_{k}
        \\
        \vdots
        \\
        V_{p}
        \\
        \vdots
        \\ \Xhline{0.25mm}
        0
    \end{array}
\right]
%
=
%
\renewcommand{\arraystretch}{1.7}
\left[
    \begin{array}{c >{\medspace}c !{\vrule width 0.25mm}>{\medspace}c}
        \multirow{5}{=}{\centering \LARGE $\bm{Z}_{orig}$} & &  \multirow{5}{=}{\centering $col. \thinspace k - col. \thinspace p$} 
        \\
        & &
        \\
        & &
        \\
        & &
        \\
        & &
        \\
        \Xhline{0.25mm}
        row. \thinspace k - row. \thinspace p & & Z_{th, \thinspace kp} + Z_{b}
    \end{array}
\right]
\arraystretchdefault
\left[
    \begin{array}{c}
        I_{1}
        \\
        \vdots
        \\
        I_{k}
        \\
        \vdots
        \\
        I_{p}
        \\
        \vdots
        \\
        \Xhline{0.25mm}
        I_{q}
    \end{array}
\right]
\arraycolsepdefault
\end{equation}

\end{document}

答案1

下面的例子避免了multirow但使用\vphantoms 来确保矩阵构造彼此匹配(垂直)。居中元素升高 1/2 基线,将其置于行的中间(因为 上方有偶数行\Xhline)。

在此处输入图片描述

\documentclass{article}

\usepackage{bm,makecell,amsmath}

\begin{document}

\[
  \renewcommand{\arraystretch}{1.3}
  \left[\begin{array}{ c }
    V_1    \\
    \vdots \\
    V_k    \\
    \vdots \\
    V_p    \\
    \vdots \\
    \Xhline{0.25mm}
    0
  \end{array}\right]
  =
  \left[\begin{array}{ c !{\vrule width 0.25mm} c }
    \vphantom{V_1} & \\
    \vphantom{\vdots} & \\
    \vphantom{V_k} & \\
    \vphantom{\vdots}\raisebox{.5\normalbaselineskip}[0pt][0pt]{$\bm{Z}_{\text{orig}}$} & 
      \raisebox{.5\normalbaselineskip}[0pt][0pt]{\text{col.\ k - col.\ p}} \\
    \vphantom{V_p} & \\
    \vphantom{\vdots} \\
    \Xhline{0.25mm}
    \text{row.\ k - row.\ p} & Z_{\text{th, kp}} + Z_b
  \end{array}\right]
  \left[\begin{array}{ c }
      I_1    \\
      \vdots \\
      I_k    \\
      \vdots \\
      I_p    \\
      \vdots \\
      \Xhline{0.25mm}
      I_q
  \end{array}\right]
\]

\end{document}

答案2

  • \multirow{5}{=}{...}考虑使用的列宽
  • 因为在你的情况下它没有提前定义(如在列中p{<width>}),它为它考虑\linewidth,因此你得到的结果
  • 解决方法:改用\multirow{5}{*}{...}

    \documentclass[11pt, a4paper]{book}
    
    \usepackage{amsmath}
    \usepackage{amssymb}
    
    \usepackage{makecell}
    \usepackage{multirow}
    
    \newlength{\arraycolsepdefaultl}
    \setlength{\arraycolsepdefaultl}{2.12mm}
    \newcommand{\arraycolsepdefault}{ \setlength{\arraycolsep}{\arraycolsepdefaultl} }
    \arraycolsepdefault
    
    \newcommand {\arraystretchdefaultl} {1.3}
    \newcommand{\arraystretchdefault}{ \renewcommand {\arraystretch} {\arraystretchdefaultl} }
    
    \usepackage{bm}
    
    \begin{document}
        \begin{equation}
    \setlength{\arraycolsep}{1.06mm}
    \arraystretchdefault
    \left[
        \begin{array}{c}
            V_{1}   \\
            \vdots  \\
            V_{k}   \\
            \vdots  \\
            V_{p}   \\
            \vdots  \\
        \Xhline{0.25mm}
            0\rule{0pt}{3.5ex}
        \end{array}
    \right]
    =
    \renewcommand{\arraystretch}{1.7}
    \left[
        \begin{array}{c >{\medspace}c !{\vrule width 0.25mm}>{\medspace}c}
            \multirow{5}{*}{\centering \LARGE $\bm{Z}_{orig}$}
                &   &   \multirow{5}{*}{$\text{col. } k - \text{col. } p$} \\
                &   &   \\
                &   &   \\
                &   &   \\
                &   &   \\
            \Xhline{0.25mm}
            $\text{col. } k - \text{col. } p$
                &   &   Z_{th,\, kp} + Z_{b}
        \end{array}
    \right]
    \arraystretchdefault
    \left[
        \begin{array}{c}
            I_{1}   \\
            \vdots  \\
            I_{k}   \\
            \vdots  \\
            I_{p}   \\
            \vdots  \\
            \Xhline{0.25mm}
            I_{q}\rule{0pt}{3.5ex}
        \end{array}
    \right]
        \end{equation}
    \end{document}
    

哪五个:

在此处输入图片描述

然而,方法表明沃纳在类似情况下,答案很常见。

相关内容