
Quiero crear una tabla que abarque todo el ancho de la página y donde una columna tenga la mitad del tamaño de otra columna. Como se sugiereaquí, lo uso tabularx
para eso. Sin embargo, por alguna razón, mi tabla no quiere abarcar toda la página. En el MWE a continuación, le di un color a la fila superior para que se visualice que el ancho de celda de la última columna no es apropiado.
\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\newcolumntype{Y}{>{\hsize=0.5\hsize}X} % Half the size of X.
\begin{document}
\begin{tabularx}{\linewidth}{XXY} % E.g., XYY does work...
\hline
% The first row is given a color to clearly show the cell width.
\rowcolor{blue} A & B & Lorem ipsum dolor sit amet\\ \hline
a & b & c \\ \hline
\end{tabularx}
\end{document}
Como se puede ver en el código, lo uso X
para una columna normal y Y
para una columna de tamaño medio. Cuando uso columnas XYY
, parece funcionar. Por tanto, me parece bastante aleatorio. ¿Alguien podría explicar qué está pasando? ¿Cuál sería la forma correcta de crear columnas de la manera que quiero (es decir, 40%, 40%, 20%)?
Respuesta1
Simplemente has hecho un mal uso de los coeficientes \hsize=...
: en realidad no son coeficientes de proporcionalidad, sino coeficientes baricéntricos, es decir, su suma tiene que ser igual al número total de columnas tipo X. En otras palabras, aquí tienes que resolver el sistema lineal: 2x+y=3, x=2y.
Compara el resultado de tus coeficientes con el resultado de los coeficientes correctos. Agregué reglas verticales para visualizar el ancho exacto de cada columna:
\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\newcolumntype{Y}{>{\hsize=0.5\hsize}X} % Half the size of X.
\begin{document}
\begin{tabularx}{\linewidth}{XXY} % E.g., XYY does work...
\hline
% The first row is given a color to clearly show the cell width.
\rowcolor{blue} A & B & Lorem ipsum dolor sit amet\\ \hline
a & b & c \\ \hline
\end{tabularx}
\end{document}