Thursday, October 30, 2008

Formatting Tables

I suppose I should start with the subject that made me start this blog in the first place: formatting tables. Now I'm sure this is the first in a series of posts on tables, as anyone who has worked with them knows how finicky they can be.

The two aspects of tables I'm explaining today are the column and row separation values. For those that are looking for quick fixes, I'll give them to you right away:

Column Width: \tabcolsep
Usage: \renewcommand\tabcolsep{6pt}
Explanation: tabcolsep is HALF the space between two columns. Default value is 6pt

Row Height: \arraystretch
Usage: \renewcommand\arraystretch{1}
Explanation: arraystretch is a FACTOR representing the distance between two rows. Default is 1

The two variables are manipulated in different ways: tablecolsep is a unit, so it can be specified in a variety of ways (pt, ex, em, etc...) which arraystretch is a factor, so it has no units.

The code demonstrates how to manipulate the variables, using beamer slides.

\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
1 & 2 &3 &4 &5 &6 &7 &8 &9 & a &b &c &d &e &f \\\hline
Wide Column & & & & & & & & & & & & & & \\\hline
\end{tabular}
\renewcommand\arraystretch{1.1}
\renewcommand\tabc
olsep{3pt}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
1 & 2 &3 &4 &5 &6 &7 &8 &9 & a &b &c &d &e &f \\\hline
Wide Column & & & & & & & & & & & & & & \\\hline
\end{tabular}
\renewcommand\arraystretch{0}
\renewcommand\tabcolsep{0pt}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
1 & 2 &3 &4 &5 &6 &7 &8 &9 & a &b &c &d &e &f \\\hline
Wide Column & & & & & & & & & & & & & & \\\hline
\end{tabular}
\renewcommand\arraystretch{2}
\renewcommand\tabcolsep{6pt}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
1 & 2 &3 &4 &5 &6 &7
&8 &9 & a &b &c &d &e &f \\\hline
Wide Column & & & & & & & & & & & & & & \\\hline
\end{tabular}
\end{frame}
\end{document}

Which produces these slides