
내가 얻는 결과
내가 원하는 출력은 다음과 같이 환경 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
물론 이 기능을 내부에 넣는 것이 더 나을 수도 있습니다 . 이 방법이 괜찮다고 생각하시면 언제든지 저에게 요청해 주세요.