Pular para o conteúdo

array, tabularx, longtable e tabulary no Scissor LaTeX

Os pacotes array e tabularx e seus parentes funcionam em parte no Scissor LaTeX: tabelas tabularx, tabulary, longtable e xltabular são compostas como tabular, e células longas quebram linha quando a tabela ficaria mais larga que a linha; larguras de coluna (p{3cm}, X, a largura da tabela) e código >{...}/<{...} são ignorados, \newcolumntype é desconhecido e os cabeçalhos do longtable não se repetem.

O que os pacotes fazem

  • O array acrescenta tipos de coluna como m{width} e b{width}, código antes e depois de cada célula com >{...} e <{...}, e \newcolumntype para suas próprias letras de coluna.
  • O tabularx oferece \begin{tabularx}{\textwidth}{lX}, em que as colunas X se esticam para que a tabela tenha a largura dada. O tabulary faz o mesmo com colunas L, C, R, J, que dividem a largura conforme o conteúdo.
  • O longtable permite que uma tabela se divida entre páginas, com um cabeçalho que se repete (\endhead). O xltabular combina longtable e tabularx.

O que funciona aqui

RecursoNo Scissor LaTeXObservações
tabularx, tabulary, xltabular, longtable, tabular*Em parteCompostos como tabular. O argumento de largura total é ignorado.
Colunas X, L, C, R, JEm parteX e L alinham à esquerda, C centraliza, R alinha à direita.
p{3cm}, m{3cm}, b{3cm}Em parteAlinhadas à esquerda; a largura é ignorada.
Texto longo em célulasFuncionaQuebra linha quando a tabela ficaria mais larga que a linha.
>{\bfseries}l, r<{\%}IgnoradoO código antes e depois das células é ignorado.
\newcolumntype{C}{...}Não suportadoPulado com uma nota na aba Problemas, e a definição é impressa como texto. Escreva o tipo de coluna por extenso no lugar.
\endhead, \endfirsthead, \endfoot, \endlastfootIgnoradoUma tabela longa se divide entre páginas, mas o cabeçalho não se repete.
\tabularnewlineFuncionaO mesmo que \\.
\arraybackslashNão suportadoPulado com uma nota na aba Problemas; de resto, inofensivo.

Exemplos

Uma tabela tabularx com uma coluna que se estica. O texto longo quebra na margem do texto, como em uma instalação do TeX:

tabularx com uma coluna X

LaTeXPreâmbulo: \usepackage{tabularx}Abrir no editor (abre em uma nova aba)
\begin{tabularx}{\textwidth}{lX}
\hline
Name & Notes \\
\hline
Erika Mustermann & Leads the project, writes the reports and checks
  every one of the 44 measurements twice before they are published. \\
John Doe & Builds the test setup. \\
\hline
\end{tabularx}
Renderizado pelo Scissor LaTeX: tabularx com uma coluna X

Um longtable com uma linha de cabeçalho. A tabela é composta; em um documento longo, o cabeçalho não se repetiria na página seguinte:

longtable com \endhead

LaTeXPreâmbulo: \usepackage{longtable}Abrir no editor (abre em uma nova aba)
\begin{longtable}{lr}
\hline
Item & Count \\
\hline
\endhead
Pencils & 44 \\
Erasers & 12 \\
Rulers  & 7 \\
\hline
\end{longtable}

O código em >{...} é ignorado, então esta coluna não fica em negrito e os sinais de porcentagem faltam:

>{...} e <{...} são ignorados

LaTeXPreâmbulo: \usepackage{array}Abrir no editor (abre em uma nova aba)
\begin{tabular}{>{\bfseries}l r<{\,\%}}
Growth & 44 \\
Share  & 12 \\
\end{tabular}

Escreva a formatação dentro das células no lugar. Isso funciona aqui e em uma instalação do TeX:

Formatação escrita dentro das células

\begin{tabular}{lr}
\textbf{Growth} & 44\,\% \\
\textbf{Share}  & 12\,\% \\
\end{tabular}

Compatibilidade

  • De uma instalação do TeX para cá: as tabelas são compostas e mantêm o alinhamento, mas não as larguras de coluna. Procure letras de coluna personalizadas de \newcolumntype.
  • Daqui para uma instalação do TeX: os documentos compilam lá sem mudanças, e lá as larguras são aplicadas.

Os manuais completos estão no CTAN: ctan.org/pkg/array, ctan.org/pkg/tabularx, ctan.org/pkg/tabulary, ctan.org/pkg/longtable e ctan.org/pkg/xltabular. Para tabelas em geral, veja Tabelas em LaTeX.

Veja também Tabelas, multirow, booktabs e o gerador de tabelas LaTeX.

Perguntas e respostas

Por que minha coluna p{3cm} não tem 3 cm de largura?

As larguras de coluna ainda não são aplicadas. Mesmo assim, o texto longo quebra na margem do texto, então a tabela fica dentro da página.

O longtable se divide entre páginas?

Sim, uma tabela longa continua na página seguinte, mas as linhas marcadas com \endhead não se repetem lá.

Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.