# Overbrace in amsmath align environment

I have the following rather large equation.

\begin{alignat*}{16}
1 &= &&b_m     &&          &c_n + &b_m     &&          &c_{n-1} &&R_L + &b_m     &&          &c_{n-2} &R_L^2 + &\cdots + &b_m     &&          &&c_1 &R_L^{n-1} \\
&+ &&b_{m-1} &&R_S^1     &c_n + &b_{m-1} &&R_S^1     &c_{n-1} &&R_L + &b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 + &\cdots + &b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
&+ &&b_{m-2} &&R_S^2     &c_n + &b_{m-2} &&R_S^2     &c_{n-1} &&R_L + &b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 + &\cdots + &b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
&  &&        &&          &      &        &&          &        &&      & \vdots \\
&+ &&b_1     &&R_S^{m-1} &c_n + &b_1     &&R_S^{m-1} &c_{n-1} &&R_L + &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + &b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}
\end{alignat*}


I would like to use overbraces and underbraces to break things down, such as by using:

&+ &&b_1     &&R_S^{m-1} &c_n + &b_1     &&R_S^{m-1} &c_{n-1} &&R_L + &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + \underbrace{&b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}}_{Explanation}


However, the align environment doesn't seem to like this; perhaps because alignment symbols get tucked inside of the underbrace call.

Is it possible to both align and over/underbrace my equation?

Here is a solution using the array package. It is not ideal as you have to specify the width that the brace is supposed to span. There is a method to span columns using \extracolsep{\fill}, but I was not able to figure out where to place that so that the \hphantom span the entire column. But hopefully, this gets you going:

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}

\newcolumntype{L}{l@{}}%

\begin{document}
\newcommand*{\WidthToSpan}{{R_L^2}{+}{\cdots +}b_{m-2} R_S^{m-1} c_1 R_L^{n-1}}%
$\begin{array}{LLLLLLLLLLLLLLLLLL} 1 &= &b_m & &c_n + &b_m & &c_{n-1} &R_L + &b_m & &c_{n-2} &R_L^2 + &\cdots + &b_m & &c_1 &R_L^{n-1} \\ &+ &b_{m-1} &R_S^1 &c_n + &b_{m-1} &R_S^1 &c_{n-1} &R_L + &b_{m-1} &R_S^1 &c_{n-2} &R_L^2 + &\cdots + &b_{m-1} &R_S^1 &c_1 &R_L^{n-1} \\ &+ &b_{m-2} &R_S^2 &c_n + &b_{m-2} &R_S^2 &c_{n-1} &R_L + &b_{m-2} &R_S^2 &c_{n-2} &R_L^2 + &\cdots + &b_{m-2} &R_S^2 &c_1 &R_L^{n-1} \\ & & & & & & & & & \vdots \\ &+ &b_1 &R_S^{m-1} &c_n + &b_1 &R_S^{m-1} &c_{n-1} &R_L + &b_1 &R_S^{m-1} &c_{n-2} &R_L^2 + &\cdots + &b_1 &R_S^{m-1} &c_1 &R_L^{n-1}\\ & & & & & & & & & & & & \multicolumn{6}{@{}c}{\underbrace{\hphantom{\WidthToSpan}}_{\text{Explanation}}} \end{array}$
\end{document}


• I fixed a minor alignment problem with your \WidthToSpan and the \multicolumn use of it.
– Werner
Aug 28, 2011 at 23:10
• @Richard: You can modify the depth of the underbrace using \\[<len>] it the end of the line just before \multicolumn. Here <len> is any recognized length, like 5pt (can also be negative).
– Werner
Aug 28, 2011 at 23:12

Can't believe this is missing a tikz solution. Here I have adapted the solution from Curly brace to insert something into an equation? Like an inverted underbrace.

This uses \tikzmark{} to mark the start and end points of the brace:

... &\tikzmark{StartBrace}R_L^2 + &\cdots + &b_1 &R_S^{m-1} &c_1 &R_L^{n-1}\tikzmark{EndBrace}


The names used here StartBrace and EndBrace for the endpoints are arbitrary so you can chose different names if you have multiple braces that are required. Then, after the array is completed, you pass these two names, along with any optional style changes you desire, and the text to be placed under the brace with:

 \InsertUnderBrace[draw=red,text=blue]{StartBrace}{EndBrace}{Explanation}


This yields:

## Notes:

• This does require two runs. First one to determine the locations, and the second to do the drawing.
• The math spacing around the binary operators was incorrect in the code snippet that was provided. I have adjusted those as well, while maintaining your desired alignment.

## Code:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.pathreplacing}

\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}

