Tabla y \hlines demasiado cortos o anchos

Tabla y \hlines demasiado cortos o anchos

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 \topruley \bottomruletiene un aspecto extraño. Tengo algunas preguntas sobre esto.

¿Cómo puedo configurar el tamaño tabularxpara 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 \rowcolorabarque 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 tabularxestá intentando hacer una tabla textwidthde 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 Xel 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 Xlas 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 Rcomosigue,

\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 rowcolorscomando del xcolorpaquete. El rowcolorscomando le permite alternar colores para filas pares e impares, con el primer especificador de color para filas impares. Aún puedes usarlo rowcolorpara 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 Xlas columnas tienen el mismo ancho. Ajustar el ancho puede ser complicado en tabularx. En su lugar intenta usartabularyotabupaquete.

información relacionada