
행렬 방정식의 각 행에 방정식 번호를 부여하는 것이 가능합니까?
행렬 방정식의 각 행에 하나씩 하위 방정식 번호의 맥락에서 방정식 레이블을 어떻게 가질 수 있습니까? 여기서는 (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
카운터를 조작할 필요를 수동으로 방지하는 방법은 다음과 같습니다. 나는 두 개의 \vbox
es를 만듭니다. 첫 번째는 빈 하위 방정식의 배열이고, 두 번째는 간단한 \[...\]
구조의 원하는 행렬입니다. 그런 다음 두 개의 \vbox
es를 서로 쌓습니다. 짜잔!
나는 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}