I read in the documentation of the booktabs package that \abovetopsep can be used to add some space between a table and its caption (instead of the lower-level \vspace{}). However, the exact placement of that option is not clear (at least to me). Is it standalone? Is it an attribute of toprule?

After a few attempts, all failing with "Missing number, treated as zero" it's clear I don't know where to put it. I'm not going to list them as they are obviously incorrect.


\abovetopsep is a length macro. Use \setlength to modify it, place that in your preamble. For example:


This space would be added above the line made with \toprule. If you specify the length in your preamble, no change within a table environment is required. Jut put the caption above, the space by \abovetopsep will follow automatically, then comes the toprule. A \midrule, also if placed at the top, would ignore this space.

  • That was fast! Thanks, Stefan, it works perfectly. – wishihadabettername Aug 7 '10 at 19:11
  • Isn't \setlength just a macro wrapper for assignment syntax? I.e. isn't \setlength{\abovetopsep}{1ex} equal, in behaviour, to \abovetopsep=1ex ? – Giel Aug 7 '10 at 19:20
  • @Giel: that's true. \setlength is simply defined: \def\setlength#1#2{#1#2\relax}. The questioner was probably not aware how to use it as a length in general. – Stefan Kottwitz Aug 7 '10 at 19:44

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.