Tabela e \hlines muito curtas ou largas

Tabela e \hlines muito curtas ou largas

Aqui está um MWE do que estou tentando fazer.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage{color,colortbl}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
\bottomrule
\end{tabularx}
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 & A13 & A14 & A15 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

A primeira mesa é muito longa \toprulee \bottomruleparece estranha. Eu tenho algumas perguntas sobre isso.

Como posso definir o tamanho tabularxcomo a largura do conteúdo?

Como posso definir a última coluna para ser alinhada à direita (para que todas as colunas se estendam pela tabela)?

Como posso definir \rowcolorpara abranger toda a tabela?

A segunda tabela do exemplo é muito larga. Você conhece algum truque para torná-lo mais bonito?

Responder1

A primeira tabela tem regras longas porque tabularxestá tentando fazer uma tabela textwidthampla, mas não há coluna com largura ajustável. O mesmo para a segunda tabela, mas neste caso o conteúdo da tabela excede o textwidth. Você precisa usar Xo especificador -column para permitir o ajuste automático de largura. Tente substituir

\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}

com

\begin{tabularx}{\textwidth}{l *{11}X}

Observe que X-columns são alinhados à esquerda e têm largura igual. Para alinhar a última coluna à direita, você pode usar r-column ou definir um novo tipo de coluna Rcomosegue,

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}

Em seguida, use \begin{tabularx}{\textwidth}{l *{10}X r}ou \begin{tabularx}{\textwidth}{l *{10}X R}para alinhar a última coluna à direita.

Para permitir todas as linhas da mesma cor, você pode usar o rowcolorscomando do xcolorpacote. O rowcolorscomando permite alternar cores para linhas pares e ímpares, com a primeira especificação de cor para linhas ímpares. Você ainda pode usar rowcolorpara alterar a cor de linhas específicas.

Um exemplo com tipos de colunas e cores modificados.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage[table]{xcolor}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htb]
    \centering
    \rowcolors{1}{gray}{gray}
    \begin{tabularx}{\textwidth}{L *{10}C R}
    \toprule
        A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
    \midrule
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
    \bottomrule
    \end{tabularx}
\end{table}
\end{document}

Observe que todas Xas colunas têm a mesma largura. Ajustar a largura pode ser complicado em arquivos tabularx. Em vez disso, tente usartabularyoutabupacote.

informação relacionada