Como forçar uma nova linha dentro de uma tabela?

O porblema…

Quem utiliza LaTeX com frequência se depara com a necessidade de forçar uma mudança de linha dentro de uma célula de uma tabela.  Veja-se o exemplo da tabela seguinte.
Na tabela, tanto no cabeçalho como no texto foi necessário forçar mudanças de linha. Um forma de conseguir isto é colocar uma tabela dentro de uma tabela, ou seja, o cabeçalho da 2ª coluna é ele próprio uma tabela com 1 coluna e duas linhas.  Veja-se o código que produz a Tabela 1 (note que estou a utilizar o pacote "booktabls", pelo que uso “\toprule, \midrule, bottomrule” em vez de “\hline”).

Note que várias células do ambiente tabular que define a tabela (ratângulo grande) contêm elas próprias um novo ambiente tabulare (retângulos menores).  Em tabelas mais complexas esta proliferação de ambientes tabular pode tornar o código muito difícil de manter.

Uma solução…

Uma solução possível passa pela utilzação do pacote makecell.  Este pacote permite forçar mudanças de linha numa célula de uma tabela sem ter que definir um novo ambiente tabular.  Veja-se o código que produz uma tabela exatamente idêntia à anterior, mas que faz uso do pacote makecell.
Nesta definição continuamos a usar o pacote booktabs e agora adicionalemnte o makecell.  Este pacote introduz dois comandos muito úteis, o “\thead” e o “\makecell”.  Ambos os comandos permitem forçar mudanças de linha no conteúdo da célula.  O primeiro serve para definir os cabeçalhos das tabelas de acordo com a especificação dada imediatamente pelo comandos “\thead*” imediatamente acima do “\begin{tabular}”.  O segundo serve para definir o conteúdo das restantes células de acordo com a especificação dada imediatamente pelo comando “\cellgape” imediatamente acima do “\begin{tabular}

Exemplos do manual do pacote makecell

Veja-se dois exemplos retirados do manual do pacote makecell que ilustram algumas das funcionalidades adicionais deste pacote.
Entre as fucnionalidades adicionais conta-se:

  • Controlar o alinhamento horizontal dentro da cálula: esquerda, centrado, direita;
  • Controlar o alinhamento vertical dentro da cálula: topo, centrado, baixo;
  • Escrever texto na diagonal ou vertical (no exemplo na vertical).

Para saber como conseguir estas funcionalidades e/ou outras, recomendo fortemente a leitura do manual do pacote makecell.





Comentários

Mensagens populares deste blogue

Gráfico ou Tabela?

Capas de tese sem menção do júri

Modo 'draft' vs 'final'