7

I noticed that sometimes the \big delimiters stop working. One example is when scrartcl is the document class.

\documentclass{scrartcl}

\begin{document}
\begin{equation}
    (\frac{1}{2})
    \bigl(\frac{1}{2}\bigr)
\end{equation}
\end{document}

I obtain the following result (i.e., the \bigl/\bigr macros have no effect):

big not working

(The bigger delimiter macros such as \Big and \bigg seem to work though.)

Another example is when loading both breqn and mathtools:

\documentclass{article}

\usepackage{mathtools}
\usepackage{breqn}

\begin{document}
\begin{equation}
    (\frac{1}{2})
    \bigl(\frac{1}{2}\bigr)
\end{equation}
\end{document}

Is this a bug? What would be a possible workaround?

6
  • 1
    This is due to scrartcl using 11pt by default. Either load \usepackage{exscale} or, better \usepackage{amsmath}
    – egreg
    Jul 21, 2013 at 11:06
  • I don't think so. I just found another example: using the article document class, and loading both mathtools and breqn also disables \big. This is unrelated to scrartcl as I was suspecting. What do you think is the explanation?
    – Olivier
    Jul 21, 2013 at 11:10
  • 1
    I suspect that breqn is the culprit in the second example. If I remove the call, I get bigger parentheses. The two problems are unrelated.
    – egreg
    Jul 21, 2013 at 11:16
  • Well, breqn does not cause the problem by itself, it's the combination with mathtools. Perhaps both problems are unrelated. But how to explain that \big is broken in both cases, and none of the other delimiter macros are? Could it be a name clash of some sort?
    – Olivier
    Jul 21, 2013 at 11:20
  • @egreg I apologize, I hadn't read your first comment completely... Could you explain more? The problem persists with \documentclass[12pt]{scrartcl}, but is indeed fixed upon loading \usepackage{amsmath}. I don't understand any of this... :-(
    – Olivier
    Jul 21, 2013 at 11:24

1 Answer 1

6

The way \big is defined in the LaTeX kernel does not make it scale when the main font size is increased: here's the code from fontmath.ltx

524 \def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
525 \def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
526 \def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
527 \def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}

Then \bigl( is just \mathopen{\big{(}}. You can see that the size of the delimiters does not depend from the main font size, but it's hardwired. Thus, when 11pt or 12pt size is used, \big ends up not being distinguishable from the normal size of the delimiter.

The amsmath package obviates to this by defining

552 \renewcommand{\big}{\bBigg@\@ne}
553 \renewcommand{\Big}{\bBigg@{1.5}}
554 \renewcommand{\bigg}{\bBigg@\tw@}
555 \renewcommand{\Bigg}{\bBigg@{2.5}}
556 \def\bBigg@#1#2{%
557   {\@mathmeasure\z@{\nulldelimiterspace\z@}%
558      {\left#2\vcenter to#1\big@size{}\right.}%
559    \box\z@}}
560 \addto@hook\every@math@size{%
561   \global\big@size 1.2\ht\Mathstrutbox@
562   \global\advance\big@size 1.2\dp\Mathstrutbox@ }
563 \newdimen\big@size

and defining suitably \Mathstrutbox@. Essentially the same is done by the exscale package. Nothing is done to this by mathtools, so the relevant package is amsmath.

I believe there is a bug in the breqn package, because \big@size is not set to the same value as with amsmath: with this example input

\documentclass{article}

\usepackage{amsmath}
%\usepackage{breqn}

\begin{document}
\begin{equation}
\makeatletter\showthe\big@size\makeatother
\end{equation}
\end{document}

I get

> 11.99995pt.
l.8 \makeatletter\showthe\big@size
                                  \makeatother

while uncommenting the call to breqn gives

> 7.20004pt.
l.8 \makeatletter\showthe\big@size
                                  \makeatother

and this difference explains why \bigl( is not larger than the simple (.

0

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.