Eu tenho uma lista de equações com anotações como a abaixo:
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
c &= 1 &&\text{for $Z$} \\
d &= 12 &&\text{for $Z$}
\end{align}
\end{document}
Como as duas últimas linhas têm a mesma anotação, gostaria de adicionar uma chave e colocar a anotação ao lado da chave, assim:
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
\left. \begin{aligned}
c &= 1 \\
d &= 12 \\
\end{aligned} \right\} &&\text{for $Z$}
\end{align}
\end{document}
Conectar isso ao código original me dá algo parecido com
\documentclass{scrartcl}
\usepackage{amsmath}
\begin{document}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
\left. \begin{aligned}
c &= 1 \\
d &= 12 \\
\end{aligned} \right\}& &&\text{for $Z$}
\end{align}
\end{document}
O que não funciona é o alinhamento dos sinais de igual: só consigo alinhar os que estão dentro do ambiente alinhado entre si, não os que estão fora.
Eu também gostaria que o ambiente de alinhamento tratasse o conteúdo como três linhas e o numerasse como tal.
Esta é uma pergunta de acompanhamento para Q:Alinhar dentro de alinharem que foi dada uma solução para o problema sem numeração de linhas; um problema semelhante foi discutido em Q:Alinhando blocos de equações 'alinhados'- a solução usou um ambiente de array e, portanto, também não permite numeração de linhas.
Desde já, obrigado.
Responder1
Osoluçãoà questão apontada por Barbara Beeton está próxima da ideia certa. Na verdade, você poderia usar essa solução colocando cada objeto que deseja numerar em seu próprio arquivo aligned
. No entanto, isso é bastante trabalhoso e a seguinte variação parece funcionar bem o suficiente:
\documentclass{scrartcl}
\usepackage{amsmath}
\newlength{\myleftlen}
\newcommand{\setmyleftlen}[1]{\settowidth{\myleftlen}{\( \displaystyle
#1\)}}
\newcommand{\backup}{\hskip-\myleftlen\mkern-7mu}
\begin{document}
\setmyleftlen{ddd}
\begin{align}
aaaa &= 1 &&\text{for $X$} \\
bbbb &= 1 &&\text{for $Y$} \\
&\left.\backup\begin{aligned}
c &= 1 \\
ddd &= 12 \\
\end{aligned} \right\} &&\text{for $Z$}
\end{align}
\end{document}
Você precisará chamar \setmyleftlen
com o lado esquerdo mais longo do seu aligned
ambiente antes de align
começar. O que o código faz é mover o aligned
bloco para a esquerda nesse valor mais um extra 7mu
. O valor 7mu
foi uma estimativa, mas parece corresponder a alguns outros valores usados pelos comandos matemáticos do AMS. Sendo expresso em mu
(unidades matemáticas), ele será bem dimensionado para outros tamanhos de pontos.
Responder2
Esta é uma versão melhorada da resposta de @AndrewSwann para escalar corretamente se substituirmos o ddd
do exemplo por algo consideravelmente maior e acabarmos com o mágico 7mu
. Adicionei um exemplo que mostra como aninhá-lo também.
\documentclass[preview]{standalone}
\usepackage{amsmath}
\usepackage{calc}
\usepackage{xparse}
\newlength\mytemplena
\newlength\mytemplenb
\DeclareDocumentCommand\myalignalign{sm}
{
\settowidth{\mytemplena}{$\displaystyle #2$}%
\setlength\mytemplenb{\widthof{$\displaystyle=$}/2}%
\hskip-\mytemplena%
\hskip\IfBooleanTF#1{-\mytemplenb}{+\mytemplenb}%
}
\begin{document}
\begin{align}
a &= 1\\
bb &= 1\\
\myalignalign{eeeeee} &\left.
\myalignalign*{eeeeee}
\begin{aligned}
\myalignalign{dddd} &\left.
\myalignalign*{dddd}
\begin{aligned}
ccc &= 1 \\
dddd &= 123\\
\end{aligned} \quad
\right\} Z1,Z2\\
eeeeee &= 12345678\\
\end{aligned} \quad
\right\} Z1,Z2,Z3
\end{align}
\end{document}