One often needs to alter the alignment of a tabular p ('paragraph')
cell, but problems at the end of a table row are common. If we have a
p cell that looks like
... & \centering blah ... \\one is liable to encounter errors that complain about a "misplaced
\noalign" (or the like).
The problem is that the command \\ means different things in
different circumstances: the tabular environment
switches the meaning to a value for use in the table, and
\centering, \flushright and \flushleft all change the
meaning to something incompatible. Note that the problem only
arises in the last cell of a row: since each cell is set into a box,
its settings are lost at the & (or \\) that terminates it.
The simple (old) solution is to preserve the meaning of \\:
\def\PBS#1{\let\temp=\\%
#1%
\let\\=\temp
}
which one uses as:
... & \PBS\centering blah ... \\(for example).
The technique using \PBS was developed in the days of LaTeX 2.09
because the actual value of \\ that the tabular
environment used was only available as an internal command. Nowadays,
the value is a public command, and you can in principle use it
explicitly:
... & \centering blah ... \tabularnewlinebut the old trick has the advantage of extreme compactness.
The \PBS trick also serves well in array package "field
format" preamble specifications:
\begin{tabular}{... >{\PBS\centering}p{50mm}}
...
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tabcellalign