%20de%207%20columnas%20es%20m%C3%A1s%20ancha%20de%20lo%20especificado%3F.png)
Quiero una tabla muy simple ( tabular/x/*
lo que sea) con 7 columnas, cada una del 14% del \linewidth
98% total.
Pero por alguna razón la columna de la derecha está a) en el margen, b) fuera de las reglas de la tabla.
¿Cómo lo soluciono?
\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}
Respuesta1
Primera versión: el uso de tabularx
columnas X
de tipo da como resultado una tabla que es exactamente tan ancha como el ancho del texto y consta de 7 columnas igualmente anchas. Para alinear las columnas a la izquierda, utilicé >{\raggedright\arraybackslash}
y definí un nuevo tipo de columna personalizado L
.
Segunda versión: aquí, calculé manualmente los anchos de las columnas teniendo en cuenta el valor \tabcolsep
que se agrega a la izquierda y a la derecha del contenido de cada columna. Como puede ver, la tabla resultante es, como se esperaba, ligeramente más estrecha que el ancho del texto.
Tercera versión: en esta versión, utilicé tabular*
en combinación con \extracolsep{\fill}}
para asegurarme de que la tabla sea tan ancha como el ancho del texto.
Las líneas verticales en la siguiente captura de pantalla son causadas por el showframe
paquete y muestran el ancho del texto/comienzo de los márgenes.
Nota al margen: espero que el \tiny
tamaño de fuente se haya utilizado en este ejemplo. Como este tamaño de fuente es bastante difícil de leer porque es tan pequeño, recomiendo no usarlo. Podrías ajustar fácilmente la tabla al ancho del texto, incluso con un tamaño de fuente normal, lo que daría como resultado un resultado similar a
Dependiendo del contenido de la tabla, también podría resultar beneficioso permitir diferentes anchos de columna.
\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}