\newcommand*{\BraceAmplitude}{0.5em}%  Can be tweaked if
\newcommand*{\VerticalOffset}{0.5ex}%  necessary.
\newcommand*{\InsertUnderBrace}[4][]{%
\begin{tikzpicture}[overlay,remember picture]
\draw [decoration={brace,amplitude=\BraceAmplitude},decorate, thick,draw=blue,text=black,#1]
($(#3)+(0,-\VerticalOffset)$) --
($(#2)+(0,-\VerticalOffset)$)
node [below=\VerticalOffset, midway] {#4};
\end{tikzpicture}%
}%

\begin{document}
\begin{alignat*}{16}
1 &= b_m     &&          &&c_n + b_m     &&          &&c_{n-1} R_L + b_m     &&          &c_{n-2} &R_L^2 + \cdots + b_m     &&          &&c_1 &R_L^{n-1} \\
&+ b_{m-1} &&R_S^1     &&c_n + b_{m-1} &&R_S^1     &&c_{n-1} R_L + b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 + \cdots + b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
&+ b_{m-2} &&R_S^2     &&c_n + b_{m-2} &&R_S^2     &&c_{n-1} R_L + b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 + \cdots + b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
&          &&          &&              &&          &&               \vdots \\
&+ b_1     &&R_S^{m-1} &&c_n + b_1     &&R_S^{m-1} &&c_{n-1} R_L + b_1     &&R_S^{m-1} &c_{n-2} &\tikzmark{StartBrace}R_L^2 + \cdots + b_1 &&R_S^{m-1} &&c_1 &R_L^{n-1}\tikzmark{EndBrace}
\end{alignat*}
\InsertUnderBrace[draw=red,text=blue]{StartBrace}{EndBrace}{Explanation}
\end{document}


Richard: The following code has three groups of equations. The first is basically your set of expressions using the alignat structure, but with {}+{} terms instead of simple + terms to help TeX find better horizontal spacing (by treating the plus as a rel-operator). The second structure replicates the first structure but using an align* environment; note the use of \phantoms (defined in the preamble) to enforce proper columnar alignment. The third structure then demonstrates the use of \overbrace commands to add comments to the $n$ groups in the align group.

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath}

\newcommand{\pa}{\phantom{{}-1}}
\newcommand{\pb}{\phantom{R_S^{1-1}}}
\newcommand{\pc}{\phantom{.-1}}
\newcommand{\pp}{\phantom{{}+{}}}
\newcommand{\pq}{\phantom{{}+}}
\begin{document}

\begin{alignat*}{16}
1 =& &&b_m     &&          &c_n {}+{} &b_m     &&          &c_{n-1} &&R_L {}+{} &b_m     &&          &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_m     &&          &&c_1 &R_L^{n-1} \\
&{}+{} &&b_{m-1} &&R_S^1     &c_n {}+{} &b_{m-1} &&R_S^1     &c_{n-1} &&R_L {}+{} &b_{m-1} &&R_S^1     &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_{m-1} &&R_S^1     &&c_1 &R_L^{n-1} \\
&{}+{} &&b_{m-2} &&R_S^2     &c_n {}+{} &b_{m-2} &&R_S^2     &c_{n-1} &&R_L {}+{} &b_{m-2} &&R_S^2     &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_{m-2} &&R_S^2     &&c_1 &R_L^{n-1} \\
& \phantom{c}\vdots \\
&{}+{} &&b_1     &&R_S^{m-1} &c_n {}+{} &b_1     &&R_S^{m-1} &c_{n-1} &&R_L {}+{} &b_1     &&R_S^{m-1} &c_{n-2} &R_L^2 {}+{} &\dots {}+{} &b_1     &&R_S^{m-1} &&c_1 &R_L^{n-1}
\end{alignat*}

\begin{align*}
1 =  &\pp b_{m\pc}\pb     c_n +  b_{m\pc}\pb       c_{n-1} R_L  +  b_{m\pc}\pb        c_{n-2} R_L^2 + \dots + b_{m\pc}\pb        c_1 R_L^{n-1} \\
&+ b_{m-1} R_S^{1\pc}c_n +  b_{m-1} R_S^{1\pc}c_{n-1} R_L  +  b_{m-1} R_S^{1\pc} c_{n-2} R_L^2 + \dots + b_{m-1} R_S^{1\pc} c_1 R_L^{n-1} \\
&+ b_{m-2} R_S^{2\pc}c_n +  b_{m-2} R_S^{2\pc}c_{n-1} R_L  +  b_{m-2} R_S^{2\pc} c_{n-2} R_L^2 + \dots + b_{m-2} R_S^{2\pc} c_1 R_L^{n-1} \\
&\pp\vdots \\
&+ b_{1\pc}R_S^{m-1} c_n +  b_{1\pc}R_S^{m-1\phantom{.}} c_{n-1} R_L  +  b_{1\pc}R_S^{m-1}  c_{n-2} R_L^2 + \dots + b_{1\pc}R_S^{m-1}  c_1 R_L^{n-1}
\end{align*}

\begin{align*}
1 =  &\pq \overbrace{b_{m\pc}\pb     c_n}^{\text{First Group}} {}+ \overbrace{b_{m\pc}\pb       c_{n-1} R_L}^{\text{Second Group}} {}+ \overbrace{b_{m\pc}\pb c_{n-2} R_L^2}^{\text{Third Group}} {}+ \dots + \overbrace{b_{m\pc}\pb        c_1 R_L^{n-1}}^{\text{$n$-th Group}} \\[1ex]
&+ b_{m-1} R_S^{1\pc}c_n +  b_{m-1} R_S^{1\pc}c_{n-1} R_L  +    b_{m-1} R_S^{1\pc} c_{n-2} R_L^2 + \dots + b_{m-1} R_S^{1\pc} c_1 R_L^{n-1} \\[2ex]
&+ b_{m-2} R_S^{2\pc}c_n +  b_{m-2} R_S^{2\pc}c_{n-1} R_L  + b_{m-2} R_S^{2\pc} c_{n-2} R_L^2 + \dots + b_{m-2} R_S^{2\pc} c_1 R_L^{n-1} \\
&\pp\vdots \\[2ex]
&+ b_{1\pc}R_S^{m-1} c_n +  b_{1\pc}R_S^{m-1\phantom{.}} c_{n-1} R_L  +  b_{1\pc}R_S^{m-1}  c_{n-2} R_L^2 + \dots + b_{1\pc}R_S^{m-1}  c_1 R_L^{n-1}
\end{align*}
\end{document}