# Why do \left and \right add so much extra space under the baseline?

When I write

$\left \lVert \overrightarrow{\nabla} \right \rVert$


I get way too much extra space under the baseline:

Why is this happening, and how can I fix it?

• matched delimiters (which is what \left and \right does) are vertically symmetrical around the math axis (at the height of a minus sign). this expression, whose height is increased by the overarrow, will gain an equivalent depth using this coding. – barbara beeton Aug 25 '15 at 20:53
• @barbarabeeton Thank you for explaining. Any suggestions on how to fix this? – justin Aug 25 '15 at 20:55
• Because they ad so much extra space I never use \left and \right and instead use \bigl, \Bigl, ... and \bigr, \Bigr, ... from amsmath. – Andrew Aug 25 '15 at 21:00
• @Andrew Unfortunately, even using \Bigl and \Bigr, which make the \lVert and \rVert just reach the top of the \overrightarrow, similarly add a huge amount of space underneath the baseline in this example. \bigl and \bigr don't allow the \lVert and \rVert to reach the top of the \overrightarrow. – justin Aug 25 '15 at 21:06
• @justin Your error is in thinking that the fences should cover the overarrow: they needn't to. Normal fences or \big ones are sufficient. – egreg Aug 25 '15 at 21:15

The fences are symmetric with respect to the formula axis (the imaginary line where fraction lines sit). In the case of \overrightarrow{\nabla}, the size chosen is the same as for \Bigg, which extends way down the formula axis.

There's no need that the fences cover the whole construction, in particular the arrow.

Here's a visual sample, where I use the handy \DeclarePairedDelimiter function provided by mathtools (that loads amsmath). I also use smaller arrows as defined in https://tex.stackexchange.com/a/248297/4427

\documentclass{article}
\usepackage{mathtools}

\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

\makeatletter
\newcommand{\overrightsmallarrow}{\mathpalette{\overarrowsmall@\rightarrowfill@}}
\newcommand{\overarrowsmall@}[3]{%
\vbox{%
\ialign{%
##\crcr
#1{\smaller@style{#2}}\crcr
\noalign{\nointerlineskip\vskip1pt}%
$\m@th\hfil#2#3\hfil$\crcr
}%
}%
}
\def\smaller@style#1{%
\ifx#1\displaystyle\scriptstyle\else
\ifx#1\textstyle\scriptstyle\else
\scriptscriptstyle
\fi
\fi
}
\makeatother

\begin{document}

\begin{gather*}
\norm*{\overrightsmallarrow{\nabla}}
\\
\norm*{\overrightsmallarrow{x}}
\\

• @daleif \ialign is just \halign with an initialization of \everycr to empty and \tabskip to zero. – egreg Aug 26 '15 at 8:19