
É possível atribuir um número de equação a cada linha de uma equação matricial?
Como eu poderia ter rótulos de equações no estilo dos números de subequações, um para cada linha da equação matricial? Aqui, eu gostaria de números de equações como, por exemplo, (3.1a), (3.1b), (3.1c) (não me refiro a rótulos de linha/coluna como em uma matriz com borda).
Obrigado!
Responder1
Hum! realmente não suporta a sintaxe LaTeX, mas
\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}
Responder2
Por acidente descobri uma maneira simples e direta. Se alguém tiver alguma coluna grande na matriz real, deverá definir um fantasma correspondente na matriz de numeração. Também se pode adicionar a \displaystyle
na matriz numérica da equação, se isso for realmente necessário.
\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}
Responder3
Esta é uma maneira de evitar manualmente a necessidade de manipular o contador. Eu crio dois \vbox
es. A primeira é uma matriz de subequações em branco e a segunda é a matriz desejada em uma \[...\]
construção simples. Então empilho os dois \vbox
es um sobre o outro. Voilá!
Eu até configurei para que o ajuste do salto de linha de base vertical da matriz (já que usei TABstacks) seja refletido automaticamente na separação vertical da numeração da equação (através do uso da \aligngap
macro).
Poderíamos, se desejado, substituir meus TABstacks por {bmatrix}
es e ainda funcionaria, embora a definição de, \aligngap
nesse caso, precisasse de alguns ajustes.
\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}
Responder4
Abaixo está uma alternativa possível, rápida e suja, caso seja necessário AMS- \tag
s. A desvantagem é que requer algum ajuste manual de altura no primeiro matrix
. Esta solução não existiria sem a solução de David. Obrigado, Davi! Eu precisava disso também.
\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}