Tabularx не охватывает всю ширину страницы

Tabularx не охватывает всю ширину страницы

Я хочу создать таблицу, которая занимает всю ширину страницы и где один столбец составляет половину размера другого столбца. Как и предлагалосьздесь, я использую tabularxдля этого. Однако по какой-то причине моя таблица не хочет охватывать всю страницу. В MWE ниже я задал верхней строке цвет, чтобы было видно, что ширина ячейки последнего столбца не подходит.

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

Табличный с неправильной шириной ячейки

Как можно увидеть в коде, я использую Xдля обычного столбца и Yдля столбца с половинным размером. Когда я использую columns XYY, это, кажется, работает. Поэтому, мне кажется, что это довольно случайно. Может кто-нибудь объяснить, что не так? Как правильно создать столбцы, как я хочу (т. е. 40%, 40%, 20%)?

решение1

Вы просто неправильно использовали коэффициенты в \hsize=...: это не совсем коэффициенты пропорциональности, а барицентрические коэффициенты, т. е. их сумма должна быть равна общему числу столбцов типа X. Другими словами, здесь вам нужно решить линейную систему: 2x+y=3, x=2y.

Сравните результат ваших коэффициентов с результатом правильных коэффициентов. Я добавил вертикальные линии, чтобы визуализировать точную ширину каждого столбца:

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

введите описание изображения здесь

Связанный контент