Почему моя таблица из 7 столбцов(x) шире, чем указано?

Почему моя таблица из 7 столбцов(x) шире, чем указано?

Мне нужна очень простая таблица ( tabular/x/*или что угодно) с 7 столбцами, каждый из которых занимает 14% процентов от \linewidth, всего 98%.

Но по какой-то причине крайний правый столбец находится а) на полях, б) за пределами правил таблицы. введите описание изображения здесь

Как это исправить?

\documentclass[version=last,12pt]{scrreport}
\usepackage{tabularx,booktabs}

\begin{document}
\begin{table}[t]
\tiny
\begin{tabularx}{\linewidth}{@{}
p{0.14\linewidth}
p{0.14\linewidth}
p{0.14\linewidth}
p{0.14\linewidth}
p{0.14\linewidth}
p{0.14\linewidth}
p{0.14\linewidth}
@{}
}
\toprule
Excavator
& Alphanumeric data 
& Location 
& Warranty details 
& Expiry date of the support period 
& Required business properties
& Maximum needed diesel
\\
\bottomrule
\end{tabularx}
\end{table}

\end{document}     

решение1

Первая версия: Использование tabularxтипа Xcolumns приводит к таблице, ширина которой точно равна ширине textwidth и которая состоит из 7 одинаково широких столбцов. Чтобы выровнять столбцы по левому краю, я использовал >{\raggedright\arraybackslash}и определил новый пользовательский тип столбца L.

Вторая версия: Здесь я вручную рассчитал ширину столбцов, принимая во внимание значение, \tabcolsepкоторое добавляется слева и справа от содержимого каждого столбца. Как вы можете видеть, полученная таблица, как и ожидалось, немного уже, чем textwidth.

Третья версия: В этой версии я использовал tabular*в сочетании с , \extracolsep{\fill}}чтобы убедиться, что ширина таблицы равна ширине текста.

Вертикальные линии на следующем снимке экрана вызваны пакетом showframeи показывают ширину текста/начало полей.

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

Примечание: Надеюсь, \tinyразмер шрифта был использован только в этом примере. Поскольку этот размер шрифта довольно трудно читать, поскольку он такой маленький, я рекомендую не использовать его. Вы можете легко втиснуть таблицу в textwidth, даже с обычным размером шрифта, что приведет к выводу, похожему на

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

В зависимости от содержимого таблицы может быть полезно разрешить различную ширину столбцов.

\documentclass[version=last,12pt]{scrreport}
\usepackage{tabularx,booktabs}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}

\newcolumntype{Z}[2]{>{\raggedright\arraybackslash}p{\dimexpr #1\textwidth- #2\tabcolsep} }

\newcolumntype{Y}[1]{>{\raggedright\arraybackslash}p{\dimexpr #1\textwidth} }

\usepackage{showframe}
\begin{document}
\begin{table}[t]
\tiny
\begin{tabularx}{\linewidth}{@{}*{7}{L}@{}}
\toprule
Excavator
& Alphanumeric data 
& Location 
& Warranty details 
& Expiry date of the support period 
& Required business properties
& Maximum needed diesel
\\
\bottomrule
\end{tabularx}
\end{table}


\begin{table}[t]
\tiny
\begin{tabular}{@{}Z{0.14}{1} 
                   *{5}{Z{0.14}{2}}
                   Z{0.14}{1} @{}}
\toprule
Excavator
& Alphanumeric data 
& Location 
& Warranty details 
& Expiry date of the support period 
& Required business properties
& Maximum needed diesel
\\
\bottomrule
\end{tabular}
\end{table}


\begin{table}[t]
\tiny \setlength{\tabcolsep}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*{7}{Y{0.14}}}
\toprule
Excavator
& Alphanumeric data 
& Location 
& Warranty details 
& Expiry date of the support period 
& Required business properties
& Maximum needed diesel
\\
\bottomrule
\end{tabular*}
\end{table}

\end{document}

 

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