Each cell of a table is set in a box, so that a change of font style (or whatever) only lasts to the end of the cell. If one has a many-celled table, or a long one which needs lots of rows emphasising, putting a font style change command in every cell will be impossibly tedious.
With the array package, you can define column modifiers which will change the font style for a whole column. However, with a bit of subtlety, one can make such modifiers affect rows rather than columns. So, we set things up by:
Now, we put ‘$’ before the first column specifier; and we put ‘^ ’ before the modifiers of subsequent ones. We then use\usepackage{array} \newcolumntype{$}{>{\global\let\currentrowstyle\relax}} \newcolumntype{^}{>{\currentrowstyle}} \newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}% #1\ignorespaces }
\rowstyle
at
the start of each row we want to modify:
The array package works with several other\begin{tabular}{|$l|^l|^l|} \hline \rowstyle{\bfseries} Heading & Big and & Bold \\ \hline Meek & mild & entry \\ Meek & mild & entry \\ \rowstyle{\itshape} Strange & and & italic \\ Meek & mild & entry \\ \hline \end{tabular}
tabular
-like environments from other packages (for
example longtable
), but unfortunately this trick won’t
always work.
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=wholerow