%20de%207%20colunas%20%C3%A9%20mais%20largo%20que%20o%20especificado%3F.png)
Eu quero uma tabela muito simples ( tabular/x/*
, qualquer que seja) com 7 colunas, cada uma com 14% do \linewidth
total de 98%.
Mas, por alguma razão, a coluna mais à direita está a) na margem, b) fora das regras da tabela.
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 tabularx
do X
tipo 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 showframe
pacote e mostram a largura do texto/início das margens.
Nota lateral: espero que o \tiny
tamanho 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
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}