131

I have a very long equation that must be separated into two lines, and it has several pairs of nesting \left \right delimiters. Unfortunately, it seems that they need to be on the same line in order for them to work.

Also I'm using the align environment because I need the aligning functionality. Is there a way to have the size of delimiters automatically adjusted over multiple lines?

Martin Scharrer
  • 262,582
sxu
  • 1,500

6 Answers6

99

You can't.

You can use some thing like \biggl, \biggr, or \left.\vphantom{...}\right). For example:

\[
\begin{split}
a &= \left( \frac12 + \frac13 + \frac14 \right. \\
  &\quad \left. {}+ a + b + c \vphantom{\frac12}\right)
\end{split}
\]
David Carlisle
  • 757,742
Leo Liu
  • 77,365
  • 13
    Note that the alignment points (the &s) have to be outside the \left/\right. – Lev Bishop Jun 22 '11 at 03:30
  • 1
    Could one modify \left and \right to include \vphantoms of all the lines in between? – Tobias Kienzler Oct 13 '11 at 09:12
  • 3
    @TobiasKienzler: It's not easy to determine what to put in the \vphantom. TeX cannot understand the meaning of the equations. Anyway, you can use breqn. – Leo Liu Oct 13 '11 at 13:14
  • Do you know whether it is possible to get this kind of pre-formatting from Mathematica for large system of equations? More here. – hhh Oct 14 '12 at 01:19
  • @hhh: breqn package should be useful. (See above) – Leo Liu Oct 14 '12 at 01:39
  • I tried \biggl and it works perfect. – Jdbaba Apr 04 '13 at 19:59
  • @LevBishop: what should one do if one needs an alignment tab inside \left...\right? Use \right. & \left.? – Blaisorblade Nov 15 '13 at 02:04
  • @Blaisorblade: Indeed. Sometimes we need \right. and \left., and sometimes we even need \vphantom. – Leo Liu Nov 15 '13 at 02:23
  • 2
    It's funny that even Word can automatically break equations over multiple lines and has no problems of breaking inside matching braces. After decades LaTeX still can't do it. I thought that the LaTeX's best part in contrast to Word is separation of content and presentation. “You can just concentrate on writing” is a usual motto of LaTeX aficionados when they try to explain the advantage of using LaTeX. – facetus Oct 11 '20 at 07:47
  • 1
    This is a better answer for more general situations. – Ziqi Fan Jan 03 '21 at 13:47
  • Great answer, this helped me enormously, thanks so much! – A-Level Student May 31 '21 at 21:45
  • \vphantom is the solution I was looking for all along! It always irked me when i used \left( <...> \right. \\ \left. <...> \right) and the brackets ended up with different sizes.

    For anyone reading this: \vphantom{} hides whatever you put in, while still scaling braces to what ''should'' be there, so just put the ''tallest'' thing in your equation, and all lines will scale according to that. E.g.

    \left( <something short> \vphantom{\frac{1}{1}} \right. \\ \left. <something tall> \right)

    – Vegard Gjeldvik Jervell Nov 18 '22 at 11:07
59

The solution for me was to use virtual dot delimiters

\frac{\partial F}{\partial x} &= \left[ \frac{\partial y}{\partial z} \right. \\
                              &* \left. \frac{\partial z}{\partial x} \right]

which was the comment posted by percusse in this question which was marked as a duplicate.

The virtual dot delimiters are in Leo Liu's answer above, but a TeX n00b like me wouldn't have seen it.

FYI Sphinx-1.1.3 already supports multi-line math with the math directive using the AmSMath LaTeX package, i.e. breqn is not necessary.

David Carlisle
  • 757,742
44

The breqn package is a package that defines a set of new math environments, with the purpose of enabling automatic line breaking of displayed math. These new environments also let you have \left and \right on different lines, though it is not the main goal of the package.

Note that the package has several known problems and incompatibilities, so depending on your use case it might not be for you. I recommend a look at the manual.


The example below is one where you definitely shouldn't use \left and \right in the first place, but it serves to illustrate that it works. The dmath environment is similar to equation.

enter image description here

\documentclass{article}
\usepackage{geometry}
\geometry{a5paper, margin=5cm}

\usepackage{breqn} \begin{document} Automatic breaking: \begin{dmath} 55 - \left(1+2+3+4+5+6+7+8+9+10\right) = 0 \end{dmath}

Manually breaking a line seems to work as well: \begin{dmath} 55 - \left(1+2+3+4+\5+6+7+8+9+10\right) = 0 \end{dmath} \end{document}

