Por que meu tabular(x) de 7 colunas é mais largo que o especificado?

Por que meu tabular(x) de 7 colunas é mais largo que o especificado?

Eu quero uma tabela muito simples ( tabular/x/*, qualquer que seja) com 7 colunas, cada uma com 14% do \linewidthtotal de 98%.

Mas, por alguma razão, a coluna mais à direita está a) na margem, b) fora das regras da tabela. insira a descrição da imagem aqui

Como faço para corrigir isso?

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

Responder1

Primeira versão: O uso de colunas tabularxdo Xtipo resulta em uma tabela que é exatamente tão larga quanto a largura do texto e consiste em 7 colunas igualmente largas. Para alinhar as colunas à esquerda, usei >{\raggedright\arraybackslash}e defini um novo tipo de coluna personalizado L.

Segunda versão: Aqui calculei manualmente as larguras das colunas levando em consideração cujo valor \tabcolsepé adicionado à esquerda e à direita do conteúdo de cada coluna. Como você pode ver, a tabela resultante é, como esperado, um pouco mais estreita que a largura do texto.

Terceira versão: Nesta versão, usei tabular*em combinação com \extracolsep{\fill}}para garantir que a tabela seja tão larga quanto a largura do texto.

As linhas verticais na imagem a seguir são causadas pelo showframepacote e mostram a largura do texto/início das margens.

insira a descrição da imagem aqui

Nota lateral: espero que o \tinytamanho da fonte tenha sido usado apenas neste exemplo. Como esse tamanho de fonte é muito difícil de ler por ser tão pequeno, recomendo não usá-lo. Você poderia facilmente ajustar a tabela à largura do texto, mesmo com um tamanho de fonte normal, resultando em uma saída semelhante a

insira a descrição da imagem aqui

Dependendo do conteúdo da tabela, também pode ser benéfico permitir diferentes larguras de coluna.

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

 

informação relacionada