Delimiters (\left \right)

\sin\left(x\right) and \sin(x) look like the same formula, but they are not the same width. Measured with pdfLaTeX from TeX Live 2024, the first is 27.4375 pt and the second 25.77087 pt. The 1.66663 pt difference exists because LaTeX treats whatever sits between \left and \right as an Inner atom, and an Inner atom collects a thin space of 3 mu in front of it. LaTeX offers two families of delimiters — automatic \left \right, and the four hand-picked sizes \big \Big \bigg \Bigg — and the two complaints everyone has, “brackets too big” and “I cannot break a line inside \left\right”, both come down to which family you reached for. This page settles that choice with numbers.

How \left\right decides on a size

It does not stretch to the exact height of the contents; it picks the smallest of the font's ready-made delimiter sizes that clears a threshold. Two parameters set that threshold, and in the LaTeX of TeX Live 2024 they are \delimiterfactor = 901 and \delimitershortfall = 5 pt: the delimiter must cover at least 90.1 % of the required height, or fall short by no more than 5 pt — whichever is the easier condition. The character written immediately after \left or \right is the delimiter itself: ( ) for parentheses, [ ] for brackets, \{ \} for braces, \langle \rangle for angle brackets.

latex
\[
  \left( \frac{a^2 + b^2}{c^2} \right)
  \qquad
  \left[ \sum_{k=1}^{n} \frac{1}{k} \right]
  \qquad
  \left( a, b \right]
\]

That threshold is what “brackets too big” really means. In a 10 pt article, raise the height of the enclosed material step by step: up to 9 pt a 12 pt bracket (the same step as \big) suffices, and the moment it reaches 10 pt the choice jumps straight to an 18 pt bracket, the \Big step. At 12 pt it is still that same 18 pt bracket. Because the steps are discrete, a barely taller body makes the delimiters look a whole size louder. One more freedom: the paired delimiters need not match. A half-open interval such as \left( a, b \right] is written exactly that way.

\left…\right versus \bigl…\bigr: the spacing changes

When a style guide says “prefer \bigl…\bigr to \left…\right for a fixed size”, that is not taste; there is a measurable difference. TeX assigns every item in a formula an atom class and derives the surrounding space from pairs of classes. The result of \left\right is an Inner atom, \bigl gives an Open, \bigr a Close, and a bare \big an Ord (ordinary symbol). A function name such as \sin is an Op; an Op followed by an Open takes no space at all, while an Op followed by an Ord or an Inner takes a thin space of 3 mu — the 1.66663 pt from the opening paragraph.

Written asAtom classMeasured width of \sin…(x)
( x )Open / Close25.77087 pt — the baseline
\bigl( x \bigr)Open / Close27.15979 pt — only the glyphs grew
\left( x \right)Inner27.4375 pt — a 3 mu thin space is added
\big( x \big)Ord28.82642 pt — Op→Ord adds 3 mu as well

