Tengo una lista de ecuaciones con anotaciones como la siguiente:
\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}
Dado que las dos últimas líneas tienen la misma anotación, me gustaría agregar una llave allí y colocar la anotación al lado de la llave, así:
\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 eso al código original me da algo como
\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}
Lo que no funciona es la alineación de los signos iguales: solo puedo alinear los que están dentro del entorno alineado entre sí, no los que están fuera.
También me gustaría que el entorno de alineación trate el contenido como tres líneas y lo numere como tal.
Esta es una pregunta complementaria a la pregunta:Alinear dentro de alinearen el que se dio una solución al problema sin numeración de líneas; Un problema similar se discutió en Q:Alineación entre bloques de ecuaciones 'alineados'- Sin embargo, la solución utilizó un entorno de matriz y, por lo tanto, tampoco permite la numeración de líneas.
Gracias de antemano.
Respuesta1
Elsolucióna la pregunta planteada por Barbara Beeton se acerca a la idea correcta. De hecho, podrías utilizar esa solución poniendo cada objeto que desees numerar en su propio formato aligned
. Sin embargo, eso requiere bastante trabajo y la siguiente variación parece funcionar bastante bien:
\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}
Tendrás que llamar \setmyleftlen
con el lado izquierdo más largo de tu aligned
entorno antes de las align
salidas. Lo que hace el código es mover el aligned
bloque a la izquierda esta cantidad más una extra 7mu
. La cantidad 7mu
era una suposición, pero parece encajar con algunos otros valores utilizados por los comandos matemáticos de AMS. Al expresarse en mu
(unidades matemáticas), se adaptará bien a otros tamaños de puntos.
Respuesta2
Esta es una versión mejorada de la respuesta de @AndrewSwann. Tome las escalas correctamente si se reemplaza el ddd
del ejemplo con algo considerablemente más grande y elimina lo mágico 7mu
. También agregué un ejemplo que muestra cómo anidarlo.
\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}