有沒有一種簡單的方法可以強制矩陣括號根據“array”環境的幻像內容進行拉伸?

有沒有一種簡單的方法可以強制矩陣括號根據“array”環境的幻像內容進行拉伸?

我得到的輸出

在此輸入影像描述

我想要的輸出是相同的,除了Z_bus矩陣的括號應該拉伸以包含array環境的幻像內容,如下所示

在此輸入影像描述

顯然,我可以\phantom在其中使用和定義我需要的數組,但是在嘗試寫入可見內容之後\bar{\mathnormalbold{Z}}_{bus},內容開始進一步拉伸。

我的MWE

\documentclass{book}


    % ========== Table packages ==========
    \usepackage{tabularx}
% BEGIN_FOLD

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

% END_FOLD

    \usepackage{booktabs}
    \usepackage{makecell}


    % ========== Equations and math packages ==========
    \usepackage{amsmath}
    \usepackage{amssymb, amsfonts}
    \usepackage{mathtools}
    \usepackage[defaultmathsizes, italic, eulergreek, symbolre, symbolmisc]{mathastext}


\begin{document}

\begin{align}
    \left[
        \begin{array}{c}
            \mathnormalbold{V}_{G}
            \\
        %
            \Xhline{0.25mm}
            V_{R, \thinspace i}
        %
            \\
            V_{R, \thinspace j}
        \end{array}
    \right] &=
%
    \left[
        \begin{array}{c !{\vrule width 0.25mm}c c}
            \bar{\mathnormalbold{Z}}_{GG} & \bar{\mathnormalbold{Z}}_{GR_{i}} & \bar{\mathnormalbold{Z}}_{GR_{j}}
        \\
            \Xhline{0.25mm}
        %
            \bar{\mathnormalbold{Z}}_{R_{i}G} & \bar{Z}_{RR, \thinspace ii} & \bar{Z}_{RR, \thinspace ij}
        %
        \\
            \bar{\mathnormalbold{Z}}_{R_{j}G} & \bar{Z}_{RR, \thinspace ij} & \bar{Z}_{R, \thinspace jj}
        \end{array}
    \right]
    %
    \left[      
        \begin{array}{c}
            \bar{\mathnormalbold{I}}_{G}
        \\
        \Xhline{0.25mm}
        %
            \bar{I}_{R, \thinspace i}
        \\
        %
            \bar{I}_{R, \thinspace j}
        \end{array}
    \right]
\label{eq:op_imp_load_RER_int_op}
\\
\intertext{where}
\bar{\mathnormalbold{Z}}_{bus} &=
    \left[
        \begin{array}{c !{\vrule width 0.25mm}c c}
            \bar{\mathnormalbold{Z}}_{GG} & \bar{\mathnormalbold{Z}}_{GR_{i}} & \bar{\mathnormalbold{Z}}_{GR_{j}}
        \\
        \Xhline{0.25mm}
        %           
            \bar{\mathnormalbold{Z}}_{R_{i}G} & \bar{Z}_{RR, \thinspace ii} & \bar{Z}_{RR, \thinspace ij}
        \\
        %
            \bar{\mathnormalbold{Z}}_{R_{j}G} & \bar{Z}_{RR, \thinspace ij} & \bar{Z}_{R, \thinspace jj}
        \end{array}
    \right]
\label{eq:Z_bus_hat_def}
\end{align}

\end{document}

答案1

隨意使用更廣泛的規則(我認為你不應該)。我刪除了mathastext這會產生痛苦的結果。

\documentclass{book}
\usepackage{amsmath,bm}

\newcommand{\bigarraystretch}{\renewcommand{\arraystretch}{1.3}}

\begin{document}

\begingroup\bigarraystretch
\newcommand{\Zbus}{%
  \begin{array}{@{} c | c c @{}}
    \bar{\bm{Z}}_{GG} & \bar{\bm{Z}}_{GR_{i}} & \bar{\bm{Z}}_{GR_{j}} \\
    \hline
    \bar{\bm{Z}}_{R_{i}G} & \bar{Z}_{RR,ii} & \bar{Z}_{RR,ij} \\
    \bar{\bm{Z}}_{R_{j}G} & \bar{Z}_{RR,ij} & \bar{Z}_{R,jj}
  \end{array}%
}
\begin{align}
\left[\begin{array}{@{}c@{}}
  \bm{V}_{G} \\
  \hline
  V_{R,i} \\
  V_{R,j}
\end{array}\right]
&=
\begin{bmatrix}
\vphantom{\Zbus}
\ooalign{\hphantom{$\Zbus$}\cr\hfil$\bar{\bm{Z}}_{\mathrm{bus}}$\hfil\cr}
\end{bmatrix}
\left[\begin{array}{@{} c @{}}
  \bar{\bm{I}}_{G} \\
  \hline
  \bar{I}_{R,i} \\
  \bar{I}_{R,j}
\end{array}\right]
\label{eq:op_imp_load_RER_int_op}
\\
\intertext{where}
\bar{\bm{Z}}_{\mathrm{bus}} &= \left[\Zbus\right]
\label{eq:Z_bus_hat_def}
\end{align}
\endgroup

