행렬 방정식의 각 행에 대한 방정식 번호

행렬 방정식의 각 행에 대한 방정식 번호

행렬 방정식의 각 행에 방정식 번호를 부여하는 것이 가능합니까?

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

행렬 방정식의 각 행에 하나씩 하위 방정식 번호의 맥락에서 방정식 레이블을 어떻게 가질 수 있습니까? 여기서는 (3.1a), (3.1b), (3.1c)와 같은 방정식 번호를 사용하겠습니다(경계 행렬의 행/열 레이블을 의미하는 것은 아닙니다).

감사해요!

답변1

흠! LaTeX 구문은 실제로 지원되지 않지만

산출

\documentclass{article}

\usepackage{amsmath}

\newsavebox\labelbox

\begin{document}

\savebox\labelbox{$\begin{matrix}
\refstepcounter{equation}(\theequation)\label{aa}\\
\refstepcounter{equation}(\theequation)\label{bb}\\
\refstepcounter{equation}(\theequation)\label{cc}
\end{matrix}$}

\[
  \begin{bmatrix}
    H            & J^T       & -Z^{\frac12} \\
    J            & -\delta I &              \\
    -Z^{\frac12} &           & -X
  \end{bmatrix}
  \begin{bmatrix}
    r \\ s \\ t
  \end{bmatrix}
  =
  \lambda
  \begin{bmatrix}
    H &   &  \\
      & U &  \\
      &   & W
  \end{bmatrix}
  \begin{bmatrix}
    r \\ s \\ t
  \end{bmatrix}
\eqno
\usebox{\labelbox}
\]

[\ref{aa}]
[\ref{bb}]
[\ref{cc}]
\end{document}

답변2

우연히 간단하고 간단한 방법을 발견했습니다. 실제 행렬에 큰 열이 있는 경우 계산 행렬에 해당 팬텀을 설정해야 합니다. \displaystyle정말로 필요한 경우 방정식 번호 행렬에 a를 추가할 수도 있습니다 .

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\ltxlabel}{\ltx@label}
\makeatother
\begin{document}
\begin{align}\refstepcounter{equation}
  \begin{bmatrix}
    H            & J^T       & -Z^{\frac12} \\
    J            & -\delta I &              \\
    -Z^{\frac12} &           & -X
  \end{bmatrix}
  \begin{bmatrix}
    r \\ s \\ t
  \end{bmatrix}
  =
  \lambda
  \begin{bmatrix}
    H &   &  \\
    & U &  \\
    &   & W
  \end{bmatrix}
  \begin{bmatrix}
    r \\ s \\ t
  \end{bmatrix}
  \tag*{$\begin{matrix}
      \text{(\theequation a)}\\
      \text{(\theequation b)}\\
      \text{(\theequation c)}
    \end{matrix}$}
  \ltxlabel{eq:matrix}
\end{align}
The first row (\ref{eq:matrix}a) is the most important row of the matrix.
\end{document}

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

답변3

카운터를 조작할 필요를 수동으로 방지하는 방법은 다음과 같습니다. 나는 두 개의 \vboxes를 만듭니다. 첫 번째는 빈 하위 방정식의 배열이고, 두 번째는 간단한 \[...\]구조의 원하는 행렬입니다. 그런 다음 두 개의 \vboxes를 서로 쌓습니다. 짜잔!

나는 TABstack을 사용했기 때문에 행렬의 수직 기준선 건너뛰기 조정이 자동으로 방정식 번호 매기기의 수직 분리에 반영되도록 설정했습니다(매크로 사용을 통해 \aligngap).

원하는 경우 TABstack을 {bmatrix}es로 대체할 수 있으며 여전히 작동하지만 \aligngap이 경우 정의에 약간의 조정이 필요합니다.

\documentclass{article}
\usepackage{amsmath,tabstackengine,lipsum}
\newsavebox\boxA
\def\aligngap{\dimexpr\Lstackgap-15pt\relax}
\begin{document}
\lipsum[1]

{\setstackgap{L}{14pt}% SELECTABLE MATRIX ROW BASELINESKIP
\setbox0=\vbox{\begin{subequations}%
  \begin{align}\label{eq:A}\\[\aligngap]\label{eq:B} \\[\aligngap]\label{eq:C}\end{align}%
  \end{subequations}}
\savebox\boxA{\vbox{\[
  \setstacktabbedgap{5pt}
  \bracketMatrixstack{
    H            & J^T       & -Z^{\frac12} \\
    J            & -\delta I &              \\
    -Z^{\frac12} &           & -X}
  \bracketVectorstack{r \\ s \\ t}
  =
  \lambda
  \bracketMatrixstack{
    H &   &  \\
      & U &  \\
      &   & W}
  \bracketVectorstack{r \\ s \\ t}
\]}}
\noindent\stackengine{3.5pt}{\box0}{\usebox{\boxA}}{O}{c}{F}{F}{L}}

In equations \ref{eq:A}, \ref{eq:B}, and \ref{eq:C},
\lipsum[2]
\end{document}

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

답변4

아래에는 AMS가 필요한 경우 가능한 빠르고 더러운 대안이 있습니다 \tag. 단점은 처음에는 수동으로 높이를 조정해야 한다는 것입니다 matrix. 이 솔루션은 David의 솔루션 없이는 존재하지 않습니다. 고마워요, 데이빗! 나에게도 이것이 필요했다.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\par\noindent\begin{minipage}[c][][c]{0.9\textwidth}
  \begin{align*}
  \begin{matrix}
    1\cdot x_1&+&2\cdot x_2&+&3\cdot x_3&=&4\\[3pt]
    5\cdot x_1&+&6\cdot x_2&+&7\cdot x_3&=&8\\[3pt]
    9\cdot x_1&+&10\cdot x_2&+&11\cdot x_4&=&12
  \end{matrix}
  \end{align*}
\end{minipage}\begin{minipage}[c][][c]{0.1\textwidth}
  \begin{align}\refstepcounter{equation}
    \tag{\theequation a}\label{eq:1a}\\[0pt]
    \tag{\theequation b}\label{eq:1b}\\[0pt]
    \tag{\theequation c}\label{eq:1c}    
  \end{align}
\end{minipage}
\end{document}

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

관련 정보