The last row of the table is why you should not skip the l/r suffixes. A bare \big( is an Ord, so it comes out 1.66663 pt wider than \bigl( — exactly one thin space. Open latex.ltx and the distinction is one plain line each: \bigl is \mathopen\big, \bigr is \mathclose\big, and \bigm is \mathrel\big. The letters stand for left, right and middle, so \bigm produces not a bracket but a relation the size of one. The bar of set-builder notation, \bigm|, is the standard use, and it measures out at a thick space of 5 mu on each side — 5.55542 pt in total.

latex
\[
  \sin\bigl( x \bigr)          % Open/Close: no stray space
  \qquad
  \biggl\{\, x \bigm| x > 0 \,\biggr\}
  \qquad
  \bigl( \Bigl[ \,\cdots\, \Bigr] \bigr)
\]

The real sizes of \big \Big \bigg \Bigg — and why \big does nothing at 12 pt

The four sizes are hard-coded as absolute lengths. Each definition in fontmath.ltx is a single line that wraps an invisible box in \left\right: 8.5 pt for \big, 11.5 pt for \Big, 14.5 pt for \bigg, 17.5 pt for \Bigg. The unit is pt, not em, so changing the document's body size does not change the requested height. In a 10 pt article that gives ( at 10 pt and \big( at 12 pt, a visible step; add the 12pt class option and the ordinary ( is already 12 pt tall, at which point \big( measures height 9.0 pt and depth 3.0 pt — exactly the same box as a plain (. That is the answer to “I wrote \big and nothing happened”: in a 12 pt document, start at \Big.

CommandHeight requested in fontmath.ltxMeasured in a 10pt article (height + depth)
(— (the font's ordinary glyph)7.5 + 2.5 = 10 pt
\big8.5 pt8.5 + 3.5 = 12 pt
\Big11.5 pt11.5 + 6.5 = 18 pt
\bigg14.5 pt14.5 + 9.5 = 24 pt
\Bigg17.5 pt17.5 + 12.5 = 30 pt

Each depth is 5 pt less than its height because a delimiter is centred on the axis of the formula. In the standard 10 pt math font the axis sits 2.5 pt above the baseline, so a 12 pt bracket splits into 8.5 pt above and 3.5 pt below. There are three practical reasons to choose a size by hand: to keep the heights equal across several lines (\left\right measures each line separately, so brackets in a stack of equations end up ragged), to stop the jump to the next size up, and to control the space on either side. Conversely, for a one-off formula whose height you cannot predict, \left\right is quicker and safer.

You cannot break a line inside \left\right — what happens, and what to do

A \left\right span forms a single group, so a \\ inside it stops the compilation. Try it in an align environment and pdfLaTeX from TeX Live 2024 says: ! Extra }, or forgotten \right., followed by ! Missing \right. inserted. The first means “the line ended and no \right had arrived”; the second means “so one was supplied for you.” There are two workarounds, and both have been confirmed to compile.

latex
\begin{align}
  % 1. fixed manual sizes: close and reopen, same size on both lines
  a &= \biggl( b + c \notag\\
    &\qquad + d \biggr)\\
  % 2. null delimiters: end each fragment with \right. and reopen with \left.
  e &= \left( f + g \right. \notag\\
    &\qquad \left. + h \right)
\end{align}

The first pins the size by hand and completes the opener and closer within each line; both lines then carry brackets of the same step, so they match visually. The second uses the invisible delimiter of the next section: close each fragment with \right. and reopen with \left.. That keeps automatic sizing, but because each line is measured on its own, the left and right brackets can end up different heights. When a long formula wraps around a fraction or a summation, the first approach — fixed manual sizes — is the practical one. How fractions and matrices themselves wrap belongs to their own pages.

! Missing \right. inserted. and ! Extra \right.

These two report a broken pair, and they tell you which side is missing. Write a \left, close the formula without a \right, and you get ! Missing \right. inserted. — the signal that LaTeX supplied a \right. to keep going. The other way round, a \right) with no \left gives ! Extra \right. The first case drags companions along with it, such as ! LaTeX Error: Bad math environment delimiter. and ! Missing $ inserted., so the fastest route is to scroll back to the first error and count the \lefts.

A delimiter on one side only: \left. and \right.

Put a period . immediately after \left or \right and nothing is drawn on that side. The . counts as a null delimiter: it satisfies the pairing rule and then disappears. The commonest use is the evaluation bar: \left. \frac{dy}{dx} \right|_{x=0} leaves the left side blank and grows only the right-hand rule to the height of the contents, with the condition at its lower right. A definite integral, \left. \frac{x^3}{3} \right|_{0}^{1}, has the same shape. With a manual size you do not even need the matching \left: f(x) \bigr|_{0}^{1} stands on its own. And if you want no visible delimiter at all but still want the group, make both sides .\left. … \right.

latex
\[
  \left. \frac{dy}{dx} \right|_{x=0}
  \qquad
  \left. \frac{x^3}{3} \right|_{0}^{1}
  \qquad
  f(x) \bigr|_{0}^{1}   % fixed size, no \left needed
\]

\middle: a divider as tall as the brackets

Between \left and \right you may write \middle followed by a delimiter, as often as you like, and each one grows to the same height as the outer pair. Set-builder notation, \left\{ x \;\middle|\; \dots \right\}, is the canonical case. The command is not in Knuth's original TeX: it is an e-TeX extension (pdfLaTeX in TeX Live 2024 reports \eTeXversion 2). And the e-TeX manual states in so many words that \right “appends an Inner atom to the current list”. The 3 mu at the top of this page is the direct consequence of that sentence.

latex
\[
  \left\{\, x \in \mathbb{R} \;\middle|\; x^2 < \frac{1}{2} \,\right\}
  \qquad
  \biggl\{\, x \bigm| x^2 < 1 \,\biggr\}
\]

One trap comes with it. According to the e-TeX manual, the material to the right of \middle is spaced “as after a left delimiter” — that is, \middle| behaves as an opener and gets no space at all on either side. Measurement agrees: \left(a\middle| -b\right) comes out at 27.91093 pt, exactly the width of \left(a\mathopen{|} -b\right) and 4.44434 pt narrower than the \mathord version. So you must open up the space yourself: write \;\middle|\;, or wrap it into a relation with \mathrel{}\middle|\mathrel{}. The latter adds a thick space of 5 mu on each side — 5.55542 pt together — which is exactly the spacing of \bigm|. If you are not committed to \middle, \bigm| is the shorter thing to type in the first place.

The delimiter repertoire: \langle, \lceil, \lfloor, \| and \Vert

Only symbols for which the font provides growable parts can follow \left/\right or the \big family. Parentheses, brackets and the slash are typed straight from the keyboard, but { and } are reserved characters in LaTeX, so a brace delimiter must be written \{ \}. For angle brackets use \langle \rangle, never the keyboard < >: those are inequality signs, that is, relations, and they collect a thick space on either side, so they do not read as delimiters at all. Measured: \langle a,b\rangle is 21.79976 pt while <a,b> swells to 35.13298 pt — over 13 pt wider.

CommandGlyphUse / notes
( )( )typed directly; the most common pair
[ ] \lbrack \rbrack[ ]typed directly; \lbrack \rbrack are the same
\{ \}{ }{ } are reserved; the backslash is required
\langle \rangle⟨ ⟩inner products, bra–ket; not < >
| \vert|absolute value etc.; both are Ord — pair with \lvert/\rvert
\| \Vertnorms etc.; identical output, both Ord
\lvert \rvert| |amsmath; a proper Open/Close pair
\lVert \rVert‖ ‖amsmath; the right choice for norms
\lceil \rceil⌈ ⌉ceiling (round up)
\lfloor \rfloor⌊ ⌋floor (round down)
\backslash /\ /quotient sets etc.; pairs as \left\backslash … \right/
\uparrow \downarrow↑ ↓double-shafted \Uparrow \Downarrow; both ways \updownarrow
\lgroup \rgroup⟮ ⟯rounded oversized parentheses; for large displays
\lmoustache \rmoustache⎰ ⎱the top and bottom halves of a large brace
\arrowvert \bracevert│ ⎪the vertical pieces that extend arrows and braces

Absolute value and norm: why |x| misbehaves, and \DeclarePairedDelimiter

Both | and \| are Ord atoms — they never declare themselves an opener or a closer. The cost shows up most starkly in |-x|: measured at 23.49298 pt, against 19.04865 pt for \lvert -x \rvert. The 4.44433 pt difference is the - after an Ord being read as a binary operator, which brings a medium space of 4 mu to each side. After \lvert, which is an Open, the same - becomes a unary minus and takes no space at all. The same thing happens after a function name: \sin|x| comes out one thin space (3 mu) wider than \sin\lvert x\rvert. Use amsmath's \lvert/\rvert, or \lVert/\rVert for norms. \| and \Vert produce identical output, so choosing between them changes nothing.

Typing \left\lvert … \right\rvert every time is not realistic, though. For notation you use repeatedly, the answer is \DeclarePairedDelimiter from mathtools. Define it once in the preamble and the body reads \abs{x}, or \abs*{\frac{a}{b}} to stretch to the contents, or \abs[\big]{x} to pin a step. Better still, the starred form it generates is wrapped as \mathopen{}\mathclose\bgroup … \aftergroup\egroup, so it uses \left\right without becoming an Inner atom — measured, \sin\abs*{x} is 23.54865 pt, exactly the same as \sin\lvert x\rvert. The package cancels the 1.66663 pt from the top of this page for you.

document.tex
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

% in the body:
\[
  \abs{x} \le \abs*{\frac{a}{b}}, \qquad
  \norm*{\frac{v}{2}}, \qquad \abs[\big]{y}
\]
  • A one-off formula of unpredictable height\left\right; quick and safe
  • Matching brackets across lines, or correct spacing\bigl \Bigl \biggl \Biggl and their r partners
  • A bar between the brackets\bigm|, or \;\middle|\;
  • One side only (the evaluation bar)\left. … \right|
  • The same notation over and over\DeclarePairedDelimiter from mathtools
  • \big does nothing in a 12 pt document → the ordinary bracket is already 12 pt; start at \Big