Typesetting Multiple Overlapping Braces in LaTeX

In summary, the conversation discusses typesetting an expression with multiple underbraces and overlapping braces. Several examples using the makebox command are provided to achieve this. The makebox command is used to create a zero width box for the purpose of calculating the outer brace. The displaystyle command may also be used to ensure proper alignment. A typo is also mentioned and corrected. Finally, the purpose of using single dollar signs is clarified, to get in (inline) equation mode for the makebox argument.
  • #1
rsq_a
107
1
I'd like to typeset an expression like,

[tex]a + b + c + d = e[/tex]

The problem is I'd like to use multiple underbraces (or perhaps overbraces) which may also overlap. For example,

[tex]\underbrace{a + b}_\textrm{brace 1} + c + d = e[/tex]

is the first brace. But I'd also like to have a second brace which underlines b, c, and d (and lies below the first brace).

How would I do that?
 
Physics news on Phys.org
  • #2
[tex]\underbrace{\underbrace{a + b}_\textrm{brace 1} + c + d}_\textrm{brace 2}= e[/tex]
 
  • #3
CRGreathouse said:
[tex]\underbrace{\underbrace{a + b}_\textrm{brace 1} + c + d}_\textrm{brace 2}= e[/tex]

I originally did that (but then deleted it). He is asking for the brace to start under b and end at d.
 
  • #4
Hi rsq_a,


rsq_a said:
I'd like to typeset an expression like,

[tex]a + b + c + d = e[/tex]

The problem is I'd like to use multiple underbraces (or perhaps overbraces) which may also overlap. For example,

[tex]\underbrace{a + b}_\textrm{brace 1} + c + d = e[/tex]

is the first brace. But I'd also like to have a second brace which underlines b, c, and d (and lies below the first brace).

How would I do that?

How about these:

[tex]
a + \underbrace{b \makebox[0pt][r]{$\displaystyle{\underbrace{\phantom{a+b}}_\textrm{brace 1}}$}
+ c + d}_\textrm{brace 2} = e
[/tex]




[tex]
\underbrace{a + \makebox[0pt][l]{$\displaystyle{\underbrace{\phantom{b+c+d}}_\textrm{ brace 2}}$} b}_\textrm{brace 1} + c + d = e
[/tex]




[tex]
\underbrace{a + \makebox[0pt][l]{$\displaystyle{\overbrace{\phantom{b+c+d}}^\textrm{ brace 2}}$} b}_\textrm{brace 1} + c + d = e
[/tex]


You can say that the makebox command here is causing the inner brace to have a width of zero, for the purpose of calculating the outer brace. Let me show you the steps:

Let's say you start with this bit of Latex code:

{\rm neutrons} + {\rm protons} + {\rm electrons}

which if you Latex it gives the output:

[tex]
{\rm neutrons} + {\rm protons} + {\rm electrons}
[/tex]

Now put in the first underbrace:

{\rm neutrons} + \underbrace{ {\rm protons} + {\rm electrons} }_{\rm charged}

output:

[tex]
{\rm neutrons} + \underbrace{ {\rm protons} + {\rm electrons} }_{\rm charged}
[/tex]


So that's good. Now create a zero width box at the point where one end of the second underbrace goes, like this (with the new stuff in bold):

{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ {\rm neutrons} + {\rm protons} }_{\rm nucleons} }+ {\rm electrons} }_{\rm charged}

output:

[tex]
{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ {\rm neutrons} + {\rm protons} }_{\rm nucleons} }
+ {\rm electrons} }_{\rm charged}
[/tex]



I noticed that this last version looks fine on the forum, but what's really happening is that there are two copies of {\rm neutrons} + {\rm protons}; they are just right on top of each other. Sometimes they won't line up perfectly, so to make sure that you never see the duplicate contents, you can use the phantom command:

{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ \phantom{ {\rm neutrons} + {\rm protons} } }_{\rm nucleons} }+ {\rm electrons} }_{\rm charged}

output:

[tex]
{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ \phantom{ {\rm neutrons} + {\rm protons}} }_{\rm nucleons} }
+ {\rm electrons} }_{\rm charged}
[/tex]


Depending on what is in your equation, you might also want to use the displaystyle command right after the $ in the makebox (like I have in my first several examples). Also in my own work I have sometimes had to explicitly add a space or two to make everything line up correctly.
 
  • #5
I forgot to thank you for this (have yet to return to writing). I also spotted this in a Wikipedia article -- not as easy as your technique (and not the kind of braces I wanted), but it'd be nice to keep the info for future reference:

