134

Is there a way to force a line break inside a math mode text?

My example:

\[
  \underbrace{....}_\text{Some long text that should be multiline}
\]

Trying

\text{Some long text that\\ should be multiline}

Didn't do the trick.

  • 5
    While it is not an answer, I thought you might like to know why \` fails inside \text. If you look through the code, \text` will insert an \hbox for the content when in math mode. TeX sets \hbox material in a mode where paragraphs are ignored, so there will never be a break inside the argument of the \text macro. – Joseph Wright Dec 21 '10 at 13:55
  • Is there a reasonable solution in Plain TeX? – Palec Apr 5 '15 at 14:24
150

You can use the \substack command, from the amsmath package, just like \text.

\[
  \underbrace{...}_{\substack{\text{Some long text that} \\ \text{should be multiline}}}
\]
|improve this answer|||||
  • 5
    Why do you have 3 backslashes where the ... nvm, I see now. I feel this answer would be better with some spacing for readability. Also, I believe the answer would be improved if it were pointed out that \substack was designed for this very purpose. (It was right?) – Travis Bemrose Apr 30 '15 at 23:59
36
  • \substack, mentioned by Carsten, probably fits best to your \underbrace because of the centered alignment.

  • subarray is similar but offers customizable alignment:

Example:

\[
 \underbrace{....}_{\begin{subarray}{l}\text{Some  long text that}\\
    \text{should be multiline}\end{subarray}}
\]
  • \parbox also works in math mode. You could use a font size command inside.
|improve this answer|||||
22

Another possibility:

\[
 \underbrace{some equation}_{\text{Some long text that}\atop\text{should be multilined}}
\]
|improve this answer|||||
6
\documentclass[11pt]{article}
\usepackage{amsmath}

\newcommand\myText[1]{\text{\scriptsize\tabular[t]{@{}l@{}}#1\endtabular}}

\begin{document}

\[
  \underbrace{....}_\myText{Some long text that\\ should be multiline}
\]

\end{document}
|improve this answer|||||
  • 1
    It can be centered by replacing the @{}l@{} with @{}c@{} – Hans May 22 '17 at 13:31
4

A simple \parbox with a certain width should also do.

\documentclass[11pt]{article}
\usepackage{mathtools}   % loads »amsmath«

\begin{document}
  \[
    \underbrace{ax^3+bx^2+cx+d}_{\text{\parbox{10em}{Some text that should be multi-lined}}}
  \]
\end{document}
|improve this answer|||||
  • That doesn't work. – jonaprieto Oct 14 '14 at 20:20
  • If you remove the \text it sure does. At least in my context. @d555 – MickG Jan 11 '16 at 12:27
3

One more, for a very long text:

\documentclass{article}
\usepackage{lipsum}
\newlength{\mysum}
\settowidth{\mysum}{$1+2+3+4+5+6+7+8+9$}
\begin{document}
\begin{equation}
\underbrace{1+2+3+4+5+6+7+8+9}_{
\begin{minipage}{\mysum}\lipsum[2]\end{minipage}} 
\end{equation}
\end{document}
|improve this answer|||||
0

I had a similar issue, solved by writing same expression in multiple lines by $$, for example,

\documentclass[paper=8.27in:11.69in]{scrartcl}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{amsmath}

\begin{document}

$\Pi_{employee-name}(\sigma_{manages.manager-id \ = \ employee2.employee-id \ \wedge}$\\
$_{employee.street = employee2.street \ \wedge \ employee.street = employee2.street}(employee \bowtie manages \bowtie \rho_{employee2}(employee)))$

\end{document}
|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.