I started using Latex recently and I put together 4 ways of changing the space in a table. Two general ways defining the general space between cols and rows as well as two ways of adding space between certain rows or cols. I was wondering if the 4 ways I use are the best or most common one to use to adjust space in a table?

Here is my simple example:


    \setlength{\tabcolsep}{6pt} % General space between cols (6pt standard)
    \renewcommand{\arraystretch}{1} % General space between rows (1 standard)
    % Add @{\hskip Xpt} to tabular to add space between certain columns
    % Add [Xpt] after \\ of a certain row to add extra space before next row

    \begin{tabular}{c@{\hskip 12pt}c}

        % table content



3 Answers 3


I normally use changing tabcolsep and arraystretch, as you showed in the question:

\setlength{\tabcolsep}{6pt} % General space between cols (6pt standard)
\renewcommand{\arraystretch}{1} % General space between rows (1 standard)

I've had bad experiences with [Xpt] in very complex tables (multirows and multicols), and the syntax @{\hskip Xpt}... first time I see this!

Hope this helped!


Your described ways are correct. In the next steps I will quote the manual of array and the documentation of LaTeX2e source2e:



Suppresses inter-column space and inserts decl. instead.




: half the width separating columns in an array environment


: half the width separating columns in a tabular environment


: line spacing in array and tabular environments is done by placing a strut in every row of height and depth \arraystretch times the height and depth of the strut produced by an ordinary \strut commmand.


: for use inside an @ in the preamble. Causes a WIDTH space to be added between columns for the rest of the columns. This is in addition to the ordinary intercolumn space.

combination of array and source2e

In the macro \@array the line separator \\ is \let to the command \@arraycr.

  • 1
    Special interest in \extracolsep{WIDTH}, here which doesn't appear in many of the other answers around the site and lets you force tables-within-tables together. Apr 6, 2016 at 2:48
  • this is a really important answer! The difference between \tabcolsep and \arraycolsep is important! \arraystretch will work on either arrays or tables, but \tabcolsep doesn't work on arrays, so one must use \arraycolsep. This is what I was looking for!
    – gannex
    May 10, 2020 at 2:41

I always use tabcolsep and arraystretch for modifying spaces between rows and columns in a table. This works fine, even for complex table structures.

\setlength{\tabcolsep}{6pt}     % General space between columns (6pt standard)
\renewcommand{\arraystretch}{1} % General space between rows (1 standard)
  • Welcome to TeX SE! This just seems to repeat information provided in the question. Could you explain how this constitutes an answer?
    – cfr
    May 12, 2015 at 2:36
  • Hi, probably you haven't noticed that the question asked whether the specified ways are the best or commonly used ones. That's why I replied to let people know that yes these are the common ones but don't know about whether they are the best ones. Cheers ! May 12, 2015 at 4:48
  • 2
    Well, 'I always use...' doesn't really show 'commonly used'. On the other hand, what would? A survey of TeX users? (And so what?) So that bit of the question may not really be answerable. But what does this add to the other answers?
    – cfr
    May 12, 2015 at 12:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .