Making LaTeX tables smaller?

I have a LaTeX table that looks like this:

\begin{table}[!ht]
\centering
\small
\caption{
\bf{Caption}}
\begin{tabular}{l|c|c|l|c|c|c|c|c}
field1 & field 2 & ... \\ 
\hline
...

the problem is that even with "\small" the table is too big, since I use:

\usepackage{setspace} 
\doublespacing

in the header. How can I:

  1. Make the table single spaced? and
  2. Make the table smaller?

I'd like it to fit on an entire page.


Solution 1:

http://en.wikibooks.org/wiki/LaTeX/Tables#Resize_tables talks about two ways to do this.

I used:

\scalebox{0.7}{
  \begin{tabular}
    ...
  \end{tabular}
}

Solution 2:

As well as \singlespacing mentioned previously to reduce the height of the table, a useful way to reduce the width of the table is to add \tabcolsep=0.11cm before the \begin{tabular} command and take out all the vertical lines between columns. It's amazing how much space is used up between the columns of text. You could reduce the font size to something smaller than \small but I normally wouldn't use anything smaller than \footnotesize.

Solution 3:

if it's too long for one page, use the longtable package. and if it's too wide for the page, use p{width} in place of l,r, or c for the column specifier. you can also go smaller than \small, i.e. \footnotesize and \tiny. I would consult the setspace package for options on how to remove the double space, though it's probably \singlespace or something like that.

Solution 4:

You could add \singlespacing near the beginning of your table. See the setspace instructions for more options.

Solution 5:

There is also the singlespace environment:

\begin{singlespace}
\end{singlespace}