153

This question already has an answer here:

How does one increase the height of the rows in a LaTeX table?

marked as duplicate by Werner tables May 9 at 15:10

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Just one more question how to place the text in the middle but increasing the height. – user1965914 Feb 8 '14 at 8:09
  • 12
    Instead of adjustments to \extrarowheight just modify \arraystretch, e.g. by \renewcommand{\arraystretch}{1.2}. – Thorsten Donig Feb 8 '14 at 8:21
  • 4
    @Werner This question has one of the clearest titles I've ever seen. What's the need to close it after a year? – karlkoeller Mar 16 '15 at 8:42
34

Use package easytable

\documentclass{article}
\usepackage[thinlines]{easytable}
\begin{document}

\begin{TAB}(r,1cm,2cm)[5pt]{|c|c|}{|c|c|c|}% (rows,min,max)[tabcolsep]{columns}{rows}
hi & tall one    \\
hi & medium one  \\
hi & standard one\\
\end{TAB}

\end{document}

enter image description here

  • Thank you! Can you also help in this tex.stackexchange.com/questions/159259/… – user1965914 Feb 8 '14 at 8:58
  • 1
    done. See answer – user2478 Feb 8 '14 at 9:23
  • 1
    But I want one that can automatically span width, and break pages, and ... (My point is that I should have to use a different environment to modify row spacing ;-) ) – Limited Atonement Aug 5 '16 at 13:16
  • What is r here? – ThoAppelsin Dec 1 '18 at 21:45
126

To increase the row height in a table you can either increase the \extrarowheight through something like

\setlength\extrarowheight{5pt}

or stretch the row through something like

\renewcommand{\arraystretch}{1.2}

as Thorsten Donig points out in the above comment.

IMHO, the best way to increase the height and keep the vertical alignment is to add the space when you break the row with \\, for example with \\[5pt].

This is an example (I've exaggerated a little with 50pt here)

\documentclass{article}
\usepackage{array}

\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}


\begin{document}

\begin{table}[ht]
\begin{tabular}{|M{4cm}|M{4cm}|N}
\hline
\textbf{Text} & \textbf{Text} &\\[50pt]
\hline
text & text&\\[50pt]
\hline
\end{tabular}
\end{table}

\end{document} 

Note that I've added a column as the last one defined as @{}m{0pt}@{} to avoid the issue described here: Vertical alignment in table: m-column, row size - problem in last column.

Output

enter image description here

  • 2
    I prefer the \renewcommand{\arraystretch}{1.2}. I did not see how to use the other method and still set the horizontal alignment, i.e., l/c/r. – Steven C. Howell Nov 12 '15 at 2:50
  • 2
    @stvn66 For left alignment, define \newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}} and, for right, \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}} – Sterry Dec 21 '15 at 18:32
  • Unfortunately, the author-preferred solution doesn't work at all, at least not on my machine. 112 upvotes got me and I tried to incorporate this thing without trying. I hope that other people see this comment before trying it out in their work, and try the solution to see if it works at all, despite >100 votes on it. – ThoAppelsin Dec 1 '18 at 21:43
  • Using \newcolumntype{N}{@{}m{0pt}@{}} to create an extra 'null' cell is an ingenious idea. Works well – V-Red Aug 2 at 19:51
58

Super Simple Solution

I faced similar problem, & found a (not so conventional but) simple way to solve it. Wish, it will help others too.


I had a table like this-

\begin{tabular}{c|ccc}
$x$ & 1 & 2 & 3\\ \hline
$f(x)$ & 1 & 2 & 3
\end{tabular}

And, I wanted to put some extra space before the second row-

enter image description here

So, I inserted an extra empty line-

\begin{tabular}{c|ccc}
$x$ & 1 & 2 & 3\\ \hline 
\\
$f(x)$ & 1 & 2 & 3
\end{tabular}

But, now I had put too much space there-

enter image description here

So, I used negative line spacing to reduce it-

\begin{tabular}{c|ccc}
$x$ & 1 & 2 & 3\\ \hline 
\\[-1em]
$f(x)$ & 1 & 2 & 3
\end{tabular}

Great! everything was perfect-

enter image description here

  • 11
    I really like this solution because it's simple and easy to control. One note is that if you have vertical lines between your other columns you have to add "&&&" as many times as it takes so that the vertical lines connect down. – MsTiggy Jul 23 '16 at 22:38
  • 4
    \\[-1em] does exactly what I was trying to do. Thank you. – Noah Sussman May 12 '17 at 22:30
  • 4
    To complete the comment above: avoid disconnection of multiple vertical lines by using: &&&\\[-1em] – hanna.lacka Mar 10 '18 at 22:50
  • 1
    Great, great, great. Just save my day! – Muhammad Toseef Mar 6 at 6:10
  • 1
    super elegant solution! – Jinhua Wang May 12 at 13:12
8

Use \rule{0pt}{value} to change the single row height to value.

Source

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