\end{document}

這個想法是保存 Zbus 矩陣的內容,並用於\ooalign將符號疊加在矩陣佔用的水平空間上,前面的垂直空間用於設定括號的大小。

在此輸入影像描述

答案2

這是一個帶有saveboxes 的解決方案:

\documentclass{book}


    % ========== Table packages ==========
    \usepackage{tabularx}
% BEGIN_FOLD

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

% END_FOLD

    \usepackage{booktabs}
    \usepackage{makecell}


    % ========== Equations and math packages ==========
    \usepackage{amsmath}
    \usepackage{amssymb, amsfonts}
    \usepackage{mathtools}
    \usepackage[defaultmathsizes, italic, eulergreek, symbolre, symbolmisc]{mathastext}

\newsavebox{\mybox}
\newsavebox{\mysbox}
\begin{document}

\begin{align}
    \left[
        \begin{array}{c}
            \mathnormalbold{V}_{G}
            \\
        %
            \Xhline{0.25mm}
            V_{R, \thinspace i}
        %
            \\
            V_{R, \thinspace j}
        \end{array}
    \right] &=
%
    \left[
        \savebox{\mybox}{\hbox{\(\begin{array}{c !{\vrule width 0.25mm}c c}
            \bar{\mathnormalbold{Z}}_{GG} & \bar{\mathnormalbold{Z}}_{GR_{i}} & \bar{\mathnormalbold{Z}}_{GR_{j}}
        \\
            \Xhline{0.25mm}
        %
            \bar{\mathnormalbold{Z}}_{R_{i}G} & \bar{Z}_{RR, \thinspace ii} & \bar{Z}_{RR, \thinspace ij}
        %
        \\
            \bar{\mathnormalbold{Z}}_{R_{j}G} & \bar{Z}_{RR, \thinspace ij} & \bar{Z}_{R, \thinspace jj}
        \end{array}\)}}\savebox{\mysbox}{\hbox{\(\bar{Z}_{bus}\)}}
        \vphantom{\usebox{\mybox}}\hspace{\dimexpr(\dimexpr\wd\mybox/2)-\dimexpr(\wd\mysbox/2)}\usebox{\mysbox}\hspace{\dimexpr(\dimexpr\wd\mybox/2)-\dimexpr(\wd\mysbox/2)}
    \right]
    %
    \left[      
        \begin{array}{c}
            \bar{\mathnormalbold{I}}_{G}
        \\
        \Xhline{0.25mm}
        %
            \bar{I}_{R, \thinspace i}
        \\
        %
            \bar{I}_{R, \thinspace j}
        \end{array}
    \right]
\label{eq:op_imp_load_RER_int_op}
\\
\intertext{where}
\bar{\mathnormalbold{Z}}_{bus} &=
    \left[
        \begin{array}{c !{\vrule width 0.25mm}c c}
            \bar{\mathnormalbold{Z}}_{GG} & \bar{\mathnormalbold{Z}}_{GR_{i}} & \bar{\mathnormalbold{Z}}_{GR_{j}}
        \\
        \Xhline{0.25mm}
        %           
            \bar{\mathnormalbold{Z}}_{R_{i}G} & \bar{Z}_{RR, \thinspace ii} & \bar{Z}_{RR, \thinspace ij}
        \\
        %
            \bar{\mathnormalbold{Z}}_{R_{j}G} & \bar{Z}_{RR, \thinspace ij} & \bar{Z}_{R, \thinspace jj}
        \end{array}
    \right]
\label{eq:Z_bus_hat_def}
\end{align}

\end{document}

最好將此功能放在課程中\newcommand。如果您覺得這種方式沒問題,請隨時向我詢問。

在此輸入影像描述

相關內容