[tex]
\overbrace{\rho \Big(
\underbrace{\frac{\partial \mathbf{v}}{\partial t}}_{
\begin{smallmatrix}
\text{Unsteady}\\
\text{acceleration}
\end{smallmatrix}} +
\underbrace{\mathbf{v} \cdot \nabla \mathbf{v}}_{
\begin{smallmatrix}
\text{Convective} \\
\text{acceleration}
\end{smallmatrix}}\Big)}^{\text{Inertia}} =
\underbrace{-\nabla p}_{
\begin{smallmatrix}
\text{Pressure} \\
\text{gradient}
\end{smallmatrix}} +
\underbrace{\mu \nabla^2 \mathbf{v}}_{\text{Viscosity}} +
\underbrace{\mathbf{f}}_{
\begin{smallmatrix}
\text{Other} \\
\text{forces}
\end{smallmatrix}}
[/tex]
 
  • #6
Can somebody tell me that in previous examples what does the $ sign do before the \underbrace tag? At first I thought it's a typo.
 
  • #7
And I get the following error message for
$$
{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ {\rm neutrons} + {\rm protons} }_{\rm nucleons} }+ {\rm electrons} }_{\rm charged}
$$! Missing $ inserted.
<inserted text>
$
l.14 + {\rm electrons} }
_{\rm charged}
?
 
  • #8
Of course I was using my local LaTex installation.
 
  • #9
Hi zslevi,

zslevi said:
And I get the following error message for
$$
{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ {\rm neutrons} + {\rm protons} }_{\rm nucleons} }+ {\rm electrons} }_{\rm charged}
$$


! Missing $ inserted.
<inserted text>
$
l.14 + {\rm electrons} }
_{\rm charged}
?

There is a typo in my post; I left out a $ that was needed. (If you look at the first three examples at the beginning of my post you'll see matching single dollar signs the way they should be.) It seems that the LaTeX engine here is lenient and allowed my mistake to go through.

If you use this for your example:

$$
{\rm neutrons} + \underbrace{ {\rm protons}
\makebox[0pt][r]{$\underbrace{ {\rm neutrons} + {\rm protons} }_{\rm nucleons} $}+ {\rm electrons} }_{\rm charged}
$$

I believe it will work fine.
 
  • #10
Now it works fine, thanks.
However I still don't get what those single dollar signs are doing: are you nesting equation environments, or what?
 
  • #11
zslevi said:
Now it works fine, thanks.
However I still don't get what those single dollar signs are doing: are you nesting equation environments, or what?

My understanding is that the makebox argument is in text mode; for example if you look at this:

$$ xyz\makebox{abc}mno$$

you can see abc is treated as normal text, not equation symbols. But I wanted my box to contain equation components, so I had to get in (inline) equation mode and used the dollar signs (just like you would if you wanted math inside a paragraph of text).
 
  • #12
Thanks for the explanation.
 

FAQ: Typesetting Multiple Overlapping Braces in LaTeX

How do I create multiple overlapping braces in LaTeX?

To create multiple overlapping braces in LaTeX, you can use the \overbrace and \underbrace commands. These commands take two arguments: the first argument is the text or equation that you want to put under or over the brace, and the second argument is the text or equation that you want to be the brace itself. For example, \overbrace{a + b + c}^{\text{sum of three numbers}} will create an overbrace with the text "sum of three numbers" above the equation a + b + c.

How can I customize the appearance of my braces in LaTeX?

To customize the appearance of your braces in LaTeX, you can use the \overbrace and \underbrace commands along with the \color command. For example, \overbrace{\color{red}{a + b}}^{\text{sum of two numbers}} will create an overbrace with the text "sum of two numbers" above the equation a + b in red color.

Can I use multiple braces in the same equation in LaTeX?

Yes, you can use multiple braces in the same equation in LaTeX. You can simply use the \overbrace and \underbrace commands multiple times to create as many braces as you need. For example, \overbrace{\underbrace{a + b}_{\text{first term}} + \underbrace{c + d}_{\text{second term}}}_{\text{sum of two terms}} will create two underbraces and one overbrace in the equation a + b + c + d.

How do I align my braces with the equation in LaTeX?

To align your braces with the equation in LaTeX, you can use the \vphantom command. This command creates an invisible box that has the same height and depth as its argument. You can use this command to align your braces with the equation. For example, \overbrace{\vphantom{b} a + b}^{\text{sum of two numbers}} will create an overbrace that is aligned with the equation a + b.

Is it possible to add text above and below the brace in LaTeX?

Yes, it is possible to add text above and below the brace in LaTeX. You can use the \overbrace and \underbrace commands along with the \text command to add text above and below the brace. For example, \overbrace{a + b}^{\text{sum of two numbers}}_{\text{numbers must be positive}} will create an overbrace with the text "sum of two numbers" above the equation a + b and the text "numbers must be positive" below the brace.

Similar threads

Replies
13
Views
1K
Replies
5
Views
1K
Replies
3
Views
877
Replies
1
Views
2K
Replies
9
Views
2K
Replies
9
Views
3K
Replies
2
Views
10K
Back
Top