Torbjørn T.
  • 206,688
  • 1
    Is it compatible with amsmath and amssym? – Tobias Kienzler Oct 13 '11 at 09:10
  • 2
    @TobiasKienzler Judging from the manual, yes, but load breqn after any other packages dealing with math, such as those you mentioned. – Torbjørn T. Oct 13 '11 at 09:16
  • 1
    Warning that breqn package caused errors in my existing align equations; seemed to be related to the underset command. Using virtual dot delimiters (\right.) was a much simpler solution in this case - the answer by Mark Mikofski – JStrahl Apr 30 '18 at 13:08
  • 1
    breqn and package for allowing big brackets over more than one line. 119 pages of packages documentation. Welcome to Latex. – spinkus Oct 15 '19 at 07:10
  • @spinkus I won't argue that there can be a lot of documentation, but it's not really as bad as the page count indicates. The last 100 pages is about the implementation, i.e. it's code with explanation. So most users need only look at the first 20 pages. – Torbjørn T. Oct 15 '19 at 07:20
  • 3
    Would be good to add an example to this. – kennyB Nov 14 '19 at 23:53
  • 2
    breqn is incompatible with unicode-math. They promised to add Unicode math in 2009. It's 2020. So I would say breqn is dead. – facetus Oct 11 '20 at 05:26
  • This does not seem to be working. Loaded with \usepackage{breqn}. Breaking with \\ in between \left and \right still gives the same errors for me. – Marten Jan 27 '22 at 13:44
  • It is such a shame that the only package that attempts to allow line breaks between \left and \right also attempts something far more ambitious, and in my opinion unnecessary, and as a result ends up incompatible with everything and therefore ends up being useless. I would have loved a package that only attempted to allow breaks between \left and \right. – Marten Jan 27 '22 at 14:02
  • @Kvothe Well, the more ambitious goal was the original goal I suppose. As you probably realized, breqn doesn't enable that feature in, for example, the amsmath environments, just the environments defined by breqn itself. I should have expanded my answer years ago, sorry about that. – Torbjørn T. Jan 27 '22 at 17:08
6

Have a look at the nath package.

Aditya
  • 62,301
  • 1
    Is it compatible with amsmath? – Tobias Kienzler Oct 13 '11 at 09:08
  • 2
    @Tobias: No. As I know, it is uncommon to use nath. – Leo Liu Oct 13 '11 at 13:12
  • 2
    @Tobias: nath is incompatible with amsmath; it does provide some support for multi-line display, and lot of nice features like automatic scaling of delimiters (no need for \left ... \right) that also works across line breaks, ignoring the height of the subscripts and superscripts (of operators like \sum) when calculating the scaling of delimiters, smart display of \frac, amongst others which do are cumbersome when using amsmath. – Aditya Oct 13 '11 at 16:34
2

I had the same problem. I wanted to show this equation

\begin{equation*}
    V_{sal} = -\left(1.V_8 + \frac{1}{2}.V_7 + \frac{1}{8}.V_6 +\frac{1}{8}.V_5  + \frac{1}{16}.V_4 \right.\\
     \left. + \frac{1}{32}.V_3 + \frac{1}{64}.V_2 + \frac{1}{128}.V_1\right) 
\end{equation*}

but since it is too long (in a two column document), I used multline enviroment but it gives an error (something like Missing \right. inserted. \end{multline*} or Extra \right. \end{multline*}). I solved it with this new code

\begin{multline*}
V_{sal} = -\left(1.V_8 + \frac{1}{2}.V_7 + \frac{1}{8}.V_6 +\frac{1}{8}.V_5  + \frac{1}{16}.V_4 \right.\\
 \left. + \frac{1}{32}.V_3 + \frac{1}{64}.V_2 + \frac{1}{128}.V_1\right) 
\end{multline*}

Note that I added a \right. at the end of the first row and \left. at the beginning of the second row.

  • 1
    Welcome to TeX.SE! Your answer is the same as of @Mark Mikofski (difference are only in used parenthesis/ bracked. – Zarko Jan 10 '21 at 15:39
2

The previous "automated" solutions all use certain packages that have compatibility issues with amsmath. Here is a sort-of-automated solution that does not require additional packages.

This solution uses \vphantom and is in essence the same as the previous answers using this command.

% split \left and \right across two lines
% use only between \[ and \] (modify as needed for \begin{equation}\end{equation}, etc.)
\newcommand\MatchBrackets[2]{\left[#1\vphantom{#2}\right.\]\[\left.\vphantom{#1}#2\right]}
\newcommand\MatchParentheses[2]{\left(#1\vphantom{#2}\right.\]\[\left.\vphantom{#1}#2\right)}

Usage:

\[\nabla h=\MatchParentheses{\int_0^{e^5}e^{-z^2}dz+\frac12\cdot\cos\left(\frac12\cdot x\right)\cdot\cos(y),}{-\frac12\cdot\cos\left(\cos\left(\frac12\cdot y\right)\right)\cdot\sin\left(\frac12\cdot y\right)-\sin(x)\cdot\sin(y)}\]

(Idea taken from Wintz's comment here. Example modified from zdim's answer here.)

  • I welcome suggestions/feedback on the "user interface" for these commands—is "\MatchParentheses" a good name? should I make the command take 4 arguments, with two of the arguments specifying the delimiter symbols? "(), [], {}, ..." etc. – xFioraMstr18 May 20 '23 at 00:05