Defining a new command like \thead (suggested by Tim Hoffmann) is very useful.
\newcommand*{\thead}[1]{\multicolumn{1}{c}{\bfseries #1}}
However, if you need vertical lines the \multicolumn makes the command useless because you can't set the | manually. I've tried using optional arguments to set the text position but for some reason it didn't worked with tabulary.
I've achieved to center the text without \multicolumn (in tabular, tabulary and longtable) using the following two options.
- Using
\Centering from the package ragged2e, the problem is that it causes Underfull warnings.
\newcommand*{\thead}[1]{\Centering\bfseries #1}
- Using
\hspace*{\fill} in both sides
\newcommand*{\thead}[1]{\bfseries\hspace*{\fill}{#1}\hspace*{\fill}}
I'm currently using the second option without issues. I don't have to set the vertical lines and I can use \bfseries.
tabularenviroment in your MWE doesn't seem to include something that looks like a header. (The table's caption is not part of thetabularenvironment.) In general, you may want to use the command\multicolumn{4}{c}{\bfseries Table header line}}to typeset the header line of atabularenvironment that has four columns; "Table header line" would need to be replaced by the actual header you have in mind. Incidentally, you seem to have posted several questions but haven't accepted any of the answers provided; you may want to look into this. – Mico Mar 16 '13 at 16:27\begin{tabular}{llll}to set the overall table alignment, as well as\multicolumn{1}{c}{\bfseries <Header Col 1>},\multicolumn{1}{c}{\bfseries <Header Col 2>}, etc. for the entries in the first row? – Mico Mar 17 '13 at 12:18