How to Add Vertical Space Between Rows or Tables in LaTeX
At a glance
- 1. Identify the gap
Decide whether you need more space between rows inside one table or between separate tabular blocks.
- 2. Choose a command
Use a row-spacing command inside tabular; add paragraph spacing outside tabular for separate tables.
- 3. Adjust and check
Compile the document and tune the spacing until the table remains readable and fits the page.
“Two lines of tables” can mean two rows in one table or two separate table blocks. The commands differ: add row spacing inside a tabular, but add paragraph spacing between separate tabular environments. For a single larger gap between rows, \\[6pt] is the quickest option; for a table using booktabs, \addlinespace[6pt] is usually clearer.
Add space between rows in one table
Place an optional length after the row-ending \\:
First row & Value \\[6pt]
Second row & Another value \\
The 6pt is additional vertical space after that row. Replace it with a length that suits your document, such as 3pt or 0.5em. This is useful when only one boundary needs extra room. It does not change the spacing of all the other rows.
If your table uses the booktabs package, use \addlinespace instead. It is intended for adding breathing room between rows in tables styled with \toprule, \midrule, and \bottomrule.
Worked example with booktabs
This complete example adds a 6-point gap between the two data rows. The only package it needs is booktabs.
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lr}
\toprule
Item & Count \\
\midrule
Apples & 4 \\
\addlinespace[6pt]
Oranges & 7 \\
\bottomrule
\end{tabular}
\end{document}
Put \addlinespace[6pt] between the row endings. This adds space before the following row; it does not create a blank row or change the table’s contents. You can omit the optional length to use the command’s default spacing.
Increase spacing throughout the table
If every row feels cramped, adjust the row height globally rather than inserting gaps one at a time. The \arraystretch factor scales the standard row spacing. Set it locally in a group so it does not affect other tables:
{\renewcommand{\arraystretch}{1.2}
\begin{tabular}{lr}
Item & Count \\
Apples & 4 \\
Oranges & 7 \\
\end{tabular}
}
A value of 1.2 makes the standard row spacing larger than its default. It is a scaling factor, not a measurement in points, so use \\[6pt] or \addlinespace[6pt] when you need a specific extra gap at just one row boundary.
Add space between separate tables
If the tables are in separate tabular environments, insert vertical space outside them. For example:
\begin{tabular}{lr}
Item & Count \\
Apples & 4 \\
\end{tabular}
\par\vspace{8pt}
\begin{tabular}{lr}
Item & Count \\
Oranges & 7 \\
\end{tabular}
Here \par ends the paragraph containing the first table, and \vspace{8pt} adds the gap before the next one. You can also use a standard skip such as \medskip instead of a fixed length. Do not put \vspace between rows while still inside a tabular; it is not the right tool for spacing its entries.
Common mistakes
- Adding an empty row: A row containing only
\\creates an empty row, which may add unwanted space. Use a row-spacing command instead. - Putting
\vspaceinsidetabular: Table rows are controlled by the alignment environment. Use\\[length]or\addlinespacethere. - Changing every row to fix one gap:
\arraystretchaffects the whole table. Use a local row gap if only one boundary needs extra room. - Mixing spacing and rules without checking the result: When using
booktabs, place\addlinespacebetween data rows and inspect its position relative to the rules. Keep the table’s spacing consistent rather than adding space after every row by default.
Choose the command based on the scope of the change: a single row boundary, the whole table, or the space between separate table blocks.
References
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.