'배열' 환경의 팬텀 내용에 따라 행렬 대괄호를 강제로 늘리는 간단한 방법이 있습니까?

'배열' 환경의 팬텀 내용에 따라 행렬 대괄호를 강제로 늘리는 간단한 방법이 있습니까?

내가 얻는 결과

여기에 이미지 설명을 입력하세요

내가 원하는 출력은 다음과 같이 환경 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

다음은 s를 사용한 솔루션입니다 saveboxe.

\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물론 이 기능을 내부에 넣는 것이 더 나을 수도 있습니다 . 이 방법이 괜찮다고 생각하시면 언제든지 저에게 요청해 주세요.

여기에 이미지 설명을 입력하세요

관련 정보