Justify Table by Row
The standard way to justify the heading rows of a small table is to use the \multicolumn
command, which allows you to override the column specification for each span of rows. In this example, I've used the booktabs
package, which is highly recommended for any professional looking table.
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lrp{1in}}
\toprule
\multicolumn{1}{c}{A} & \multicolumn{1}{c}{B} & \multicolumn{1}{c}{C}\\
\midrule
left & right & 1 inch\\
l & r & foo\\
\bottomrule
\end{tabular}
\end{document}
For some fancier ideas for heading rows, see Make first row of table all bold.
This is a slightly different approach to what is posted in Make first row of table all bold.
tabular
environments are easily formatted column-wise. Not so much row-wise. However, there are ways around it. Here's one attempt.
You can use an \if...
conditional to distinguish between your header/non-header rows. \newif\headerrow
defines the condition \ifheaderrow
that can be either true (\headerrowtrue
) or false (\headerrowfalse
). Subsequently you can insert contents before each table entry depending on this condition with the aid of the array
package:
\documentclass{article}
\usepackage{array}% http://ctan.org/pkg/array
\newif\ifheaderrow
\newcolumntype{C}{>{\ifheaderrow\bfseries\fi}c}
\begin{document}
\begin{table}
\global\headerrowtrue
\begin{tabular}{|>{\bfseries}c | *{3}{C|}}
\hline
& S1 & S2 & S3 \\
\hline \global\headerrowfalse
D1 & 4217 & 5821 & 1102 \\
D2 & 3679 & 5089 & 991 \\
D3 & 2589 & 3301 & 604 \\
D4 & 1418 & 1722 & 294 \\
\hline
\end{tabular}
\end{table}
\end{document}
The resetting of \headerrowfalse
must be made \global
, since the modification would otherwise only hold within the group, which is the cell within which it is called.