
Я хочу создать таблицу, которая занимает всю ширину страницы и где один столбец составляет половину размера другого столбца. Как и предлагалосьздесь, я использую 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}