TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
up vote 3 down vote accepted

\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.

share|improve this answer
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 posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.