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:
usepackage{array} ewcolumntype{$}{>{globalletcurrentrowstyle elax}} ewcolumntype{^}{>{currentrowstyle}} ewcommand{ owstyle}[1]{gdefcurrentrowstyle{#1}% #1ignorespaces }
Now, we put ‘$’ before the first column specifier; and we put ‘^ ’ before the modifiers of subsequent ones. We then use
owstyle
at the start of each row we want to modify:
egin{tabular}{|$l|^l|^l|} hline owstyle{fseries} Heading & Big and & Bold \ hline Meek & mild & entry \ Meek & mild & entry \ owstyle{itshape} Strange & and & italic \ Meek & mild & entry \ hline end{tabular}
The array package works with several other tabular
-like environments from other packages (for example longtable
), but unfortunately this trick won’t always work.