Tabularx não abrange toda a largura da página

Tabularx não abrange toda a largura da página

Quero criar uma tabela que ocupe toda a largura da página e onde uma coluna tenha metade do tamanho de outra coluna. Como sugeridoaqui, eu uso tabularxpara isso. Por alguma razão, porém, minha tabela não deseja ocupar a página inteira. No MWE abaixo, dei à linha superior uma cor que permite visualizar que a largura da célula da última coluna não é apropriada.

\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}

Tabular com largura de célula errada

Como se pode ver no código, utilizo Xpara uma coluna normal e Ypara uma coluna com metade do tamanho. Quando uso columns XYY, parece funcionar. Portanto, parece bastante aleatório para mim. Alguém poderia explicar o que está errado? Qual seria a maneira correta de criar colunas da maneira que desejo (ou seja, 40%, 40%, 20%)?

Responder1

Você simplesmente usou mal os coeficientes \hsize=...: eles não são realmente coeficientes de proporcionalidade, mas coeficientes baricêntricos, ou seja, sua soma deve ser igual ao número total de colunas do tipo X. Em outras palavras, aqui você tem que resolver o sistema linear: 2x+y=3, x=2y.

Compare o resultado dos seus coeficientes com o resultado dos coeficientes corretos. Adicionei regras verticais para visualizar a largura exata de cada coluna:

\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}

insira a descrição da imagem aqui

informação relacionada