16

I have a list of equations with annotations like the one below:

\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}

Rendering: Set of equations

Since the last two lines have the same annotation, I'd like to add a brace there and put the annotation next to the brace, like so:

\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}

Rendering: The last two equations with a brace

Plugging that into the original code gives me something along the lines of

\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}

Rendering: The combined equations with a brace

What doesn't work is the alignment of the equals signs: I can only align the ones inside the aligned environment with eachother, not the ones outside.

I'd also like the align environment to treat the content as three lines and number it as such.

This is a follow-up question to Q: Align inside align in which a solution to the problem without line numbering was given; a similar problem was discussed in Q: Aligning across 'aligned' equation blocks -- the solution used an array environment, however, and thus also does not allow for line numbering afaict.

Thanks in advance.

1

2 Answers 2

9

The solution to the question pointed out by Barbara Beeton is close to the right idea. In fact, you could use that solution by putting each object you wish to have numbered in its own aligned. However, that is quite a bit of work and the following variation seems to function well enough:

\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}

Sample output

You will need to call \setmyleftlen with the longest lefthand side in your aligned environment before the align starts. What the code does is move the aligned block left this amount plus an extra 7mu. The amount 7mu was a guess, but seems to fit with some other values used by the AMS math commands. Being expressed in mu (math units) it will scale well to other point sizes.

0
8

This is an improved version of @AndrewSwann's answer take scales properly if one replaces the ddd from the example with something considerably larger and does away with the magical 7mu. I've added an example that shows how to nest it, too.

\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}

rendering

2
  • Good. That reserves space for the left-hand side of the algined. Commented Aug 25, 2012 at 9:47
  • @anonymous Hello, are things like this that you and Barbara wrote in some packages so that we don't need to redefine these commands in the beginning of our documents? Also, I really like to be able to use nested aligned-like environments.
    – Master.AKA
    Commented Oct 25, 2020 at 13:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .