
Aquí hay un MWE de lo que estoy tratando de hacer.
\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}
La primera tabla es demasiado larga \toprule
y \bottomrule
tiene un aspecto extraño. Tengo algunas preguntas sobre esto.
¿Cómo puedo configurar el tamaño tabularx
para que sea el ancho del contenido?
¿Cómo puedo configurar la última columna para que se alinee a la derecha (de modo que todas las columnas se extiendan sobre la tabla)?
¿Cómo puedo configurar que \rowcolor
abarque toda la tabla?
La segunda tabla del ejemplo es demasiado amplia. ¿Conoces algún truco para que luzca mejor?
Respuesta1
La primera tabla tiene reglas largas porque tabularx
está intentando hacer una tabla textwidth
de ancho pero no hay ninguna columna con ancho ajustable. Lo mismo para la segunda tabla, pero en este caso el contenido de la tabla excede el textwidth
. Debe utilizar X
el especificador -column para permitir el ajuste automático del ancho. Intenta reemplazar
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
con
\begin{tabularx}{\textwidth}{l *{11}X}
Tenga en cuenta que X
las columnas están alineadas a la izquierda y tienen el mismo ancho. Para alinear la última columna a la derecha, puede usar r
-column o definir un nuevo tipo de columna R
comosigue,
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
Luego use \begin{tabularx}{\textwidth}{l *{10}X r}
o \begin{tabularx}{\textwidth}{l *{10}X R}
para alinear la última columna a la derecha.
Para permitir todas las filas del mismo color, puede usar el rowcolors
comando del xcolor
paquete. El rowcolors
comando le permite alternar colores para filas pares e impares, con el primer especificador de color para filas impares. Aún puedes usarlo rowcolor
para cambiar el color de filas específicas.
Un ejemplo con tipos de columnas y colores 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}
Tenga en cuenta que todas X
las columnas tienen el mismo ancho. Ajustar el ancho puede ser complicado en tabularx
. En su lugar intenta usartabulary
otabu
paquete.