Como alterar o alinhamento das células de uma tabela

Frequentemente, é necessário alterar o alinhamento de uma célula p (‘parágrafo’) mas são comuns os problemas no final de uma linha da tabela. Com uma célula p que se pareça com:

... & \centering blah ... \\
é possível encontrar mensagens de erro se queixando de um \noalign “fora de lugar” ou uma “tabulação de alinhamento” a mais ou algo parecido. O problema é que o comando \ significa coisas diferentes em circunstâncias diferentes: o ambiente tabular muda o significado para um valor a ser usado na tabela, e \centering, \raggedright e \raggedleft mudam de significado para algo incompatível. Observe que o problema surge apenas na última célula de uma linha: como cada célula é definida em uma caixa, suas configurações são perdidas no & (ou no \ ) que a encerra.

Antigamente, o valor real de \ que o ambiente tabular usava estava disponível apenas como um comando interno. Hoje em dia, o valor é um comando público, e você pode, em princípio, usá-lo explicitamente:

... & \centering blah ... \tabularnewline
(mas essa é uma maneira verborrágica de fazer as coisas).

O pacote array fornece um comando \arraybackslash que restaura o \ a seu significado correto (dentro de tabelas); o comando pode ser usado nas especificações de preâmbulo referentes ao “formato de campo” do array:

\begin{tabular}{... >{\centering\arraybackslash}p{50mm}}
...

Os comandos \tabularnewline e \arraybackslash são adições (um tanto) modernas ao LaTeX e ao pacote array , respectivamente. No caso improvável de que nenhum dos dois esteja disponível, o usuário pode tentar a (antiga) solução que preserva o significado de \ :

\newcommand\PBS[1]{\let\temp=\\%
  #1%
  \let\\=\temp
}
que se usa dentro de uma tabela assim:
... & \PBS\centering blah ... \\
ou no preâmbulo assim:
\begin{tabular}{...>{\PBS\centering}p{5cm}}
array.sty
Distributed as part of 2etools


Do you have any question? Ask on: latex.net.br - we love qood questions!